MultiAttributeProvider extends AbstractAttributeProvider { @Pure @Override public AttributeValue getAttribute(String name) { return extract(name); }  @Override void toMap(Map<String, Object> mapToFill); boolean addAttributeContainer(AttributeProvider container); boolean removeAttributeContainer(AttributeProvider container); @Pure int getAttributeContainerCount(); @Pure @Override MultiAttributeProvider clone(); @Override void freeMemory(); @Pure @Override Collection<Attribute> getAllAttributes(); @Pure @Override Map<AttributeType, Collection<Attribute>> getAllAttributesByType(); @Pure @Override AttributeValue getAttribute(String name); @Pure @Override AttributeValue getAttribute(String name, AttributeValue defaultValue); @Pure @Override int getAttributeCount(); @Pure @Override Collection<String> getAllAttributeNames(); @Pure @Override Attribute getAttributeObject(String name); @Pure @Override boolean hasAttribute(String name);  }
@Test public void testGetAttributeString() { assertUninitialized(AttributeType.BOOLEAN, this.container.getAttribute("A")); assertEquals(new AttributeValueImpl(1), this.container.getAttribute("B")); assertUninitialized(AttributeType.URL, this.container.getAttribute("C")); assertUninitialized(AttributeType.STRING, this.container.getAttribute("D")); assertUninitialized(AttributeType.OBJECT, this.container.getAttribute("E")); assertNull(this.container.getAttribute("F")); assertUninitialized(AttributeType.STRING, this.container.getAttribute("Z1")); assertUninitialized(AttributeType.STRING, this.container.getAttribute("Z2")); assertUninitialized(AttributeType.STRING, this.container.getAttribute("Z3")); assertNull(this.container.getAttribute("Z4")); }
@Test public void testGetAttributeStringAttributeValue() { AttributeValue defaultValue = new AttributeValueImpl(456); assertUninitialized(AttributeType.BOOLEAN, this.container.getAttribute("A", defaultValue)); assertEquals(new AttributeValueImpl(1), this.container.getAttribute("B", defaultValue)); assertUninitialized(AttributeType.URL, this.container.getAttribute("C", defaultValue)); assertUninitialized(AttributeType.STRING, this.container.getAttribute("D", defaultValue)); assertUninitialized(AttributeType.OBJECT, this.container.getAttribute("E", defaultValue)); assertSame(defaultValue, this.container.getAttribute("F", defaultValue)); assertUninitialized(AttributeType.STRING, this.container.getAttribute("Z1", defaultValue)); assertUninitialized(AttributeType.STRING, this.container.getAttribute("Z2", defaultValue)); assertUninitialized(AttributeType.STRING, this.container.getAttribute("Z3", defaultValue)); assertSame(defaultValue, this.container.getAttribute("Z4", defaultValue)); }