### Question:
PropertyListHolder extends ModifiableHolder<List<E>> implements PropertyChangeListener { @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public List<E> getValue() { if (d_vm.getValue() instanceof Set) { List<E> list = new ArrayList((Set<E>)d_vm.getValue()); Collections.sort(list, new AlphabeticalComparator()); return list; } return Collections.unmodifiableList((List<E>) d_vm.getValue()); } @SuppressWarnings({ "unchecked", "rawtypes" })  PropertyListHolder(Object bean, String propertyName, Class<E> objType); @SuppressWarnings({ "unchecked", "rawtypes" }) @Override List<E> getValue(); @SuppressWarnings("unchecked") @Override void setValue(Object list); void propertyChange(PropertyChangeEvent event);  }### Answer:
@Test public void testListHolderReturnsContentsOfProperty() { Study study = new Study("X", new Indication(8L, "EIGHT")); List<Endpoint> endpoints = new ArrayList<Endpoint>(); endpoints.add(new Endpoint("EP1", Endpoint.convertVarType(Type.RATE))); endpoints.add(new Endpoint("EP2", Endpoint.convertVarType(Type.CONTINUOUS))); List<StudyOutcomeMeasure<Endpoint>> wrappedEndpoints = Study.wrapVariables(endpoints); study.getEndpoints().addAll(wrappedEndpoints); assertEquals(wrappedEndpoints, (new PropertyListHolder<Endpoint>(study, Study.PROPERTY_ENDPOINTS, Endpoint.class)).getValue()); endpoints.add(new Endpoint("EP3", Endpoint.convertVarType(Type.CONTINUOUS))); assertFalse(endpoints.equals((new PropertyListHolder<Endpoint>(study, Study.PROPERTY_ENDPOINTS, Endpoint.class)).getValue())); study.getEndpoints().clear(); study.getEndpoints().addAll(Study.wrapVariables(endpoints)); wrappedEndpoints.clear(); wrappedEndpoints.addAll(study.getEndpoints()); assertEquals(wrappedEndpoints, (new PropertyListHolder<Endpoint>(study, Study.PROPERTY_ENDPOINTS, Endpoint.class)).getValue()); }