@Test
public void removeAllAttributes() {

	assertTrue(this.provider.removeAllAttributes());
	assertEquals(0, this.subprovider1.getAttributeCount());
	assertEquals(0, this.subprovider2.getAttributeCount());
	assertEquals(0, this.subprovider3.getAttributeCount());
	assertEquals(2, this.subcontainer4.getAttributeCount());
	assertEquals(2, this.provider.getAttributeCount());
	assertEpsilonEquals(Collections.emptyList(), this.subprovider1.getAllAttributes());
	assertEpsilonEquals(Collections.emptyList(), this.subprovider2.getAllAttributes());
	assertEpsilonEquals(Collections.emptyList(), this.subprovider3.getAllAttributes());
	assertEpsilonEquals(Arrays.asList(
			new AttributeImpl("A", true),  //$NON-NLS-1$
			new AttributeImpl("Z4", "Z4")   //$NON-NLS-1$ //$NON-NLS-2$
	), this.subcontainer4.getAllAttributes());
	assertEpsilonEquals(Arrays.asList(
			makeUninitialized("A", AttributeType.BOOLEAN),  //$NON-NLS-1$
			makeUninitialized("Z4", AttributeType.STRING)  //$NON-NLS-1$
	), this.provider.getAllAttributes());
	assertFalse(this.provider.removeAllAttributes());
	assertEpsilonEquals(Collections.emptyList(), this.subprovider1.getAllAttributes());
	assertEpsilonEquals(Collections.emptyList(), this.subprovider2.getAllAttributes());
	assertEpsilonEquals(Collections.emptyList(), this.subprovider3.getAllAttributes());
	assertEpsilonEquals(Arrays.asList(
			new AttributeImpl("A", true),  //$NON-NLS-1$
			new AttributeImpl("Z4", "Z4")   //$NON-NLS-1$ //$NON-NLS-2$
	), this.subcontainer4.getAllAttributes());
	assertEpsilonEquals(Arrays.asList(
			makeUninitialized("A", AttributeType.BOOLEAN),  //$NON-NLS-1$
			makeUninitialized("Z4", AttributeType.STRING)  //$NON-NLS-1$
	), this.provider.getAllAttributes());
}