+ @Test
+ public void testExecuteRpc() {
+ final ContainerNode invokeRpcResult = makeRPCOutput("bar");
+ final DOMRpcResult rpcResult = new DefaultDOMRpcResult(invokeRpcResult);
+ when(domRpcService1.invokeRpc(eq(TEST_RPC_TYPE), any())).thenReturn(
+ FluentFutures.immediateFluentFuture(rpcResult));
+
+ final ExecuteRpc executeMsg = ExecuteRpc.from(TEST_RPC_ID, null);
+
+ rpcInvoker1.tell(executeMsg, rpcRegistry1Probe.getRef());
+
+ final RpcResponse rpcResponse = rpcRegistry1Probe.expectMsgClass(Duration.ofSeconds(5), RpcResponse.class);
+
+ assertEquals(rpcResult.getResult(), rpcResponse.getResultNormalizedNode());
+ }
+
+ @Test
+ public void testExecuteRpcFailureWithException() {
+ when(domRpcService1.invokeRpc(eq(TEST_RPC_TYPE), any())).thenReturn(FluentFutures.immediateFailedFluentFuture(
+ new DOMRpcImplementationNotAvailableException("NOT FOUND")));
+
+ final ExecuteRpc executeMsg = ExecuteRpc.from(TEST_RPC_ID, null);
+
+ rpcInvoker1.tell(executeMsg, rpcRegistry1Probe.getRef());
+
+ final Failure rpcResponse = rpcRegistry1Probe.expectMsgClass(Duration.ofSeconds(5), Failure.class);