### Question:
MicroElement extends AbstractMicroNodeWithChildren implements IMicroElement { @Override public boolean isEqualContent (@Nullable final IMicroNode o) { if (o == this) return true; if (!super.isEqualContent (o)) return false; final MicroElement rhs = (MicroElement) o; return EqualsHelper.equals (m_sNamespaceURI, rhs.m_sNamespaceURI) && m_sTagName.equals (rhs.m_sTagName) && EqualsHelper.equals (m_aAttrs, rhs.m_aAttrs); } MicroElement(@Nonnull @Nonempty final String sTagName);  MicroElement(@Nullable final String sNamespaceURI, @Nonnull @Nonempty final String sTagName); @Nonnull EMicroNodeType getType(); @Nonnull @Nonempty String getNodeName(); boolean hasAttributes(); boolean hasNoAttributes(); @Nonnegative int getAttributeCount(); @Nullable @ReturnsImmutableObject Iterable <MicroAttribute> getAttributeObjs(); @Nullable @ReturnsMutableCopy ICommonsList <MicroAttribute> getAllAttributeObjs(); @Nullable @ReturnsMutableCopy ICommonsOrderedMap <IMicroQName, String> getAllQAttributes(); @Nullable @ReturnsMutableCopy ICommonsOrderedSet <IMicroQName> getAllAttributeQNames(); void forAllAttributes(@Nonnull final Consumer <? super IMicroAttribute> aConsumer); void forAllAttributes(@Nonnull final BiConsumer <? super IMicroQName, ? super String> aConsumer); void forAllAttributes(@Nonnull final ITriConsumer <? super String, ? super String, ? super String> aConsumer); @Nullable MicroAttribute getAttributeObj(@Nullable final IMicroQName aQName); @Nullable DSTTYPE getAttributeValueWithConversion(@Nullable final IMicroQName aAttrName, @Nonnull final Class <DSTTYPE> aDstClass); boolean hasAttribute(@Nullable final IMicroQName aAttrName); @Nonnull EChange removeAttribute(@Nullable final IMicroQName aAttrName); @Nonnull MicroElement setAttribute(@Nonnull final IMicroQName aAttrName, @Nullable final String sAttrValue); @Nonnull EChange removeAllAttributes(); @Nullable String getNamespaceURI(); @Nonnull EChange setNamespaceURI(@Nullable final String sNamespaceURI); @Nullable String getLocalName(); @Nonnull String getTagName(); @Nonnull @ReturnsMutableCopy ICommonsList <IMicroElement> getAllChildElementsRecursive(); boolean containsAnyChildElement(@Nullable final Predicate <? super IMicroElement> aFilter); @Nullable IMicroElement getFirstChildElement(@Nullable final Predicate <? super IMicroElement> aFilter); void forAllChildElements(@Nullable final Predicate <? super IMicroElement> aFilter,
                                   @Nonnull final Consumer <? super IMicroElement> aConsumer); @Nonnull EContinue forAllChildElementsBreakable(@Nullable final Predicate <? super IMicroElement> aFilter,
                                                 @Nonnull final Function <? super IMicroElement, EContinue> aConsumer); @Nonnull IMicroElement getClone(); @Override boolean isEqualContent(@Nullable final IMicroNode o); @Override String toString();  }### Answer:
@Test public void testIsEqualContent () { final IMicroElement eRoot = new MicroElement ("root"); final IMicroElement e1 = eRoot.appendElement ("c1a"); e1.appendElement ("c2"); eRoot.appendElement ("c1b"); assertFalse (new MicroElement ("root").isEqualContent (new MicroElement ("root2"))); assertFalse (eRoot.isEqualContent (new MicroElement ("root2"))); assertFalse (new MicroElement ("root").isEqualContent (eRoot)); assertFalse (eRoot.isEqualContent (e1)); assertFalse (eRoot.isEqualContent (e1)); final IMicroElement el1 = new MicroElement ("x"); el1.appendElement ("y1"); el1.appendElement ("y2"); final IMicroElement el2 = new MicroElement ("xx"); el2.appendElement ("y1"); el2.appendElement ("z1"); assertFalse (el1.isEqualContent (el2)); assertFalse (el2.isEqualContent (el1)); }