AbstractAttributeProvider implements AttributeProvider, Iterable<Attribute> { @Pure @Override public Iterator<Attribute> iterator() { return new AttributeIterator(this); }  @Pure @Override Iterator<Attribute> iterator(); @Pure @Override AttributeProvider clone(); @Pure @Override Iterable<Attribute> attributes(); @Pure @Override boolean getAttributeAsBool(String name); @Pure @Override int getAttributeAsInt(String name); @Pure @Override long getAttributeAsLong(String name); @Pure @Override float getAttributeAsFloat(String name); @Pure @Override double getAttributeAsDouble(String name); @Pure @Override String getAttributeAsString(String name); @Pure @Override UUID getAttributeAsUUID(String name); @Pure @Override URL getAttributeAsURL(String name); @Pure @Override URI getAttributeAsURI(String name); @Pure @Override Date getAttributeAsDate(String name); @Pure @Override InetAddress getAttributeAsInetAddress(String name); @Pure @Override Enum<?> getAttributeAsEnumeration(String name); @Pure @Override T getAttributeAsEnumeration(String name, Class<T> type); @Pure @Override Class<?> getAttributeAsJavaClass(String name); @Pure @Override boolean getAttribute(String name, boolean defaultValue); @Pure @Override int getAttribute(String name, int defaultValue); @Pure @Override long getAttribute(String name, long defaultValue); @Pure @Override float getAttribute(String name, float defaultValue); @Pure @Override double getAttribute(String name, double defaultValue); @Pure @Override String getAttribute(String name, String defaultValue); @Pure @Override UUID getAttribute(String name, UUID defaultValue); @Pure @Override URL getAttribute(String name, URL defaultValue); @Pure @Override URI getAttribute(String name, URI defaultValue); @Pure @Override Date getAttribute(String name, Date defaultValue); @Pure @Override InetAddress getAttribute(String name, InetAddress defaultValue); @Pure @Override InetAddress getAttribute(String name, InetSocketAddress defaultValue); @Pure @Override @SuppressWarnings("unchecked") T getAttribute(String name, T defaultValue); @Pure @Override Class<?> getAttribute(String name, Class<?> defaultValue); @Override final String toString(); @Override void toJson(JsonBuffer buffer);  }
@Test public void iterator() { ArrayList<Attribute> ref = new ArrayList<>(); ref.addAll(Arrays.asList(this.baseData)); Iterator<Attribute> it = this.testData.attributes().iterator(); while(!ref.isEmpty()) { assertTrue(it.hasNext(), this.id); Attribute attr = it.next(); assertNotNull(attr, this.id); assertTrue(ref.remove(attr), this.id); } assertFalse(it.hasNext(), this.id); }
@Test public void freeMemory() { this.testData.freeMemory(); iterator(); }