public class AttributeLayoutMapTest extends TestCase {
public void testRepeatable() throws Pack200Exception {
// Check we can retrieve a default layout
AttributeLayoutMap a = new AttributeLayoutMap();
AttributeLayout layout = a.getAttributeLayout("SourceFile",
AttributeLayout.CONTEXT_CLASS);
assertNotNull(layout);
assertEquals("RUNH", layout.getLayout());
assertEquals(17, layout.getIndex());
// and that we can change it
a.add(new AttributeLayout("SourceFile", AttributeLayout.CONTEXT_CLASS,
"FROG", 17));
layout = a.getAttributeLayout("SourceFile",
AttributeLayout.CONTEXT_CLASS);
assertNotNull(layout);
assertEquals("FROG", layout.getLayout());
assertTrue(layout.matches(1 << 17));
assertFalse(layout.matches(1 << 16));
assertTrue(layout.matches(-1));
assertFalse(layout.matches(0));
// and that changes don't affect subsequent defaults
AttributeLayoutMap b = new AttributeLayoutMap();
layout = b.getAttributeLayout("SourceFile",
AttributeLayout.CONTEXT_CLASS);
assertNotNull(layout);
assertEquals("RUNH", layout.getLayout());
}