### Question:
SurfaceConfig { @Override public boolean equals(Object object) { if (this == object) { return true; } if (object == null || object.getClass() != getClass()) { return false; } final SurfaceConfig other = (SurfaceConfig) object; return icon.equals(other.icon) && image.equals(other.image); } SurfaceConfig(String image, String icon); static SurfaceConfig imports(Configurer configurer); static SurfaceConfig imports(Xml root); static Xml exports(SurfaceConfig config); String getImage(); Optional<String> getIcon(); @Override int hashCode(); @Override boolean equals(Object object); @Override String toString(); static final String NODE_SURFACE; static final String ATT_IMAGE; static final String ATT_ICON; }### Answer:
@Test void testEquals() { final SurfaceConfig config = new SurfaceConfig("image", "icon"); assertEquals(config, config); assertEquals(config, new SurfaceConfig("image", "icon")); assertEquals(new SurfaceConfig("image", null), new SurfaceConfig("image", null)); assertNotEquals(config, null); assertNotEquals(config, new Object()); assertNotEquals(config, new SurfaceConfig("", "icon")); assertNotEquals(config, new SurfaceConfig("image", "")); assertNotEquals(new SurfaceConfig("image", "icon"), new SurfaceConfig("image", null)); assertNotEquals(new SurfaceConfig("image", null), new SurfaceConfig("image", "icon")); }