@Override
    public Address translate(Address address) throws Exception {
        if (address == null) {
            return null;
        }

        Address publicAddress = response.getPrivateToPublicAddresses().get(address);
        if (publicAddress != null) {
            return publicAddress;
        }

        response = discovery.discoverNodes();

        return response.getPrivateToPublicAddresses().get(address);
    }
@Test
    public void testTranslate() throws Exception {
        setUp();
        ViridianAddressProvider provider = new ViridianAddressProvider(createDiscovery());
        provider.loadAddresses(createListenerRunner());

        assertEquals(PUBLIC_MEMBER_ADDRESS, provider.translate(PRIVATE_MEMBER_ADDRESS));
        assertNull(provider.translate(PRIVATE_TPC_ADDRESS));
        assertNull(provider.translate(NON_EXISTENT_PRIVATE_ADDRESS));
    }