@Test
 public void testGetPidNotSupported() {
   SlaveServer mockSlave = mock(SlaveServer.class);
   AdvertiseAddress address = AdvertiseAddress.newPrivate();
   address.setStaticPort(1234);
   when(mockSlave.getPid()).thenThrow(new UnsupportedOperationException());
   SlaveXmlRpcEndpointImpl slave = new SlaveXmlRpcEndpointImpl(mockSlave);
   List<Object> response = slave.getPid("/foo");
   assertEquals(response.get(0), StatusCode.FAILURE.toInt());
 }
 @Test
 public void testGetPid() {
   SlaveServer mockSlave = mock(SlaveServer.class);
   AdvertiseAddress address = AdvertiseAddress.newPrivate();
   address.setStaticPort(1234);
   when(mockSlave.getPid()).thenReturn(1234);
   SlaveXmlRpcEndpointImpl slave = new SlaveXmlRpcEndpointImpl(mockSlave);
   List<Object> response = slave.getPid("/foo");
   assertEquals(response.get(0), StatusCode.SUCCESS.toInt());
   assertEquals(response.get(2), 1234);
 }
 @Test
 public void testRequestTopic() throws ServerException {
   SlaveServer mockSlave = mock(SlaveServer.class);
   AdvertiseAddress address = AdvertiseAddress.newPrivate();
   address.setStaticPort(1234);
   TcpRosProtocolDescription protocol = new TcpRosProtocolDescription(address);
   when(mockSlave.requestTopic(
           Matchers.<String>any(),
           Matchers.eq(Sets.newHashSet(ProtocolNames.TCPROS, ProtocolNames.UDPROS))))
       .thenReturn(protocol);
   SlaveXmlRpcEndpointImpl slave = new SlaveXmlRpcEndpointImpl(mockSlave);
   Object[][] protocols = new Object[][] {{ProtocolNames.TCPROS}, {ProtocolNames.UDPROS}};
   List<Object> response = slave.requestTopic("/foo", "/bar", protocols);
   assertEquals(response.get(0), StatusCode.SUCCESS.toInt());
   assertEquals(response.get(2), protocol.toList());
 }