@Override
    public boolean equals(Object o) {
        if (!(o instanceof ControllerRegistration)) return false;
        ControllerRegistration other = (ControllerRegistration) o;
        return other.id == id &&
            other.incarnationId.equals(incarnationId) &&
            other.zkMigrationReady == zkMigrationReady &&
            other.listeners.equals(listeners) &&
            other.supportedFeatures.equals(supportedFeatures);
    }
@Test
    public void testEquals() {
        assertNotEquals(REGISTRATIONS.get(0), REGISTRATIONS.get(1));
        assertNotEquals(REGISTRATIONS.get(1), REGISTRATIONS.get(0));
        assertNotEquals(REGISTRATIONS.get(0), REGISTRATIONS.get(2));
        assertNotEquals(REGISTRATIONS.get(2), REGISTRATIONS.get(0));
        assertEquals(REGISTRATIONS.get(0), REGISTRATIONS.get(0));
        assertEquals(REGISTRATIONS.get(1), REGISTRATIONS.get(1));
        assertEquals(REGISTRATIONS.get(2), REGISTRATIONS.get(2));
    }