X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-remoterpc-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fremote%2Frpc%2FRemoteOpsImplementationTest.java;h=2e94f83866cff960bcdab1467492eba7c7622475;hb=HEAD;hp=47ce52bf9c21625a9100070747b2da19c5ef1d08;hpb=21b4ad7390d58ce9b88fa0a61779cfffc39e62fa;p=controller.git diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteOpsImplementationTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteOpsImplementationTest.java index 47ce52bf9c..1ea532b1d4 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteOpsImplementationTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteOpsImplementationTest.java @@ -7,14 +7,15 @@ */ package org.opendaylight.controller.remote.rpc; +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.when; import com.google.common.util.concurrent.ListenableFuture; import java.util.Collections; @@ -24,16 +25,15 @@ import org.junit.Ignore; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.opendaylight.mdsal.dom.api.DOMActionException; -import org.opendaylight.mdsal.dom.api.DOMActionResult; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.api.DOMRpcException; import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; -import org.opendaylight.mdsal.dom.spi.SimpleDOMActionResult; import org.opendaylight.yangtools.util.concurrent.FluentFutures; +import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; /** * Unit tests for RemoteRpcImplementation. @@ -50,19 +50,17 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { final ContainerNode rpcOutput = makeRPCOutput("bar"); final DOMRpcResult rpcResult = new DefaultDOMRpcResult(rpcOutput); - final NormalizedNode invokeRpcInput = makeRPCInput("foo"); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor> inputCaptor = - ArgumentCaptor.forClass(NormalizedNode.class); + final ContainerNode invokeRpcInput = makeRPCInput("foo"); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(ContainerNode.class); doReturn(FluentFutures.immediateFluentFuture(rpcResult)).when(domRpcService2) - .invokeRpc(eq(TEST_RPC_TYPE), inputCaptor.capture()); + .invokeRpc(eq(TEST_RPC), inputCaptor.capture()); final ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); final DOMRpcResult result = frontEndFuture.get(5, TimeUnit.SECONDS); - assertEquals(rpcOutput, result.getResult()); + assertEquals(rpcOutput, result.value()); } /** @@ -71,19 +69,17 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { @Test public void testInvokeAction() throws Exception { final ContainerNode actionOutput = makeRPCOutput("bar"); - final DOMActionResult actionResult = new SimpleDOMActionResult(actionOutput, Collections.emptyList()); - final NormalizedNode invokeActionInput = makeRPCInput("foo"); - @SuppressWarnings({"unchecked", "rawtypes"}) + final DOMRpcResult actionResult = new DefaultDOMRpcResult(actionOutput, Collections.emptyList()); + final NormalizedNode invokeActionInput = makeRPCInput("foo"); final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(ContainerNode.class); doReturn(FluentFutures.immediateFluentFuture(actionResult)).when(domActionService2).invokeAction( eq(TEST_RPC_TYPE), eq(TEST_DATA_TREE_ID), inputCaptor.capture()); - final ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, + final ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, TEST_DATA_TREE_ID, (ContainerNode) invokeActionInput); - assertTrue(frontEndFuture instanceof RemoteDOMActionFuture); - final DOMActionResult result = frontEndFuture.get(5, TimeUnit.SECONDS); - assertEquals(actionOutput, result.getOutput().get()); - + assertThat(frontEndFuture, instanceOf(RemoteDOMActionFuture.class)); + final DOMRpcResult result = frontEndFuture.get(5, TimeUnit.SECONDS); + assertEquals(actionOutput, result.value()); } /** @@ -94,18 +90,16 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { final ContainerNode rpcOutput = makeRPCOutput("bar"); final DOMRpcResult rpcResult = new DefaultDOMRpcResult(rpcOutput); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor> inputCaptor = - (ArgumentCaptor) ArgumentCaptor.forClass(NormalizedNode.class); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(ContainerNode.class); doReturn(FluentFutures.immediateFluentFuture(rpcResult)).when(domRpcService2) - .invokeRpc(eq(TEST_RPC_TYPE), inputCaptor.capture()); + .invokeRpc(eq(TEST_RPC), inputCaptor.capture()); ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, null); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); final DOMRpcResult result = frontEndFuture.get(5, TimeUnit.SECONDS); - assertEquals(rpcOutput, result.getResult()); + assertEquals(rpcOutput, result.value()); } /** @@ -114,20 +108,18 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { @Test public void testInvokeActionWithNullInput() throws Exception { final ContainerNode actionOutput = makeRPCOutput("bar"); - final DOMActionResult actionResult = new SimpleDOMActionResult(actionOutput); + final DOMRpcResult actionResult = new DefaultDOMRpcResult(actionOutput); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor inputCaptor = - ArgumentCaptor.forClass(ContainerNode.class); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(ContainerNode.class); doReturn(FluentFutures.immediateFluentFuture(actionResult)).when(domActionService2).invokeAction( eq(TEST_RPC_TYPE), eq(TEST_DATA_TREE_ID), inputCaptor.capture()); - ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, + ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, TEST_DATA_TREE_ID, actionOutput); - assertTrue(frontEndFuture instanceof RemoteDOMActionFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMActionFuture.class)); - final DOMActionResult result = frontEndFuture.get(5, TimeUnit.SECONDS); - assertEquals(actionOutput, result.getOutput().get()); + final DOMRpcResult result = frontEndFuture.get(5, TimeUnit.SECONDS); + assertEquals(actionOutput, result.value()); } /** @@ -138,69 +130,54 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { final ContainerNode rpcOutput = null; final DOMRpcResult rpcResult = new DefaultDOMRpcResult(rpcOutput); - final NormalizedNode invokeRpcInput = makeRPCInput("foo"); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor> inputCaptor = - (ArgumentCaptor) ArgumentCaptor.forClass(NormalizedNode.class); + final ContainerNode invokeRpcInput = makeRPCInput("foo"); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(ContainerNode.class); doReturn(FluentFutures.immediateFluentFuture(rpcResult)).when(domRpcService2) - .invokeRpc(eq(TEST_RPC_TYPE), inputCaptor.capture()); + .invokeRpc(eq(TEST_RPC), inputCaptor.capture()); final ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); final DOMRpcResult result = frontEndFuture.get(5, TimeUnit.SECONDS); - assertNull(result.getResult()); + assertNull(result.value()); } /** * This test method invokes and executes the remote rpc. */ - @SuppressWarnings({"checkstyle:AvoidHidingCauseException", "checkstyle:IllegalThrows"}) - @Test(expected = DOMRpcException.class) - public void testInvokeRpcWithRemoteFailedFuture() throws Throwable { - final NormalizedNode invokeRpcInput = makeRPCInput("foo"); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor> inputCaptor = - (ArgumentCaptor) ArgumentCaptor.forClass(NormalizedNode.class); + @Test + public void testInvokeRpcWithRemoteFailedFuture() { + final ContainerNode invokeRpcInput = makeRPCInput("foo"); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(ContainerNode.class); - when(domRpcService2.invokeRpc(eq(TEST_RPC_TYPE), inputCaptor.capture())).thenReturn( - FluentFutures.immediateFailedFluentFuture(new RemoteDOMRpcException("Test Exception", null))); + doReturn(FluentFutures.immediateFailedFluentFuture(new RemoteDOMRpcException("Test Exception", null))) + .when(domRpcService2).invokeRpc(eq(TEST_RPC), inputCaptor.capture()); final ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); - try { - frontEndFuture.get(5, TimeUnit.SECONDS); - } catch (ExecutionException e) { - throw e.getCause(); - } + final var ex = assertThrows(ExecutionException.class, () -> frontEndFuture.get(5, TimeUnit.SECONDS)).getCause(); + assertThat(ex, instanceOf(DOMRpcException.class)); } /** * This test method invokes and executes the remote rpc. */ - @SuppressWarnings({"checkstyle:AvoidHidingCauseException", "checkstyle:IllegalThrows"}) - @Test(expected = DOMActionException.class) - public void testInvokeActionWithRemoteFailedFuture() throws Throwable { + @Test + public void testInvokeActionWithRemoteFailedFuture() { final ContainerNode invokeActionInput = makeRPCInput("foo"); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor inputCaptor = - ArgumentCaptor.forClass(ContainerNode.class); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(ContainerNode.class); - when(domActionService2.invokeAction(eq(TEST_RPC_TYPE), eq(TEST_DATA_TREE_ID), - inputCaptor.capture())).thenReturn(FluentFutures.immediateFailedFluentFuture( - new RemoteDOMRpcException("Test Exception", null))); + doReturn(FluentFutures.immediateFailedFluentFuture(new RemoteDOMRpcException("Test Exception", null))) + .when(domActionService2).invokeAction(eq(TEST_RPC_TYPE), eq(TEST_DATA_TREE_ID), inputCaptor.capture()); - final ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, + final ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, TEST_DATA_TREE_ID, invokeActionInput); - assertTrue(frontEndFuture instanceof RemoteDOMActionFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMActionFuture.class)); - try { - frontEndFuture.get(5, TimeUnit.SECONDS); - } catch (ExecutionException e) { - throw e.getCause(); - } + final var ex = assertThrows(ExecutionException.class, () -> frontEndFuture.get(5, TimeUnit.SECONDS)).getCause(); + assertThat(ex, instanceOf(DOMActionException.class)); } /** @@ -208,57 +185,48 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { * Currently ignored since this test with current config takes around 15 seconds to complete. */ @Ignore - @Test(expected = RemoteDOMRpcException.class) - public void testInvokeRpcWithAkkaTimeoutException() throws Exception { - final NormalizedNode invokeRpcInput = makeRPCInput("foo"); + @Test + public void testInvokeRpcWithAkkaTimeoutException() { + final ContainerNode invokeRpcInput = makeRPCInput("foo"); final ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); - frontEndFuture.get(20, TimeUnit.SECONDS); + assertThrows(RemoteDOMRpcException.class, () -> frontEndFuture.get(20, TimeUnit.SECONDS)); } /** - * This test method invokes remote rpc and lookup failed - * with runtime exception. + * This test method invokes remote rpc and lookup failed with runtime exception. */ - @Test(expected = DOMRpcException.class) - @SuppressWarnings({"checkstyle:AvoidHidingCauseException", "checkstyle:IllegalThrows"}) - public void testInvokeRpcWithLookupException() throws Throwable { - final NormalizedNode invokeRpcInput = makeRPCInput("foo"); + @Test + public void testInvokeRpcWithLookupException() { + final ContainerNode invokeRpcInput = makeRPCInput("foo"); - doThrow(new RuntimeException("test")).when(domRpcService2).invokeRpc(any(SchemaPath.class), - any(NormalizedNode.class)); + doThrow(new RuntimeException("test")).when(domRpcService2).invokeRpc(any(QName.class), + any(ContainerNode.class)); final ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); - try { - frontEndFuture.get(5, TimeUnit.SECONDS); - } catch (ExecutionException e) { - throw e.getCause(); - } + final var ex = assertThrows(ExecutionException.class, () -> frontEndFuture.get(5, TimeUnit.SECONDS)).getCause(); + assertThat(ex, instanceOf(DOMRpcException.class)); } /** * This test method invokes remote rpc and lookup failed * with runtime exception. */ - @Test(expected = DOMActionException.class) - @SuppressWarnings({"checkstyle:AvoidHidingCauseException", "checkstyle:IllegalThrows"}) - public void testInvokeActionWithLookupException() throws Throwable { + @Test + public void testInvokeActionWithLookupException() { final ContainerNode invokeRpcInput = makeRPCInput("foo"); - doThrow(new RuntimeException("test")).when(domActionService2).invokeAction(any(SchemaPath.class), + doThrow(new RuntimeException("test")).when(domActionService2).invokeAction(any(Absolute.class), any(DOMDataTreeIdentifier.class), any(ContainerNode.class)); - final ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, + final ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, TEST_DATA_TREE_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMActionFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMActionFuture.class)); - try { - frontEndFuture.get(5, TimeUnit.SECONDS); - } catch (ExecutionException e) { - throw e.getCause(); - } + final var ex = assertThrows(ExecutionException.class, () -> frontEndFuture.get(5, TimeUnit.SECONDS)).getCause(); + assertThat(ex, instanceOf(DOMActionException.class)); } }