### Question:
StudyCharacteristicHolder extends AbstractValueModel { public void setValue(Object newValue) { throw new RuntimeException("This CharacteristicHolder is immutable"); } StudyCharacteristicHolder(Study study, Characteristic characteristic); void setValue(Object newValue); Object getValue(); Characteristic getCharacteristic();  }### Answer:
@Test public void testSetValue() { JUnitUtil.testSetter(d_holder, "value", d_study.getCharacteristic(d_char), BasicStudyCharacteristic.Blinding.TRIPLE_BLIND); }
@Test public void testSetValueTriggersCharacteristicsChanged() { HashMap<BasicStudyCharacteristic, Object> newVal = new HashMap<BasicStudyCharacteristic, Object>(); Indication indication = new Indication(1L, "Indication"); newVal.put(d_char, indication); PropertyChangeListener l = JUnitUtil.mockListener(d_study.getCharacteristics(), MapBean.PROPERTY_CONTENTS, null, null); d_study.getCharacteristics().addPropertyChangeListener(l); d_holder.setValue(indication); verify(l); }