X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-rest-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Frestconf%2Fimpl%2Ftest%2FBrokerFacadeTest.java;h=5f1d54a4867b4ebd031ef4b6b42922f6386350ef;hp=bca3d0b4579d291d18aa9527ad4baff5dcd3f4bc;hb=06e889c9c78457590b6a0b62d89a6b9f44242a9f;hpb=4e4e9f0dc21b2dc9823960d2e984bb122b291c66 diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/BrokerFacadeTest.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/BrokerFacadeTest.java index bca3d0b457..5f1d54a486 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/BrokerFacadeTest.java +++ b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/BrokerFacadeTest.java @@ -18,13 +18,12 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; - import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import java.util.concurrent.Future; -import org.apache.commons.lang.StringEscapeUtils; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.mockito.InOrder; import org.mockito.Mock; @@ -39,20 +38,23 @@ import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint; +import org.opendaylight.controller.md.sal.dom.api.DOMRpcException; +import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult; +import org.opendaylight.controller.md.sal.dom.api.DOMRpcService; import org.opendaylight.controller.sal.core.api.Broker.ConsumerSession; import org.opendaylight.controller.sal.restconf.impl.BrokerFacade; +import org.opendaylight.controller.sal.restconf.impl.ControllerContext; import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException; import org.opendaylight.controller.sal.restconf.impl.RestconfError; import org.opendaylight.controller.sal.streams.listeners.ListenerAdapter; import org.opendaylight.controller.sal.streams.listeners.Notificator; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.model.api.SchemaPath; /** * Unit tests for BrokerFacade. @@ -65,19 +67,22 @@ public class BrokerFacadeTest { DOMDataBroker domDataBroker; @Mock - ConsumerSession mockConsumerSession; + ConsumerSession context; + + @Mock + DOMRpcService mockRpcService; @Mock DOMMountPoint mockMountInstance; BrokerFacade brokerFacade = BrokerFacade.getInstance(); - CompositeNode dataNode; - - NormalizedNode dummyNode = createDummyNode("dummy:namespace", "2014-07-01", "dummy local name"); + NormalizedNode dummyNode = createDummyNode("test:module", "2014-01-09", "interfaces"); CheckedFuture>,ReadFailedException> dummyNodeInFuture = wrapDummyNode(dummyNode); - QName qname = QName.create("node"); + QName qname = TestUtils.buildQName("interfaces","test:module", "2014-01-09"); + + SchemaPath type = SchemaPath.create(true, qname); YangInstanceIdentifier instanceID = YangInstanceIdentifier.builder().node(qname).toInstance(); @@ -95,12 +100,13 @@ public class BrokerFacadeTest { MockitoAnnotations.initMocks(this); // TODO it is started before every test method brokerFacade.setDomDataBroker(domDataBroker); - brokerFacade.setContext(mockConsumerSession); + brokerFacade.setRpcService(mockRpcService); + brokerFacade.setContext(context); when(domDataBroker.newReadOnlyTransaction()).thenReturn(rTransaction); when(domDataBroker.newWriteOnlyTransaction()).thenReturn(wTransaction); when(domDataBroker.newReadWriteTransaction()).thenReturn(rwTransaction); - dataNode = TestUtils.prepareCompositeNodeWithIetfInterfacesInterfacesData(); + ControllerContext.getInstance().setSchemas(TestUtils.loadSchemaContext("/full-versions/test-module")); } @@ -108,6 +114,11 @@ public class BrokerFacadeTest { return Futures.immediateCheckedFuture(Optional.> of(dummyNode)); } + private CheckedFuture wrapExistence(final Boolean exists) { + return Futures.immediateCheckedFuture(exists); + } + + /** * Value of this node shouldn't be important for testing purposes */ @@ -121,7 +132,7 @@ public class BrokerFacadeTest { when(rTransaction.read(any(LogicalDatastoreType.class), any(YangInstanceIdentifier.class))).thenReturn( dummyNodeInFuture); - NormalizedNode actualNode = brokerFacade.readConfigurationData(instanceID); + final NormalizedNode actualNode = brokerFacade.readConfigurationData(instanceID); assertSame("readConfigurationData", dummyNode, actualNode); } @@ -131,7 +142,7 @@ public class BrokerFacadeTest { when(rTransaction.read(any(LogicalDatastoreType.class), any(YangInstanceIdentifier.class))).thenReturn( dummyNodeInFuture); - NormalizedNode actualNode = brokerFacade.readOperationalData(instanceID); + final NormalizedNode actualNode = brokerFacade.readOperationalData(instanceID); assertSame("readOperationalData", dummyNode, actualNode); } @@ -146,35 +157,34 @@ public class BrokerFacadeTest { @SuppressWarnings("unchecked") @Test public void testInvokeRpc() throws Exception { - RpcResult expResult = mock(RpcResult.class); - Future> future = Futures.immediateFuture(expResult); - when(mockConsumerSession.rpc(qname, dataNode)).thenReturn(future); + final DOMRpcResult expResult = mock(DOMRpcResult.class); + final CheckedFuture future = Futures.immediateCheckedFuture(expResult); + when(mockRpcService.invokeRpc(type, dummyNode)).thenReturn(future); - Future> actualFuture = brokerFacade.invokeRpc(qname, dataNode); + final CheckedFuture actualFuture = brokerFacade.invokeRpc(type, dummyNode); assertNotNull("Future is null", actualFuture); - RpcResult actualResult = actualFuture.get(); - + final DOMRpcResult actualResult = actualFuture.get(); assertSame("invokeRpc", expResult, actualResult); } @Test(expected = RestconfDocumentedException.class) public void testInvokeRpcWithNoConsumerSession() { brokerFacade.setContext(null); - - brokerFacade.invokeRpc(qname, dataNode); + brokerFacade.invokeRpc(type, dummyNode); } + @Ignore @Test public void testCommitConfigurationDataPut() { - CheckedFuture expFuture = mock(CheckedFuture.class); + final CheckedFuture expFuture = mock(CheckedFuture.class); when(wTransaction.submit()).thenReturn(expFuture); - Future actualFuture = brokerFacade.commitConfigurationDataPut(instanceID, dummyNode); + final Future actualFuture = brokerFacade.commitConfigurationDataPut(instanceID, dummyNode); assertSame("commitConfigurationDataPut", expFuture, actualFuture); - InOrder inOrder = inOrder(domDataBroker, wTransaction); + final InOrder inOrder = inOrder(domDataBroker, wTransaction); inOrder.verify(domDataBroker).newWriteOnlyTransaction(); inOrder.verify(wTransaction).put(LogicalDatastoreType.CONFIGURATION, instanceID, dummyNode); inOrder.verify(wTransaction).submit(); @@ -182,19 +192,25 @@ public class BrokerFacadeTest { @Test public void testCommitConfigurationDataPost() { - CheckedFuture expFuture = mock(CheckedFuture.class); + final CheckedFuture expFuture = mock(CheckedFuture.class); + + final NormalizedNode dummyNode2 = createDummyNode("dummy:namespace2", "2014-07-01", "dummy local name2"); - NormalizedNode dummyNode2 = createDummyNode("dummy:namespace2", "2014-07-01", "dummy local name2"); when(rwTransaction.read(eq(LogicalDatastoreType.CONFIGURATION), any(YangInstanceIdentifier.class))).thenReturn( wrapDummyNode(dummyNode2)); + + when(rwTransaction.exists(eq(LogicalDatastoreType.CONFIGURATION), any(YangInstanceIdentifier.class))).thenReturn( + wrapExistence(true)); + + when(rwTransaction.submit()).thenReturn(expFuture); - CheckedFuture actualFuture = brokerFacade.commitConfigurationDataPost( - instanceID, dummyNode); + final CheckedFuture actualFuture = brokerFacade.commitConfigurationDataPost( + YangInstanceIdentifier.builder().build(), dummyNode); assertSame("commitConfigurationDataPost", expFuture, actualFuture); - InOrder inOrder = inOrder(domDataBroker, rwTransaction); + final InOrder inOrder = inOrder(domDataBroker, rwTransaction); inOrder.verify(domDataBroker).newReadWriteTransaction(); inOrder.verify(rwTransaction).merge(LogicalDatastoreType.CONFIGURATION, instanceID, dummyNode); inOrder.verify(rwTransaction).submit(); @@ -206,7 +222,7 @@ public class BrokerFacadeTest { dummyNodeInFuture); try { brokerFacade.commitConfigurationDataPost(instanceID, dummyNode); - } catch (RestconfDocumentedException e) { + } catch (final RestconfDocumentedException e) { assertEquals("getErrorTag", RestconfError.ErrorTag.DATA_EXISTS, e.getErrors().get(0).getErrorTag()); throw e; } @@ -214,16 +230,19 @@ public class BrokerFacadeTest { @Test public void testCommitConfigurationDataDelete() { - CheckedFuture expFuture = mock(CheckedFuture.class); + final CheckedFuture expFuture = mock(CheckedFuture.class); when(wTransaction.submit()).thenReturn(expFuture); - CheckedFuture actualFuture = brokerFacade + final NormalizedNode dummyNode2 = createDummyNode("dummy:namespace2", "2014-07-01", "dummy local name2"); + + + final CheckedFuture actualFuture = brokerFacade .commitConfigurationDataDelete(instanceID); assertSame("commitConfigurationDataDelete", expFuture, actualFuture); - InOrder inOrder = inOrder(domDataBroker, wTransaction); + final InOrder inOrder = inOrder(domDataBroker, wTransaction); inOrder.verify(domDataBroker).newWriteOnlyTransaction(); inOrder.verify(wTransaction).delete(eq(LogicalDatastoreType.CONFIGURATION), any(YangInstanceIdentifier.class)); inOrder.verify(wTransaction).submit(); @@ -232,9 +251,9 @@ public class BrokerFacadeTest { @SuppressWarnings("unchecked") @Test public void testRegisterToListenDataChanges() { - ListenerAdapter listener = Notificator.createListener(instanceID, "stream"); + final ListenerAdapter listener = Notificator.createListener(instanceID, "stream"); - ListenerRegistration mockRegistration = mock(ListenerRegistration.class); + final ListenerRegistration mockRegistration = mock(ListenerRegistration.class); when( domDataBroker.registerDataChangeListener(any(LogicalDatastoreType.class), eq(instanceID), eq(listener), @@ -250,7 +269,5 @@ public class BrokerFacadeTest { brokerFacade.registerToListenDataChanges(LogicalDatastoreType.CONFIGURATION, DataChangeScope.BASE, listener); verifyNoMoreInteractions(domDataBroker); - String escapeXml = StringEscapeUtils.escapeXml("data might contain & or ! or % or ' "); - System.out.println(escapeXml); } }