@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        Node node = (Node) o;
        return Objects.equals(getControl(), node.getControl()) && Objects.equals(getTransaction(), node.getTransaction());
    }
@Test
    public void testContains() {
        NamingServerNode node1 = new NamingServerNode();
        node1.setControl(new Node.Endpoint("111.11.11.1",123));
        node1.setTransaction(new Node.Endpoint("111.11.11.1",124));
        Node node2 = new Node();
        node2.setControl(new Node.Endpoint("111.11.11.1",123));
        node2.setTransaction(new Node.Endpoint("111.11.11.1",124));
        NamingServerNode node3 = new NamingServerNode();
        node3.setControl(new Node.Endpoint("111.11.11.1",123));
        node3.setTransaction(new Node.Endpoint("111.11.11.1",124));
        Assertions.assertFalse(node1.equals(node2));
        Assertions.assertTrue(node1.equals(node3));
    }