X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fnetconf-util%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Futil%2Fmessages%2FSubtreeFilterRpcTest.java;fp=netconf%2Fnetconf-util%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Futil%2Fmessages%2FSubtreeFilterRpcTest.java;h=e486c75f2e0d8d6abc8f3e29ec4f420c212de433;hb=78b89473180d4879c126c52bf2c82fd32c4804c4;hp=0000000000000000000000000000000000000000;hpb=17da4d3645d67fec89ef00ccaa3b54bcb496499b;p=netconf.git diff --git a/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterRpcTest.java b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterRpcTest.java new file mode 100644 index 0000000000..e486c75f2e --- /dev/null +++ b/netconf/netconf-util/src/test/java/org/opendaylight/netconf/util/messages/SubtreeFilterRpcTest.java @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. 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.util.messages; + +import static org.junit.Assert.assertTrue; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import org.custommonkey.xmlunit.Diff; +import org.custommonkey.xmlunit.XMLUnit; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; +import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; +import org.xml.sax.SAXException; + +@RunWith(value = Parameterized.class) +public class SubtreeFilterRpcTest { + private static final Logger LOG = LoggerFactory.getLogger(SubtreeFilterRpcTest.class); + + private final int directoryIndex; + + @Parameters + public static Collection data() { + List result = new ArrayList<>(); + for (int i = 0; i <= 10; i++) { + result.add(new Object[]{i}); + } + return result; + } + + public SubtreeFilterRpcTest(int directoryIndex) { + this.directoryIndex = directoryIndex; + } + + @Before + public void setUp(){ + XMLUnit.setIgnoreWhitespace(true); + } + + @Test + public void test() throws Exception { + Document requestDocument = getDocument("request.xml"); + Document preFilterDocument = getDocument("pre-filter.xml"); + Document postFilterDocument = getDocument("post-filter.xml"); + Document actualPostFilterDocument = SubtreeFilter.applyRpcSubtreeFilter(requestDocument, preFilterDocument); + LOG.info("Actual document: {}", XmlUtil.toString(actualPostFilterDocument)); + Diff diff = XMLUnit.compareXML(postFilterDocument, actualPostFilterDocument); + assertTrue(diff.toString(), diff.similar()); + + } + + public Document getDocument(String fileName) throws SAXException, IOException { + return XmlUtil.readXmlToDocument(getClass().getResourceAsStream("/subtree/rpc/" + directoryIndex + "/" + + fileName)); + } +}