X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=netconf%2Fmdsal-netconf-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fmdsal%2Fconnector%2Fops%2Fget%2FNetconf538Test.java;fp=netconf%2Fmdsal-netconf-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fmdsal%2Fconnector%2Fops%2Fget%2FNetconf538Test.java;h=3b8babb3a2f87fc02c197ab7cb980af8ca5a0430;hb=9d217801ee72b49cfd68d9499bb57359d1e14d0e;hp=0000000000000000000000000000000000000000;hpb=bcf7a948db06b84d01ff8948a97ab56f6cd0d86e;p=netconf.git diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Netconf538Test.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Netconf538Test.java new file mode 100644 index 0000000000..3b8babb3a2 --- /dev/null +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/get/Netconf538Test.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2019 PANTHEON.tech s.r.o. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.netconf.mdsal.connector.ops.get; + +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; + +import org.junit.Assert; +import org.junit.Test; +import org.mockito.Mock; +import org.opendaylight.netconf.api.xml.XmlUtil; +import org.opendaylight.netconf.mdsal.connector.CurrentSchemaContext; +import org.opendaylight.netconf.mdsal.connector.TransactionProvider; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; +import org.opendaylight.yangtools.yang.data.api.schema.MapNode; +import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Node; + +public class Netconf538Test { + + private static final String SESSION_ID_FOR_REPORTING = "netconf-test-session1"; + private static final QName BASE = QName.create("urn:dummy:list", "2019-08-21", "user"); + private static final QName NAME_QNAME = QName.create(BASE, "name"); + private static final String LEAF_VALUE = "testName"; + + @Mock + private TransactionProvider transactionProvider; + + @Test + public void transformNormalizedNodeTest_mapNodeTest() throws Exception { + + final SchemaContext context = YangParserTestUtils.parseYangResources(Netconf538Test.class, + "/yang/simple-list.yang"); + final CurrentSchemaContext currentContext = mock(CurrentSchemaContext.class); + doReturn(context).when(currentContext).getCurrentContext(); + + final GetConfig getConfig = new GetConfig(SESSION_ID_FOR_REPORTING, currentContext, transactionProvider); + + final Document document = XmlUtil.readXmlToDocument(FilterContentValidatorTest.class + .getResourceAsStream("/filter/netconf538.xml")); + + LeafNode leafNode = Builders.leafBuilder() + .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(NAME_QNAME)) + .withValue(LEAF_VALUE).build(); + + MapEntryNode mapEntryNode = Builders.mapEntryBuilder() + .withNodeIdentifier(new YangInstanceIdentifier + .NodeIdentifierWithPredicates(BASE, NAME_QNAME, LEAF_VALUE)) + .withChild(leafNode).build(); + + MapNode data = Builders.mapBuilder().withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(BASE)) + .withChild(mapEntryNode).build(); + + + final YangInstanceIdentifier path = YangInstanceIdentifier.builder().build(); + + final Node node = getConfig.transformNormalizedNode(document, data, path); + + Assert.assertNotNull(node); + Node nodeUser = node.getFirstChild(); + Assert.assertEquals(data.getIdentifier().getNodeType().getLocalName(), nodeUser.getLocalName()); + Node nodeName = nodeUser.getFirstChild(); + Assert.assertEquals(leafNode.getIdentifier().getNodeType().getLocalName(), nodeName.getLocalName()); + Assert.assertEquals(leafNode.getValue(), nodeName.getFirstChild().getNodeValue()); + } + +}