From 02aa21794f1594949c5ab2e43ad924cf3f2dd479 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 24 Oct 2021 18:25:45 +0200 Subject: [PATCH] Propagate WriteDataParams in utilities We have the two variables neatly tied together, there is no reason to split in invocation paths. JIRA: NETCONF-718 Change-Id: Ic3befbb97538a2ef3e8352f6585a76572523581f Signed-off-by: Robert Varga --- .../restconf/nb/rfc8040/WriteDataParams.java | 9 ++ .../impl/RestconfDataServiceImpl.java | 9 +- .../rests/utils/PostDataTransactionUtil.java | 17 ++- .../rests/utils/PutDataTransactionUtil.java | 24 ++-- .../utils/PostDataTransactionUtilTest.java | 68 ++++------- .../utils/PutDataTransactionUtilTest.java | 112 +++++++----------- 6 files changed, 103 insertions(+), 136 deletions(-) diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/WriteDataParams.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/WriteDataParams.java index 6004c8b967..0d70ae422f 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/WriteDataParams.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/WriteDataParams.java @@ -7,6 +7,9 @@ */ package org.opendaylight.restconf.nb.rfc8040; +import static com.google.common.base.Verify.verifyNotNull; + +import com.google.common.annotations.Beta; import com.google.common.base.MoreObjects; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; @@ -68,6 +71,12 @@ public final class WriteDataParams implements Immutable { return point; } + @Beta + // FIXME: it seems callers' structure should be able to cater with just point() and insert() + public @NonNull PointParam getPoint() { + return verifyNotNull(point); + } + @Override public String toString() { final var helper = MoreObjects.toStringHelper(this).omitNullValues(); diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfDataServiceImpl.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfDataServiceImpl.java index b3375a8c34..a221043bb0 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfDataServiceImpl.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfDataServiceImpl.java @@ -218,7 +218,7 @@ public class RestconfDataServiceImpl implements RestconfDataService { public Response putData(final String identifier, final NormalizedNodePayload payload, final UriInfo uriInfo) { requireNonNull(payload); - final WriteDataParams checkedParms = QueryParams.newWriteDataParams(uriInfo); + final WriteDataParams params = QueryParams.newWriteDataParams(uriInfo); final InstanceIdentifierContext iid = payload.getInstanceIdentifierContext(); @@ -231,7 +231,7 @@ public class RestconfDataServiceImpl implements RestconfDataService { ? schemaContextHandler.get() : modelContext(mountPoint); final RestconfStrategy strategy = getRestconfStrategy(mountPoint); - return PutDataTransactionUtil.putData(payload, ref, strategy, checkedParms.insert(), checkedParms.point()); + return PutDataTransactionUtil.putData(payload, ref, strategy, params); } @Override @@ -246,11 +246,10 @@ public class RestconfDataServiceImpl implements RestconfDataService { return invokeAction(payload); } - final WriteDataParams checkedParms = QueryParams.newWriteDataParams(uriInfo); + final WriteDataParams params = QueryParams.newWriteDataParams(uriInfo); final DOMMountPoint mountPoint = payload.getInstanceIdentifierContext().getMountPoint(); final RestconfStrategy strategy = getRestconfStrategy(mountPoint); - return PostDataTransactionUtil.postData(uriInfo, payload, strategy, - getSchemaContext(mountPoint), checkedParms.insert(), checkedParms.point()); + return PostDataTransactionUtil.postData(uriInfo, payload, strategy, getSchemaContext(mountPoint), params); } @Override diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtil.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtil.java index b07e4f91f8..cd5e8ce51c 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtil.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtil.java @@ -21,6 +21,7 @@ import org.opendaylight.restconf.common.context.InstanceIdentifierContext; import org.opendaylight.restconf.common.errors.RestconfDocumentedException; import org.opendaylight.restconf.nb.rfc8040.InsertParam; import org.opendaylight.restconf.nb.rfc8040.PointParam; +import org.opendaylight.restconf.nb.rfc8040.WriteDataParams; import org.opendaylight.restconf.nb.rfc8040.legacy.NormalizedNodePayload; import org.opendaylight.restconf.nb.rfc8040.rests.transactions.RestconfStrategy; import org.opendaylight.restconf.nb.rfc8040.rests.transactions.RestconfTransaction; @@ -58,17 +59,15 @@ public final class PostDataTransactionUtil { * @param payload data * @param strategy Object that perform the actual DS operations * @param schemaContext reference to actual {@link EffectiveModelContext} - * @param point point - * @param insert insert + * @param params {@link WriteDataParams} * @return {@link Response} */ public static Response postData(final UriInfo uriInfo, final NormalizedNodePayload payload, final RestconfStrategy strategy, - final EffectiveModelContext schemaContext, final InsertParam insert, - final PointParam point) { + final EffectiveModelContext schemaContext, final WriteDataParams params) { final YangInstanceIdentifier path = payload.getInstanceIdentifierContext().getInstanceIdentifier(); final FluentFuture future = submitData(path, payload.getData(), - strategy, schemaContext, insert, point); + strategy, schemaContext, params); final URI location = resolveLocation(uriInfo, path, schemaContext, payload.getData()); final ResponseFactory dataFactory = new ResponseFactory(Status.CREATED).location(location); //This method will close transactionChain if any @@ -91,9 +90,9 @@ public final class PostDataTransactionUtil { final NormalizedNode data, final RestconfStrategy strategy, final EffectiveModelContext schemaContext, - final InsertParam insert, - final PointParam point) { + final WriteDataParams params) { final RestconfTransaction transaction = strategy.prepareWriteExecution(); + final InsertParam insert = params.insert(); if (insert == null) { makePost(path, data, schemaContext, transaction); return transaction.commit(); @@ -123,7 +122,7 @@ public final class PostDataTransactionUtil { return transaction.commit(); } checkItemDoesNotExists(strategy.exists(LogicalDatastoreType.CONFIGURATION, path), path); - insertWithPointPost(path, data, schemaContext, point, + insertWithPointPost(path, data, schemaContext, params.getPoint(), (NormalizedNodeContainer) readData, true, transaction); return transaction.commit(); case AFTER: @@ -133,7 +132,7 @@ public final class PostDataTransactionUtil { return transaction.commit(); } checkItemDoesNotExists(strategy.exists(LogicalDatastoreType.CONFIGURATION, path), path); - insertWithPointPost(path, data, schemaContext, point, + insertWithPointPost(path, data, schemaContext, params.getPoint(), (NormalizedNodeContainer) readData, false, transaction); return transaction.commit(); default: diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java index 26339e0360..c0f3e866af 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java @@ -18,6 +18,7 @@ import org.opendaylight.restconf.common.context.InstanceIdentifierContext; import org.opendaylight.restconf.common.errors.RestconfDocumentedException; import org.opendaylight.restconf.nb.rfc8040.InsertParam; import org.opendaylight.restconf.nb.rfc8040.PointParam; +import org.opendaylight.restconf.nb.rfc8040.WriteDataParams; import org.opendaylight.restconf.nb.rfc8040.legacy.NormalizedNodePayload; import org.opendaylight.restconf.nb.rfc8040.rests.transactions.RestconfStrategy; import org.opendaylight.restconf.nb.rfc8040.rests.transactions.RestconfTransaction; @@ -53,13 +54,11 @@ public final class PutDataTransactionUtil { * @param payload data to put * @param schemaContext reference to {@link EffectiveModelContext} * @param strategy object that perform the actual DS operations - * @param point query parameter - * @param insert query parameter + * @param params {@link WriteDataParams} * @return {@link Response} */ public static Response putData(final NormalizedNodePayload payload, final EffectiveModelContext schemaContext, - final RestconfStrategy strategy, final InsertParam insert, - final PointParam point) { + final RestconfStrategy strategy, final WriteDataParams params) { final YangInstanceIdentifier path = payload.getInstanceIdentifierContext().getInstanceIdentifier(); final FluentFuture existsFuture = strategy.exists(LogicalDatastoreType.CONFIGURATION, path); @@ -69,7 +68,7 @@ public final class PutDataTransactionUtil { final ResponseFactory responseFactory = new ResponseFactory(existsResponse.result ? Status.NO_CONTENT : Status.CREATED); final FluentFuture submitData = submitData(path, schemaContext, strategy, - payload.getData(), insert, point); + payload.getData(), params); //This method will close transactionChain if any FutureCallbackTx.addCallback(submitData, PUT_TX_TYPE, responseFactory, path); return responseFactory.build(); @@ -82,17 +81,16 @@ public final class PutDataTransactionUtil { * @param schemaContext {@link SchemaContext} * @param strategy object that perform the actual DS operations * @param data data - * @param point query parameter - * @param insert query parameter + * @param params {@link WriteDataParams} * @return {@link FluentFuture} */ private static FluentFuture submitData(final YangInstanceIdentifier path, final EffectiveModelContext schemaContext, final RestconfStrategy strategy, final NormalizedNode data, - final InsertParam insert, - final PointParam point) { + final WriteDataParams params) { final RestconfTransaction transaction = strategy.prepareWriteExecution(); + final InsertParam insert = params.insert(); if (insert == null) { return makePut(path, schemaContext, transaction, data); } @@ -116,16 +114,16 @@ public final class PutDataTransactionUtil { if (readData == null || ((NormalizedNodeContainer) readData).isEmpty()) { return makePut(path, schemaContext, transaction, data); } - insertWithPointPut(transaction, path, data, schemaContext, point, (NormalizedNodeContainer) readData, - true); + insertWithPointPut(transaction, path, data, schemaContext, params.getPoint(), + (NormalizedNodeContainer) readData, true); return transaction.commit(); case AFTER: readData = readList(strategy, path.getParent()); if (readData == null || ((NormalizedNodeContainer) readData).isEmpty()) { return makePut(path, schemaContext, transaction, data); } - insertWithPointPut(transaction, path, data, schemaContext, point, (NormalizedNodeContainer) readData, - false); + insertWithPointPut(transaction, path, data, schemaContext, params.getPoint(), + (NormalizedNodeContainer) readData, false); return transaction.commit(); default: throw new RestconfDocumentedException( diff --git a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtilTest.java b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtilTest.java index ba5039ef8c..4f67b760da 100644 --- a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtilTest.java +++ b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PostDataTransactionUtilTest.java @@ -10,8 +10,7 @@ package org.opendaylight.restconf.nb.rfc8040.rests.utils; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; @@ -41,6 +40,7 @@ import org.opendaylight.netconf.dom.api.NetconfDataTreeService; import org.opendaylight.restconf.common.context.InstanceIdentifierContext; 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.transactions.MdsalRestconfStrategy; import org.opendaylight.restconf.nb.rfc8040.rests.transactions.NetconfRestconfStrategy; @@ -141,31 +141,26 @@ public class PostDataTransactionUtilTest { new InstanceIdentifierContext<>(iid2, null, null, schema); final NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildBaseCont); - doReturn(immediateFalseFluentFuture()).when(readWrite).exists(LogicalDatastoreType.CONFIGURATION, - iid2); + doReturn(immediateFalseFluentFuture()).when(readWrite).exists(LogicalDatastoreType.CONFIGURATION, iid2); final NodeIdentifier identifier = ((ContainerNode) ((Collection) payload.getData().body()).iterator().next()).getIdentifier(); - final YangInstanceIdentifier node = - payload.getInstanceIdentifierContext().getInstanceIdentifier().node(identifier); + final YangInstanceIdentifier node = iid2.node(identifier); doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, node.getParent(), payload.getData()); doReturn(CommitInfo.emptyFluentFuture()).when(readWrite).commit(); doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).commit(); doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService) - .create(LogicalDatastoreType.CONFIGURATION, payload.getInstanceIdentifierContext().getInstanceIdentifier(), - payload.getData(), Optional.empty()); + .create(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty()); Response response = PostDataTransactionUtil.postData(uriInfo, payload, - new MdsalRestconfStrategy(mockDataBroker), schema, null, null); + new MdsalRestconfStrategy(mockDataBroker), schema, WriteDataParams.empty()); assertEquals(201, response.getStatus()); verify(readWrite).exists(LogicalDatastoreType.CONFIGURATION, iid2); - verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, - payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData()); + verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData()); response = PostDataTransactionUtil.postData(uriInfo, payload, - new NetconfRestconfStrategy(netconfService), schema, null, null); + new NetconfRestconfStrategy(netconfService), schema, WriteDataParams.empty()); assertEquals(201, response.getStatus()); - verify(netconfService).create(LogicalDatastoreType.CONFIGURATION, - payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData(), Optional.empty()); + verify(netconfService).create(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty()); } @Test @@ -177,8 +172,7 @@ public class PostDataTransactionUtilTest { final MapNode data = (MapNode) payload.getData(); final MapEntryNode entryNode = data.body().iterator().next(); final NodeIdentifierWithPredicates identifier = entryNode.getIdentifier(); - final YangInstanceIdentifier node = - payload.getInstanceIdentifierContext().getInstanceIdentifier().node(identifier); + final YangInstanceIdentifier node = iidList.node(identifier); doReturn(immediateFalseFluentFuture()).when(readWrite).exists(LogicalDatastoreType.CONFIGURATION, node); doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, node, entryNode); doReturn(CommitInfo.emptyFluentFuture()).when(readWrite).commit(); @@ -189,7 +183,7 @@ public class PostDataTransactionUtilTest { LogicalDatastoreType.CONFIGURATION, node, entryNode, Optional.empty()); Response response = PostDataTransactionUtil.postData(uriInfo, payload, - new MdsalRestconfStrategy(mockDataBroker), schema, null, null); + new MdsalRestconfStrategy(mockDataBroker), schema, WriteDataParams.empty()); assertEquals(201, response.getStatus()); assertThat(URLDecoder.decode(response.getLocation().toString(), StandardCharsets.UTF_8), containsString(identifier.getValue(identifier.keySet().iterator().next()).toString())); @@ -197,7 +191,7 @@ public class PostDataTransactionUtilTest { verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, node, entryNode); response = PostDataTransactionUtil.postData(uriInfo, payload, - new NetconfRestconfStrategy(netconfService), schema, null, null); + new NetconfRestconfStrategy(netconfService), schema, WriteDataParams.empty()); assertEquals(201, response.getStatus()); assertThat(URLDecoder.decode(response.getLocation().toString(), StandardCharsets.UTF_8), containsString(identifier.getValue(identifier.keySet().iterator().next()).toString())); @@ -215,8 +209,7 @@ public class PostDataTransactionUtilTest { iid2); final NodeIdentifier identifier = ((ContainerNode) ((Collection) payload.getData().body()).iterator().next()).getIdentifier(); - final YangInstanceIdentifier node = - payload.getInstanceIdentifierContext().getInstanceIdentifier().node(identifier); + final YangInstanceIdentifier node = iid2.node(identifier); doNothing().when(readWrite).put(LogicalDatastoreType.CONFIGURATION, node.getParent(), payload.getData()); final DOMException domException = new DOMException((short) 414, "Post request failed"); doReturn(immediateFailedFluentFuture(domException)).when(readWrite).commit(); @@ -225,29 +218,20 @@ public class PostDataTransactionUtilTest { doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).discardChanges(); doReturn(Futures.immediateFuture(new DefaultDOMRpcResult())).when(netconfService).unlock(); - try { - PostDataTransactionUtil.postData(uriInfo, payload, - new MdsalRestconfStrategy(mockDataBroker), schema, null, null); - fail("Expected RestconfDocumentedException"); - } catch (final RestconfDocumentedException e) { - assertEquals(1, e.getErrors().size()); - assertTrue(e.getErrors().get(0).getErrorInfo().contains(domException.getMessage())); - } + RestconfDocumentedException ex = assertThrows(RestconfDocumentedException.class, + () -> PostDataTransactionUtil.postData(uriInfo, payload, new MdsalRestconfStrategy(mockDataBroker), schema, + WriteDataParams.empty())); + assertEquals(1, ex.getErrors().size()); + assertThat(ex.getErrors().get(0).getErrorInfo(), containsString(domException.getMessage())); verify(readWrite).exists(LogicalDatastoreType.CONFIGURATION, iid2); - verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, - payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData()); - - try { - PostDataTransactionUtil.postData(uriInfo, payload, - new NetconfRestconfStrategy(netconfService), schema, null, null); - fail("Expected RestconfDocumentedException"); - } catch (final RestconfDocumentedException e) { - assertEquals(1, e.getErrors().size()); - assertTrue(e.getErrors().get(0).getErrorInfo().contains(domException.getMessage())); - } - - verify(netconfService).create(LogicalDatastoreType.CONFIGURATION, - payload.getInstanceIdentifierContext().getInstanceIdentifier(), payload.getData(), Optional.empty()); + verify(readWrite).put(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData()); + + ex = assertThrows(RestconfDocumentedException.class, () -> PostDataTransactionUtil.postData(uriInfo, payload, + new NetconfRestconfStrategy(netconfService), schema, WriteDataParams.empty())); + assertEquals(1, ex.getErrors().size()); + assertThat(ex.getErrors().get(0).getErrorInfo(), containsString(domException.getMessage())); + + verify(netconfService).create(LogicalDatastoreType.CONFIGURATION, iid2, payload.getData(), Optional.empty()); } } diff --git a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtilTest.java b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtilTest.java index 46960927ca..93ff49ef55 100644 --- a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtilTest.java +++ b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtilTest.java @@ -33,6 +33,7 @@ import org.opendaylight.netconf.dom.api.NetconfDataTreeService; import org.opendaylight.restconf.common.context.InstanceIdentifierContext; 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,22 +170,16 @@ public class PutDataTransactionUtilTest { @Test public void testValidInputData() { - final InstanceIdentifierContext iidContext = - new InstanceIdentifierContext<>(iid, schemaNode, null, schema); - RestconfDataServiceImpl.validInputData(iidContext.getSchemaNode(), - NormalizedNodePayload.of(iidContext, buildLeaf)); + RestconfDataServiceImpl.validInputData(schemaNode, NormalizedNodePayload.of( + new InstanceIdentifierContext<>(iid, schemaNode, null, schema), buildLeaf)); } @Test public void testValidTopLevelNodeName() { - InstanceIdentifierContext iidContext = - new InstanceIdentifierContext<>(iid, schemaNode, null, schema); - NormalizedNodePayload payload = NormalizedNodePayload.of(iidContext, buildLeaf); - RestconfDataServiceImpl.validTopLevelNodeName(iidContext.getInstanceIdentifier(), payload); - - iidContext = new InstanceIdentifierContext<>(iid2, schemaNode2, null, schema); - payload = NormalizedNodePayload.of(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 @@ -225,17 +220,14 @@ public class PutDataTransactionUtilTest { 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 @@ -247,15 +239,13 @@ public class PutDataTransactionUtilTest { 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 @@ -264,18 +254,15 @@ public class PutDataTransactionUtilTest { 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 @@ -286,17 +273,14 @@ public class PutDataTransactionUtilTest { 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 @@ -308,14 +292,12 @@ public class PutDataTransactionUtilTest { 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 @@ -324,18 +306,15 @@ public class PutDataTransactionUtilTest { 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 @@ -348,10 +327,10 @@ public class PutDataTransactionUtilTest { 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()); } @@ -369,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()); @@ -388,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()); } } -- 2.36.6