ListAttribute extends Attribute { public void add(Attribute element) { getValue().add(element); } ListAttribute();  ListAttribute(List<Attribute> value);  ListAttribute(ListAttribute toCopy); void setValue(List<Attribute> attributes); @SuppressWarnings("unchecked") @Override List<Attribute> getValue(); void add(Attribute element); void setInherit(boolean inherit); boolean isInherit(); @SuppressWarnings("unchecked") void inherit(ListAttribute parent); @Override boolean equals(Object obj); @Override int hashCode(); @Override ListAttribute clone();  }
@Test public void testAdd() { List<Attribute> list = new ArrayList<Attribute>(); Attribute attribute1 = new Attribute("value1"); list.add(attribute1); Attribute attribute2 = new Attribute("value2"); list.add(attribute2); ListAttribute attribute = new ListAttribute(list); Attribute attribute3 = new Attribute("value3"); attribute.add(attribute3); list = attribute.getValue(); assertEquals(LIST_SIZE, list.size()); assertEquals(attribute1, list.get(0)); assertEquals(attribute2, list.get(1)); assertEquals(attribute3, list.get(2)); }