InstanceIdentifierContext does not take generics
[netconf.git] / restconf / restconf-nb-rfc8040 / src / test / java / org / opendaylight / restconf / nb / rfc8040 / rests / utils / PutDataTransactionUtilTest.java
index ab15d93f15f20d8b05b83f6bfdab26f0e96e8bad..7b2f84907d01f62dcc9e433b782d6cadd6181f6a 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.restconf.nb.rfc8040.rests.utils;
 
+import static org.junit.Assert.assertThrows;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
@@ -30,9 +31,9 @@ import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
 import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult;
 import org.opendaylight.netconf.dom.api.NetconfDataTreeService;
 import org.opendaylight.restconf.common.context.InstanceIdentifierContext;
-import org.opendaylight.restconf.common.context.NormalizedNodeContext;
 import org.opendaylight.restconf.common.errors.RestconfDocumentedException;
 import org.opendaylight.restconf.nb.rfc8040.TestRestconfUtils;
+import org.opendaylight.restconf.nb.rfc8040.WriteDataParams;
 import org.opendaylight.restconf.nb.rfc8040.legacy.NormalizedNodePayload;
 import org.opendaylight.restconf.nb.rfc8040.rests.services.impl.RestconfDataServiceImpl;
 import org.opendaylight.restconf.nb.rfc8040.rests.transactions.MdsalRestconfStrategy;
@@ -169,191 +170,175 @@ public class PutDataTransactionUtilTest {
 
     @Test
     public void testValidInputData() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid, schemaNode, null, schema);
-        final NormalizedNodeContext payload = new NormalizedNodeContext(iidContext, buildLeaf);
-        RestconfDataServiceImpl.validInputData(iidContext.getSchemaNode(), payload);
+        RestconfDataServiceImpl.validInputData(schemaNode, NormalizedNodePayload.of(
+            new InstanceIdentifierContext(iid, schemaNode, null, schema), buildLeaf));
     }
 
     @Test
     public void testValidTopLevelNodeName() {
-        InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid, schemaNode, null, schema);
-        NormalizedNodeContext payload = new NormalizedNodeContext(iidContext, buildLeaf);
-        RestconfDataServiceImpl.validTopLevelNodeName(iidContext.getInstanceIdentifier(), payload);
-
-        iidContext = new InstanceIdentifierContext<>(iid2, schemaNode2, null, schema);
-        payload = new NormalizedNodeContext(iidContext, buildBaseCont);
-        RestconfDataServiceImpl.validTopLevelNodeName(iidContext.getInstanceIdentifier(), payload);
+        RestconfDataServiceImpl.validTopLevelNodeName(iid, NormalizedNodePayload.of(
+            new InstanceIdentifierContext(iid, schemaNode, null, schema), buildLeaf));
+        RestconfDataServiceImpl.validTopLevelNodeName(iid2, NormalizedNodePayload.of(
+            new InstanceIdentifierContext(iid2, schemaNode2, null, schema), buildBaseCont));
     }
 
-    @Test(expected = RestconfDocumentedException.class)
+    @Test
     public void testValidTopLevelNodeNamePathEmpty() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid, schemaNode, null, schema);
-        final NormalizedNodeContext payload = new NormalizedNodeContext(iidContext, buildLeaf);
-        RestconfDataServiceImpl.validTopLevelNodeName(YangInstanceIdentifier.empty(), payload);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid, schemaNode, null, schema);
+        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildLeaf);
+
+        // FIXME: more asserts
+        assertThrows(RestconfDocumentedException.class,
+            () -> RestconfDataServiceImpl.validTopLevelNodeName(YangInstanceIdentifier.empty(), payload));
     }
 
-    @Test(expected = RestconfDocumentedException.class)
+    @Test
     public void testValidTopLevelNodeNameWrongTopIdentifier() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid, schemaNode, null, schema);
-        final NormalizedNodeContext payload = new NormalizedNodeContext(iidContext, buildLeaf);
-        RestconfDataServiceImpl.validTopLevelNodeName(iid.getAncestor(1), payload);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid, schemaNode, null, schema);
+        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildLeaf);
+
+        // FIXME: more asserts
+        assertThrows(RestconfDocumentedException.class,
+            () -> RestconfDataServiceImpl.validTopLevelNodeName(iid.getAncestor(1), payload));
     }
 
     @Test
     public void testValidateListKeysEqualityInPayloadAndUri() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid3, schemaNode3, null, schema);
