X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fxml%2Fcodec%2FXmlUtilsTest.java;h=023d1fad8f0d16b9d4c84bbdaba1e69d52b0caf0;hp=2574bd681eeaf72762a8ff8c047fd0d5567f3390;hb=a58c23b491f665e6d5449e97d430a7e15d1ecda6;hpb=64d19dc3c6578981ad4b4d73e2c8619e087a4799 diff --git a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/xml/codec/XmlUtilsTest.java b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/xml/codec/XmlUtilsTest.java index 2574bd681e..023d1fad8f 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/xml/codec/XmlUtilsTest.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/xml/codec/XmlUtilsTest.java @@ -8,122 +8,47 @@ package org.opendaylight.controller.xml.codec; -import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import com.google.common.io.ByteSource; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import javax.xml.parsers.DocumentBuilderFactory; -import org.junit.Assert; import org.junit.Before; -import org.junit.Test; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.api.ModifyAction; -import org.opendaylight.yangtools.yang.data.api.Node; -import org.opendaylight.yangtools.yang.data.api.SimpleNode; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.impl.ImmutableCompositeNode; import org.opendaylight.yangtools.yang.model.api.Module; -import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl; +import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; +import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; +// FIXME : CompositeNode is not avaliable anymore so fix the test to use NormalizedNodeContainer ASAP public class XmlUtilsTest { - - private static final DocumentBuilderFactory BUILDERFACTORY; - - static { - final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setNamespaceAware(true); - factory.setCoalescing(true); - factory.setIgnoringElementContentWhitespace(true); - factory.setIgnoringComments(true); - BUILDERFACTORY = factory; - } - - private SchemaContext schema; - private RpcDefinition testRpc; - - public static final String XML_CONTENT = "" + - "flowid" + - "/ltha:node/ltha:node1[ltha:id='3@java.lang.Short']" + - ""; - - @Before - public void setUp() throws Exception { - final ByteSource byteSource = new ByteSource() { - @Override - public InputStream openStream() throws IOException { - return XmlUtilsTest.this.getClass().getResourceAsStream("rpcTest.yang"); - } - }; - schema = new YangParserImpl().parseSources(Lists.newArrayList(byteSource)); - final Module rpcTestModule = schema.getModules().iterator().next(); - testRpc = rpcTestModule.getRpcs().iterator().next(); - } - - @Test - public void testNullInputXmlToComposite() { - CompositeNode node = XmlUtils.inputXmlToCompositeNode(testRpc.getQName(), null, schema); - Assert.assertNull(node); - } - - @Test - public void testNullRpcXmlToComposite() { - CompositeNode node = XmlUtils.inputXmlToCompositeNode(null, XML_CONTENT, schema); - Assert.assertNull(node); - } - - @Test - public void testInputXmlToCompositeNode() { - CompositeNode node = XmlUtils.inputXmlToCompositeNode(testRpc.getQName(), XML_CONTENT, schema); - ImmutableList> input = (ImmutableList>)node.getValue().get(0).getValue(); - SimpleNode firstNode = input.get(0); - - Assert.assertEquals("id", firstNode.getNodeType().getLocalName()); - Assert.assertEquals("flowid", firstNode.getValue()); - - SimpleNode secondNode = input.get(1); - Assert.assertEquals("flow", secondNode.getNodeType().getLocalName()); - - YangInstanceIdentifier instance = (YangInstanceIdentifier) secondNode.getValue(); - Iterable iterable = instance.getPathArguments(); - Iterator it = iterable.iterator(); - YangInstanceIdentifier.NodeIdentifier firstPath = (YangInstanceIdentifier.NodeIdentifier) it.next(); - Assert.assertEquals("node", firstPath.getNodeType().getLocalName()); - YangInstanceIdentifier.NodeIdentifierWithPredicates secondPath = (YangInstanceIdentifier.NodeIdentifierWithPredicates)it.next(); - Short value = (Short)secondPath.getKeyValues().values().iterator().next(); - Short expected = 3; - Assert.assertEquals(expected, value); - } - - @Test - public void testInputCompositeNodeToXML() { - CompositeNode input = XmlUtils.inputXmlToCompositeNode(testRpc.getQName(), XML_CONTENT, schema); - List> childNodes = new ArrayList<>(); - childNodes.add(input); - QName rpcQName = schema.getOperations().iterator().next().getQName(); - CompositeNode node = new ImmutableCompositeNode(rpcQName, input.getValue(), ModifyAction.REPLACE); - String xml = XmlUtils.inputCompositeNodeToXml(node, schema); - Assert.assertNotNull(xml); - Assert.assertTrue(xml.contains("3@java.lang.Short")); - } - - @Test - public void testNullCompositeNodeToXml(){ - String xml = XmlUtils.inputCompositeNodeToXml(null, schema); - Assert.assertTrue(xml.isEmpty()); - } - - @Test - public void testNullSchemaCompositeNodeToXml(){ - String xml = XmlUtils.inputCompositeNodeToXml(new ImmutableCompositeNode(QName.create("ns", "2013-12-09", "child1"), new ArrayList>(), ModifyAction.REPLACE), null); - Assert.assertTrue(xml.isEmpty()); - } - - + public static final String XML_CONTENT = "" + + "flowid" + + "/ltha:node/ltha:node1" + + "[ltha:id='3@java.lang.Short']"; + + private SchemaContext schemaContext; + + @Before + public void setUp() throws Exception { + final ByteSource byteSource = new ByteSource() { + @Override + public InputStream openStream() throws IOException { + return XmlUtilsTest.this.getClass().getResourceAsStream("rpcTest.yang"); + } + }; + + final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); + final ArrayList sources = Lists.newArrayList(byteSource); + + try { + + schemaContext = reactor.buildEffective(sources); + } catch (ReactorException e) { + throw new RuntimeException("Unable to build schema context from " + sources, e); + } + + final Module rpcTestModule = schemaContext.getModules().iterator().next(); + rpcTestModule.getRpcs().iterator().next(); + } }