### Question:
Xsd2UmlPluginForEdFi extends Xsd2UmlPluginDefault implements Xsd2UmlHostedPlugin { @Override public boolean isAssociationEnd(final ClassType classType, final Attribute attribute, final Xsd2UmlPluginHost host) { if (attribute == null) { throw new IllegalArgumentException("attribute"); } final String attributeName = attribute.getName(); if (attributeName == null) { throw new IllegalStateException("attributeName"); } return endsWithReference(attributeName); } Xsd2UmlPluginForEdFi(); @Override List<TagDefinition> declareTagDefinitions(final Xsd2UmlPluginHost host); @Override String getAssociationEndTypeName(final ClassType classType, final Attribute attribute,
            final Xsd2UmlPluginHost host); @Override boolean isAssociationEnd(final ClassType classType, final Attribute attribute, final Xsd2UmlPluginHost host); @Override String nameAssociation(final AssociationEnd lhs, final AssociationEnd rhs, final Xsd2UmlHostedPlugin host); @Override String nameFromSchemaAttributeName(final QName name); @Override String nameFromSchemaElementName(final QName name); @Override List<TaggedValue> tagsFromAppInfo(final XmlSchemaAppInfo appInfo, final Xsd2UmlPluginHost host);  }### Answer:
@Test public void testIsAssociationEnd() throws Exception { Mockito.when(attribute.getName()).thenReturn("Reference"); Assert.assertTrue(pluginForEdFi.isAssociationEnd(classType, attribute, host)); Mockito.when(attribute.getName()).thenReturn("Ref"); Assert.assertFalse(pluginForEdFi.isAssociationEnd(classType, attribute, host)); }
@Test(expected = IllegalArgumentException.class) public void testIsAssociationEndNullException() throws Exception { pluginForEdFi.isAssociationEnd(classType, null, host); }
@Test(expected = IllegalStateException.class) public void testIsAssociationEndIllegalException() throws Exception { Mockito.when(attribute.getName()).thenReturn(null); pluginForEdFi.isAssociationEnd(classType, attribute, host); }