+ doReturn(Futures.immediateFailedCheckedFuture(new ClusteringRpcException("mock")))
+ .when(mockDOMRpcService).invokeRpc(any(), any());
+
+ try {
+ slaveDomRPCService.invokeRpc(schemaPath, outputNode).get(2, TimeUnit.SECONDS);
+ } catch (ExecutionException e) {
+ throw e.getCause();
+ }
+ }
+
+ @Test
+ public void testSlaveNewTransactionRequests() {
+
+ doReturn(mock(DOMDataReadOnlyTransaction.class)).when(mockDOMDataBroker).newReadOnlyTransaction();
+ doReturn(mock(DOMDataReadWriteTransaction.class)).when(mockDOMDataBroker).newReadWriteTransaction();
+ doReturn(mock(DOMDataWriteTransaction.class)).when(mockDOMDataBroker).newWriteOnlyTransaction();
+
+ initializeMaster(Collections.emptyList());
+ registerSlaveMountPoint();
+
+ ArgumentCaptor<DOMDataBroker> domDataBrokerCaptor = ArgumentCaptor.forClass(DOMDataBroker.class);
+ verify(mockMountPointBuilder).addService(eq(DOMDataBroker.class), domDataBrokerCaptor.capture());
+
+ final DOMDataBroker slaveDOMDataBroker = domDataBrokerCaptor.getValue();
+ assertTrue(slaveDOMDataBroker instanceof ProxyDOMDataBroker);
+
+ slaveDOMDataBroker.newReadOnlyTransaction();
+ verify(mockDOMDataBroker).newReadOnlyTransaction();
+
+ slaveDOMDataBroker.newReadWriteTransaction();
+ verify(mockDOMDataBroker).newReadWriteTransaction();
+
+ slaveDOMDataBroker.newWriteOnlyTransaction();
+ verify(mockDOMDataBroker).newWriteOnlyTransaction();
+ }
+
+ private ActorRef registerSlaveMountPoint() {
+ final ActorRef slaveRef = system.actorOf(NetconfNodeActor.props(
+ NetconfTopologySetupBuilder.create().setActorSystem(system).build(), remoteDeviceId, mockRegistry,
+ mockSchemaRepository, TIMEOUT, mockMountPointService));
+
+ doReturn(Futures.immediateFuture(mockSchemaContext))
+ .when(mockSchemaContextFactory).createSchemaContext(any());
+
+ slaveRef.tell(new RegisterMountPoint(ImmutableList.of(SOURCE_IDENTIFIER1, SOURCE_IDENTIFIER2),
+ masterRef), testKit.getRef());
+
+ verify(mockMountPointBuilder, timeout(5000)).register();
+ verify(mockMountPointBuilder).addInitialSchemaContext(mockSchemaContext);
+ verify(mockMountPointBuilder).addService(eq(DOMDataBroker.class), any());
+ verify(mockMountPointBuilder).addService(eq(DOMRpcService.class), any());
+ verify(mockMountPointBuilder).addService(eq(DOMNotificationService.class), any());
+
+ testKit.expectMsgClass(Success.class);