-        final NormalizedNodeContext payload = new NormalizedNodeContext(iidContext, buildListEntry);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid3, schemaNode3, null, schema);
+        final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildListEntry);
         RestconfDataServiceImpl.validateListKeysEqualityInPayloadAndUri(payload);
     }
 
     @Test
     public void testPutContainerData() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid2, schemaNode2, null, schema);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid2, schemaNode2, null, schema);
         final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseCont);
 
         doReturn(readWrite).when(mockDataBroker).newReadWriteTransaction();
         doReturn(read).when(mockDataBroker).newReadOnlyTransaction();
-        doReturn(immediateFalseFluentFuture())
-                .when(read).exists(LogicalDatastoreType.CONFIGURATION, iid2);
-        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData());
+        doReturn(immediateFalseFluentFuture()).when(read).exists(LogicalDatastoreType.CONFIGURATION, iid2);
+        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData());
         doReturn(CommitInfo.emptyFluentFuture()).when(readWrite).commit();
 
-        PutDataTransactionUtil.putData(payload, schema, new MdsalRestconfStrategy(mockDataBroker), null, null);
-        verify(read).exists(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier());
-        verify(readWrite).put(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData());
+        PutDataTransactionUtil.putData(payload, schema, new MdsalRestconfStrategy(mockDataBroker),
+            WriteDataParams.empty());
+        verify(read).exists(LogicalDatastoreType.CONFIGURATION, iid2);
+        verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData());
     }
 
     @Test
     public void testPutCreateContainerData() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid2, schemaNode2, null, schema);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid2, schemaNode2, null, schema);
         final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseCont);
 
         doReturn(immediateFluentFuture(Optional.empty())).when(netconfService).getConfig(iid2);
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit();
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService)
-            .replace(LogicalDatastoreType.CONFIGURATION, payload.getInstanceIdentifierContext().getInstanceIdentifier(),
-                payload.getData(), Optional.empty());
+            .replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
 
         PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
-                null, null);
+            WriteDataParams.empty());
         verify(netconfService).lock();
-        verify(netconfService).getConfig(payload.getInstanceIdentifierContext().getInstanceIdentifier());
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData(), Optional.empty());
+        verify(netconfService).getConfig(iid2);
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
     }
 
     @Test
     public void testPutReplaceContainerData() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid2, schemaNode2, null, schema);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid2, schemaNode2, null, schema);
         final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseCont);
 
-        doReturn(immediateFluentFuture(Optional.of(mock(NormalizedNode.class))))
-                .when(netconfService).getConfig(iid2);
+        doReturn(immediateFluentFuture(Optional.of(mock(NormalizedNode.class)))).when(netconfService).getConfig(iid2);
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit();
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService)
-            .replace(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData(), Optional.empty());
+            .replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
 
         PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
-                null, null);
-        verify(netconfService).getConfig(payload.getInstanceIdentifierContext().getInstanceIdentifier());
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData(), Optional.empty());
+            WriteDataParams.empty());
+        verify(netconfService).getConfig(iid2);
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
     }
 
     @Test
     public void testPutLeafData() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid, schemaNode, null, schema);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid, schemaNode, null, schema);
         final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildLeaf);
 
         doReturn(readWrite).when(mockDataBroker).newReadWriteTransaction();
         doReturn(read).when(mockDataBroker).newReadOnlyTransaction();
-        doReturn(immediateFalseFluentFuture())
-                .when(read).exists(LogicalDatastoreType.CONFIGURATION, iid);
-        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData());
+        doReturn(immediateFalseFluentFuture()).when(read).exists(LogicalDatastoreType.CONFIGURATION, iid);
+        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid, payload.getData());
         doReturn(CommitInfo.emptyFluentFuture()).when(readWrite).commit();
 
-        PutDataTransactionUtil.putData(payload, schema, new MdsalRestconfStrategy(mockDataBroker), null, null);
-        verify(read).exists(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier());
-        verify(readWrite).put(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData());
+        PutDataTransactionUtil.putData(payload, schema, new MdsalRestconfStrategy(mockDataBroker),
+            WriteDataParams.empty());
+        verify(read).exists(LogicalDatastoreType.CONFIGURATION, iid);
+        verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid, payload.getData());
     }
 
     @Test
     public void testPutCreateLeafData() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid, schemaNode, null, schema);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid, schemaNode, null, schema);
         final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildLeaf);
 
         doReturn(immediateFluentFuture(Optional.empty())).when(netconfService).getConfig(iid);
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit();
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService)
-            .replace(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData(), Optional.empty());
+            .replace(LogicalDatastoreType.CONFIGURATION, iid, payload.getData(), Optional.empty());
 
         PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
