/*
- * Copyright (c) 2013 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
+ * 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.controller.cluster.datastore.util;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.net.URI;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.TransformerFactoryConfigurationError;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
import org.custommonkey.xmlunit.Diff;
import org.custommonkey.xmlunit.XMLUnit;
import org.junit.Test;
import org.opendaylight.controller.protobuff.messages.common.SimpleNormalizedNodeMessage;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
+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.LeafSetEntryNode;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.net.URI;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
/**
- * Two of the testcases in the yangtools/yang-data-impl are leveraged (with modification) to
- * create the serialization of NormalizedNode using the ProtocolBuffer
+ * Two of the testcases in the yangtools/yang-data-impl are leveraged (with modification) to create
+ * the serialization of NormalizedNode using the ProtocolBuffer
*
* @syedbahm
*
+ childNodeName);
}
- static DataSchemaNode findChildNode(final Set<DataSchemaNode> children, final String name) {
+ static DataSchemaNode findChildNode(
+ final Collection<DataSchemaNode> children, final String name) {
List<DataNodeContainer> containers = Lists.newArrayList();
for (DataSchemaNode dataSchemaNode : children) {
if (dataSchemaNode.getQName().getLocalName().equals(name)) {
return dataSchemaNode;
- }
+ }
if (dataSchemaNode instanceof DataNodeContainer) {
containers.add((DataNodeContainer) dataSchemaNode);
} else if (dataSchemaNode instanceof ChoiceNode) {
return null;
}
- private static InstanceIdentifier.NodeIdentifier getNodeIdentifier(
+ public static YangInstanceIdentifier.NodeIdentifier getNodeIdentifier(
final String localName) {
- return new InstanceIdentifier.NodeIdentifier(QName.create(
+ return new YangInstanceIdentifier.NodeIdentifier(QName.create(
URI.create(NAMESPACE), revision, localName));
}
- public static InstanceIdentifier.AugmentationIdentifier getAugmentIdentifier(
+ public static YangInstanceIdentifier.AugmentationIdentifier getAugmentIdentifier(
final String... childNames) {
Set<QName> qn = Sets.newHashSet();
qn.add(getNodeIdentifier(childName).getNodeType());
}
- return new InstanceIdentifier.AugmentationIdentifier(qn);
+ return new YangInstanceIdentifier.AugmentationIdentifier(qn);
}
- private static ContainerNode augmentChoiceExpectedNode() {
+ public static ContainerNode augmentChoiceExpectedNode() {
- DataContainerNodeBuilder<InstanceIdentifier.NodeIdentifier, ContainerNode> b =
+ DataContainerNodeBuilder<YangInstanceIdentifier.NodeIdentifier, ContainerNode> b =
Builders.containerBuilder();
b.withNodeIdentifier(getNodeIdentifier("container"));
- public void init(final String yangPath, final String xmlPath, final ContainerNode expectedNode)
- throws Exception {
+ public void init(final String yangPath, final String xmlPath,
+ final ContainerNode expectedNode) throws Exception {
SchemaContext schema = parseTestSchema(yangPath);
this.xmlPath = xmlPath;
this.containerNode =
containerNode);
if (expectedNode != null) {
- junit.framework.Assert.assertEquals(expectedNode, built);
+ junit.framework.Assert.assertEquals(expectedNode, built);
}
logger.info("{}", built);
System.out.println(toString(doc.getDocumentElement()));
System.out.println(toString(el));
- new Diff(
- XMLUnit.buildControlDocument(toString(doc.getDocumentElement())),
+ new Diff(XMLUnit.buildControlDocument(toString(doc.getDocumentElement())),
XMLUnit.buildTestDocument(toString(el))).similar();
}
private static ContainerNode listLeafListWithAttributes() {
- DataContainerNodeBuilder<InstanceIdentifier.NodeIdentifier, ContainerNode> b =
+ DataContainerNodeBuilder<YangInstanceIdentifier.NodeIdentifier, ContainerNode> b =
Builders.containerBuilder();
b.withNodeIdentifier(getNodeIdentifier("container"));
Map<QName, Object> predicates = Maps.newHashMap();
predicates.put(getNodeIdentifier("uint32InList").getNodeType(), 3L);
- DataContainerNodeBuilder<InstanceIdentifier.NodeIdentifierWithPredicates, MapEntryNode> list1Builder =
+ DataContainerNodeBuilder<YangInstanceIdentifier.NodeIdentifierWithPredicates, MapEntryNode> list1Builder =
Builders.mapEntryBuilder().withNodeIdentifier(
- new InstanceIdentifier.NodeIdentifierWithPredicates(
+ new YangInstanceIdentifier.NodeIdentifierWithPredicates(
getNodeIdentifier("list").getNodeType(), predicates));
- NormalizedNodeBuilder<InstanceIdentifier.NodeIdentifier, Object, LeafNode<Object>> uint32InListBuilder =
+ NormalizedNodeBuilder<YangInstanceIdentifier.NodeIdentifier, Object, LeafNode<Object>> uint32InListBuilder =
Builders.leafBuilder().withNodeIdentifier(
getNodeIdentifier("uint32InList"));
listBuilder.withChild(list1Builder.build());
b.withChild(listBuilder.build());
- NormalizedNodeBuilder<InstanceIdentifier.NodeIdentifier, Object, LeafNode<Object>> booleanBuilder =
+ NormalizedNodeBuilder<YangInstanceIdentifier.NodeIdentifier, Object, LeafNode<Object>> booleanBuilder =
Builders.leafBuilder().withNodeIdentifier(getNodeIdentifier("boolean"));
booleanBuilder.withValue(false);
b.withChild(booleanBuilder.build());
Builders.leafSetBuilder().withNodeIdentifier(
getNodeIdentifier("leafList"));
- NormalizedNodeBuilder<InstanceIdentifier.NodeWithValue, Object, LeafSetEntryNode<Object>> leafList1Builder =
+ NormalizedNodeBuilder<YangInstanceIdentifier.NodeWithValue, Object, LeafSetEntryNode<Object>> leafList1Builder =
Builders.leafSetEntryBuilder().withNodeIdentifier(
- new InstanceIdentifier.NodeWithValue(getNodeIdentifier("leafList")
- .getNodeType(), "a"));
+ new YangInstanceIdentifier.NodeWithValue(getNodeIdentifier(
+ "leafList").getNodeType(), "a"));
leafList1Builder.withValue("a");
containerNode);
if (expectedNode != null) {
- junit.framework.Assert.assertEquals(expectedNode, built);
+ junit.framework.Assert.assertEquals(expectedNode, built);
}
logger.info("{}", built);
System.out.println(toString(doc.getDocumentElement()));
System.out.println(toString(el));
- new Diff(
- XMLUnit.buildControlDocument(toString(doc.getDocumentElement())),
+ new Diff(XMLUnit.buildControlDocument(toString(doc.getDocumentElement())),
XMLUnit.buildTestDocument(toString(el))).similar();
}
XMLUnit.setIgnoreComments(true);
new Diff(XMLUnit.buildControlDocument(toString(expectedDoc
.getDocumentElement())),
- XMLUnit.buildTestDocument(toString(convertedDoc
- .getDocumentElement()))).similar();
+ XMLUnit.buildTestDocument(toString(convertedDoc.getDocumentElement())))
+ .similar();
System.out.println(toString(expectedDoc.getDocumentElement()));
}
XMLUnit.setIgnoreComments(true);
new Diff(XMLUnit.buildControlDocument(toString(expectedDoc
.getDocumentElement())),
- XMLUnit.buildTestDocument(toString(convertedDoc
- .getDocumentElement()))).similar();
+ XMLUnit.buildTestDocument(toString(convertedDoc.getDocumentElement())))
+ .similar();
System.out.println(toString(expectedDoc.getDocumentElement()));
// now we will try to convert xml back to normalize node.
}
- @Test
- public void testInMemoryTestModelProtoBuffEncoding() throws Exception {
-
- SimpleNormalizedNodeMessage.NormalizedNodeXml nnXml =
- EncoderDecoderUtil.encode(parseTestSchema("/odl-datastore-test.yang"),
- TestModel.createFamily());
-
- Document convertedDoc =
- EncoderDecoderUtil.factory.newDocumentBuilder().parse(
- new ByteArrayInputStream(nnXml.getXmlString().getBytes("utf-8")));
- System.out.println(toString(convertedDoc.getDocumentElement()));
-
- // now we will try to convert xml back to normalize node.
- ContainerNode cn =
- (ContainerNode) EncoderDecoderUtil.decode(
- parseTestSchema("/odl-datastore-test.yang"), nnXml);
- junit.framework.Assert.assertEquals(TestModel.createFamily(), cn);
-
-
- }
}