### Question:
ChoiceNode implements DecisionTreeNode { public Object getValue(final Object obj) { return BeanUtils.getValue(obj, d_descriptor); } ChoiceNode(final Class<?> beanClass, final String propertyName); Object getValue(final Object obj); Class<?> getBeanClass(); String getPropertyName(); @Override String getName(); @Override String toString(); @Override boolean equivalent(DecisionTreeNode o);  }### Answer:
@Test public void testGetValue() { Drug drug = new Drug("Fluoxetine", "3"); ChoiceNode choiceNode = new ChoiceNode(Drug.class, Drug.PROPERTY_NAME); assertEquals(drug.getName(), choiceNode.getValue(drug)); assertEquals("Name", choiceNode.getName()); }
@Test(expected=IllegalArgumentException.class) public void testIllegalObject() { new ChoiceNode(Drug.class, Drug.PROPERTY_NAME).getValue("X"); }