@Test
public void testEquals() {

    BasicAttributeContext attributeContext = new BasicAttributeContext();
    attributeContext.setPreparer("my.preparer");
    attributeContext.setTemplateAttribute(Attribute.createTemplateAttribute("/my/template.jsp"));
    attributeContext.putAttribute("attribute1", new Attribute("value1"), true);
    attributeContext.putAttribute("attribute2", new Attribute("value2"), true);
    attributeContext.putAttribute("attribute3", new Attribute("value3"), false);
    BasicAttributeContext toCompare = new BasicAttributeContext(attributeContext);
    assertTrue(toCompare.equals(attributeContext));
    toCompare = new BasicAttributeContext(attributeContext);
    toCompare.putAttribute("attribute4", new Attribute("value4"), true);
    assertFalse(toCompare.equals(attributeContext));
    toCompare = new BasicAttributeContext(attributeContext);
    toCompare.putAttribute("attribute4", new Attribute("value4"), false);
    assertFalse(toCompare.equals(attributeContext));
    toCompare = new BasicAttributeContext(attributeContext);
    toCompare.setPreparer("another.preparer");
    assertFalse(toCompare.equals(attributeContext));
    toCompare = new BasicAttributeContext(attributeContext);
    toCompare.setTemplateAttribute(Attribute.createTemplateAttribute("/another/template.jsp"));
    assertFalse(toCompare.equals(attributeContext));
}