### Question:
BaseArtifacts implements BPMNViewDefinition { @Override public boolean equals(Object o) { if (o instanceof BaseArtifacts) { BaseArtifacts other = (BaseArtifacts) o; return Objects.equals(backgroundSet, other.backgroundSet) && Objects.equals(fontSet, other.fontSet) && Objects.equals(dimensionsSet, other.dimensionsSet); } return false; } BaseArtifacts(final @MapsTo("backgroundSet") BackgroundSet backgroundSet,
                         final @MapsTo("fontSet") FontSet fontSet,
                         final @MapsTo("dimensionsSet") RectangleDimensionsSet dimensionsSet); String getCategory(); BackgroundSet getBackgroundSet(); FontSet getFontSet(); RectangleDimensionsSet getDimensionsSet(); void setBackgroundSet(final BackgroundSet backgroundSet); void setFontSet(final FontSet fontSet); void setDimensionsSet(final RectangleDimensionsSet dimensionsSet); @Override int hashCode(); @Override boolean equals(Object o); @Category
    static final transient String category; }### Answer:
@Test public void testEquals() { assertTrue(tested.equals(new DataObject())); assertFalse(tested.equals("")); final DataObject dataObject = new DataObject(); BgColor color = new BgColor(); color.setValue("Black"); dataObject.getBackgroundSet().setBgColor(color); assertFalse(tested.equals(dataObject)); tested.getBackgroundSet().setBgColor(color); assertTrue(tested.equals(dataObject)); dataObject.getFontSet().setFontSize(new FontSize(11.0)); assertFalse(tested.equals(dataObject)); tested.getFontSet().setFontSize(new FontSize(11.0)); assertTrue(tested.equals(dataObject)); dataObject.getDimensionsSet().setHeight(new Height(11.0)); assertFalse(tested.equals(dataObject)); tested.getDimensionsSet().setHeight(new Height(11.0)); assertTrue(tested.equals(dataObject)); }