X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Frestconf-nb-rfc8040%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Frestconf%2Fnb%2Frfc8040%2Frests%2Fservices%2Fimpl%2FCreateStreamUtilTest.java;h=a4a7577538fa8a90f4b58a8f2a63a6138f10b21c;hb=9cc114dc8e4109893e2346477b5ae14391afe01c;hp=edd27c49c6382eb2c4c12ef1e6735f653f7093ba;hpb=c894986ef8b0b40d7457c8c0c54a656ea0e9a521;p=netconf.git diff --git a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/CreateStreamUtilTest.java b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/CreateStreamUtilTest.java index edd27c49c6..a4a7577538 100644 --- a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/CreateStreamUtilTest.java +++ b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/CreateStreamUtilTest.java @@ -7,96 +7,101 @@ */ package org.opendaylight.restconf.nb.rfc8040.rests.services.impl; +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; import java.util.Collections; +import java.util.function.Function; import org.junit.Before; import org.junit.Test; -import org.mockito.MockitoAnnotations; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.mdsal.dom.api.DOMRpcResult; 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.legacy.NormalizedNodePayload; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.impl.schema.Builders; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; +import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.SchemaAwareBuilders; import org.opendaylight.yangtools.yang.model.api.ContainerLike; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; -import org.opendaylight.yangtools.yang.model.util.SchemaNodeUtils; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; +@RunWith(MockitoJUnitRunner.StrictStubs.class) public class CreateStreamUtilTest { private static final String PATH_FOR_NEW_SCHEMA_CONTEXT = "/streams"; - private NormalizedNodeContext payload; + private NormalizedNodePayload payload; private EffectiveModelContext refSchemaCtx; @Before public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - this.refSchemaCtx = - YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT)); + refSchemaCtx = YangParserTestUtils.parseYangFiles(TestRestconfUtils.loadFiles(PATH_FOR_NEW_SCHEMA_CONTEXT)); } @Test public void createStreamTest() { - this.payload = prepareDomPayload("create-data-change-event-subscription", "input", "toaster", "path"); - final DOMRpcResult result = CreateStreamUtil.createDataChangeNotifiStream(this.payload, this.refSchemaCtx); + payload = prepareDomPayload("create-data-change-event-subscription", RpcDefinition::getInput, "toaster", + "path"); + final DOMRpcResult result = CreateStreamUtil.createDataChangeNotifiStream(payload, refSchemaCtx); assertEquals(result.getErrors(), Collections.emptyList()); - final NormalizedNode testedNn = result.getResult(); + final NormalizedNode testedNn = result.getResult(); assertNotNull(testedNn); - final NormalizedNodeContext contextRef = prepareDomPayload("create-data-change-event-subscription", "output", - "data-change-event-subscription/toaster:toaster/datastore=CONFIGURATION/scope=BASE", "stream-name"); + final NormalizedNodePayload contextRef = prepareDomPayload("create-data-change-event-subscription", + RpcDefinition::getOutput, + "data-change-event-subscription/toaster:toaster/datastore=CONFIGURATION/scope=BASE", "stream-name"); assertEquals(contextRef.getData(), testedNn); } @Test(expected = RestconfDocumentedException.class) public void createStreamWrongValueTest() { - this.payload = prepareDomPayload("create-data-change-event-subscription", "input", "String value", "path"); - final DOMRpcResult result = CreateStreamUtil.createDataChangeNotifiStream(this.payload, this.refSchemaCtx); + payload = prepareDomPayload("create-data-change-event-subscription", RpcDefinition::getInput, + "String value", "path"); + final DOMRpcResult result = CreateStreamUtil.createDataChangeNotifiStream(payload, refSchemaCtx); assertEquals(result.getErrors(), Collections.emptyList()); } @Test(expected = RestconfDocumentedException.class) public void createStreamWrongInputRpcTest() { - this.payload = prepareDomPayload("create-data-change-event-subscription2", "input", "toaster", "path2"); - final DOMRpcResult result = CreateStreamUtil.createDataChangeNotifiStream(this.payload, this.refSchemaCtx); + payload = prepareDomPayload("create-data-change-event-subscription2", RpcDefinition::getInput, "toaster", + "path2"); + final DOMRpcResult result = CreateStreamUtil.createDataChangeNotifiStream(payload, refSchemaCtx); assertEquals(result.getErrors(), Collections.emptyList()); } - private NormalizedNodeContext prepareDomPayload(final String rpcName, final String inputOutput, - final String toasterValue, final String inputOutputName) { - final EffectiveModelContext schema = this.refSchemaCtx; + private NormalizedNodePayload prepareDomPayload(final String rpcName, + final Function rpcToContainer, final String toasterValue, + final String inputOutputName) { + final EffectiveModelContext schema = refSchemaCtx; final Module rpcModule = schema.findModules("sal-remote").iterator().next(); final QName rpcQName = QName.create(rpcModule.getQNameModule(), rpcName); - final QName rpcInputQName = QName.create(rpcModule.getQNameModule(), inputOutput); ContainerLike rpcInputSchemaNode = null; for (final RpcDefinition rpc : rpcModule.getRpcs()) { if (rpcQName.isEqualWithoutRevision(rpc.getQName())) { - rpcInputSchemaNode = SchemaNodeUtils.getRpcDataSchema(rpc, rpcInputQName); + rpcInputSchemaNode = rpcToContainer.apply(rpc); break; } } assertNotNull(rpcInputSchemaNode); final DataContainerNodeBuilder container = - Builders.containerBuilder(rpcInputSchemaNode); + SchemaAwareBuilders.containerBuilder(rpcInputSchemaNode); final QName lfQName = QName.create(rpcModule.getQNameModule(), inputOutputName); - final DataSchemaNode lfSchemaNode = rpcInputSchemaNode.getDataChildByName(lfQName); + final DataSchemaNode lfSchemaNode = rpcInputSchemaNode.findDataChildByName(lfQName).orElseThrow(); - assertTrue(lfSchemaNode instanceof LeafSchemaNode); + assertThat(lfSchemaNode, instanceOf(LeafSchemaNode.class)); final Object o; if ("toaster".equals(toasterValue)) { @@ -105,11 +110,11 @@ public class CreateStreamUtilTest { } else { o = toasterValue; } - final LeafNode lfNode = Builders.leafBuilder((LeafSchemaNode) lfSchemaNode) + final LeafNode lfNode = SchemaAwareBuilders.leafBuilder((LeafSchemaNode) lfSchemaNode) .withValue(o).build(); container.withChild(lfNode); - return new NormalizedNodeContext(new InstanceIdentifierContext<>(null, rpcInputSchemaNode, null, schema), + return NormalizedNodePayload.of(new InstanceIdentifierContext(null, rpcInputSchemaNode, null, schema), container.build()); } }