Search in sources :

Example 1 with ProtocolTranslator

use of org.apache.hadoop.ipc.ProtocolTranslator in project hadoop by apache.

the class TestRetryProxy method testRpcInvocation.

/**
 * Test for {@link RetryInvocationHandler#isRpcInvocation(Object)}
 */
@Test
public void testRpcInvocation() throws Exception {
    // For a proxy method should return true
    final UnreliableInterface unreliable = (UnreliableInterface) RetryProxy.create(UnreliableInterface.class, unreliableImpl, RETRY_FOREVER);
    assertTrue(RetryInvocationHandler.isRpcInvocation(unreliable));
    // Embed the proxy in ProtocolTranslator
    ProtocolTranslator xlator = new ProtocolTranslator() {

        int count = 0;

        @Override
        public Object getUnderlyingProxyObject() {
            count++;
            return unreliable;
        }

        @Override
        public String toString() {
            return "" + count;
        }
    };
    // For a proxy wrapped in ProtocolTranslator method should return true
    assertTrue(RetryInvocationHandler.isRpcInvocation(xlator));
    // Ensure underlying proxy was looked at
    assertEquals(xlator.toString(), "1");
    // For non-proxy the method must return false
    assertFalse(RetryInvocationHandler.isRpcInvocation(new Object()));
}
Also used : ProtocolTranslator(org.apache.hadoop.ipc.ProtocolTranslator) Test(org.junit.Test)

Aggregations

ProtocolTranslator (org.apache.hadoop.ipc.ProtocolTranslator)1 Test (org.junit.Test)1