-                null, null);
-        verify(netconfService).getConfig(payload.getInstanceIdentifierContext().getInstanceIdentifier());
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData(), Optional.empty());
+            WriteDataParams.empty());
+        verify(netconfService).getConfig(iid);
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid, payload.getData(), Optional.empty());
     }
 
     @Test
     public void testPutReplaceLeafData() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid, schemaNode, null, schema);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid, schemaNode, null, schema);
         final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildLeaf);
 
-        doReturn(immediateFluentFuture(Optional.of(mock(NormalizedNode.class))))
-                .when(netconfService).getConfig(iid);
+        doReturn(immediateFluentFuture(Optional.of(mock(NormalizedNode.class)))).when(netconfService).getConfig(iid);
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit();
         doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService)
-            .replace(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData(), Optional.empty());
+            .replace(LogicalDatastoreType.CONFIGURATION, iid, payload.getData(), Optional.empty());
 
-        PutDataTransactionUtil.putData(payload, schema,
-                new NetconfRestconfStrategy(netconfService), null, null);
-        verify(netconfService).getConfig(payload.getInstanceIdentifierContext().getInstanceIdentifier());
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData(), Optional.empty());
+        PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
+            WriteDataParams.empty());
+        verify(netconfService).getConfig(iid);
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid, payload.getData(), Optional.empty());
     }
 
     @Test
     public void testPutListData() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid2, schemaNode2, null, schema);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid2, schemaNode2, null, schema);
         final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseContWithList);
 
         doReturn(readWrite).when(mockDataBroker).newReadWriteTransaction();
         doReturn(read).when(mockDataBroker).newReadOnlyTransaction();
         doReturn(immediateFalseFluentFuture())
                 .when(read).exists(LogicalDatastoreType.CONFIGURATION, iid2);
-        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION,
-                payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData());
+        doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData());
         doReturn(CommitInfo.emptyFluentFuture()).when(readWrite).commit();
-        PutDataTransactionUtil.putData(payload, schema, new MdsalRestconfStrategy(mockDataBroker), null, null);
+        PutDataTransactionUtil.putData(payload, schema, new MdsalRestconfStrategy(mockDataBroker),
+            WriteDataParams.empty());
         verify(read).exists(LogicalDatastoreType.CONFIGURATION, iid2);
         verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData());
     }
 
     @Test
     public void testPutCreateListData() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid2, schemaNode2, null, schema);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid2, schemaNode2, null, schema);
         final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseContWithList);
 
         doReturn(immediateFluentFuture(Optional.empty())).when(netconfService)
@@ -363,7 +348,7 @@ public class PutDataTransactionUtilTest {
             .replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
 
         PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
-                null, null);
+            WriteDataParams.empty());
         verify(netconfService).getConfig(iid2);
         verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2,
                 payload.getData(), Optional.empty());
@@ -371,8 +356,8 @@ public class PutDataTransactionUtilTest {
 
     @Test
     public void testPutReplaceListData() {
-        final InstanceIdentifierContext<DataSchemaNode> iidContext =
-                new InstanceIdentifierContext<>(iid2, schemaNode2, null, schema);
+        final InstanceIdentifierContext iidContext =
+                new InstanceIdentifierContext(iid2, schemaNode2, null, schema);
         final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseContWithList);
 
         doReturn(immediateFluentFuture(Optional.of(mock(NormalizedNode.class)))).when(netconfService)
@@ -382,10 +367,9 @@ public class PutDataTransactionUtilTest {
             .replace(LogicalDatastoreType.CONFIGURATION,
                 iid2, payload.getData(), Optional.empty());
 
-        PutDataTransactionUtil.putData(payload, schema,
-                new NetconfRestconfStrategy(netconfService), null, null);
+        PutDataTransactionUtil.putData(payload, schema, new NetconfRestconfStrategy(netconfService),
+            WriteDataParams.empty());
         verify(netconfService).getConfig(iid2);
-        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2,
-                payload.getData(), Optional.empty());
+        verify(netconfService).replace(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty());
     }
 }