public void test_equal() throws Exception {
    JTextField fieldA = new JTextField();
    JTextField fieldB = new JTextField();

    GuiComponent compA = GuiComponentFactory.newGuiComponent(fieldA);
    assertTrue("GuiComp(a) = GuiComp(a)", compA.equals(compA));
    assertTrue(
        "new GuiComp(a) = new GuiComp(a)",
        compA.equals(GuiComponentFactory.newGuiComponent(fieldA)));
    assertEquals(
        "[hashcode] new GuiComp(a) = new GuiComp(a)",
        compA.hashCode(),
        GuiComponentFactory.newGuiComponent(fieldA).hashCode());

    assertFalse(
        "new GuiComp(b) != new GuiComp(a)",
        GuiComponentFactory.newGuiComponent(fieldB)
            .equals(GuiComponentFactory.newGuiComponent(fieldA)));
    assertFalse(
        "new GuiComp(b) != 'carotte'",
        GuiComponentFactory.newGuiComponent(fieldB).equals("carotte"));
  }