*/
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;
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;
@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)
.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());
@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)
.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());
}
}