@Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj instanceof DefaultMappingKey) {
            DefaultMappingKey that = (DefaultMappingKey) obj;
            return Objects.equals(address, that.address);
        }
        return false;
    }
@Test
    public void testEquals() {
        IpPrefix ip1 = IpPrefix.valueOf(IP_ADDRESS_1);
        MappingAddress address1 = MappingAddresses.ipv4MappingAddress(ip1);

        MappingKey key1 = DefaultMappingKey.builder()
                                .withAddress(address1)
                                .build();
        MappingKey sameAsKey1 = DefaultMappingKey.builder()
                                .withAddress(address1)
                                .build();

        IpPrefix ip2 = IpPrefix.valueOf(IP_ADDRESS_2);
        MappingAddress address2 = MappingAddresses.ipv4MappingAddress(ip2);

        MappingKey key2 = DefaultMappingKey.builder()
                                .withAddress(address2)
                                .build();

        new EqualsTester()
                .addEqualityGroup(key1, sameAsKey1)
                .addEqualityGroup(key2)
                .testEquals();
    }