import junit.framework.Assert;
import org.junit.Before;
import org.junit.Test;
-import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Container;
-import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node;
import org.opendaylight.controller.cluster.datastore.node.utils.NodeIdentifierFactory;
import org.opendaylight.controller.cluster.datastore.node.utils.NormalizedNodeGetter;
import org.opendaylight.controller.cluster.datastore.node.utils.NormalizedNodeNavigator;
import org.opendaylight.controller.cluster.datastore.util.TestModel;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Container;
+import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages.Node;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
assertNotNull("Schema context must not be null.", schemaContext);
}
- private InstanceIdentifier instanceIdentifierFromString(String s){
+ private YangInstanceIdentifier instanceIdentifierFromString(String s){
String[] ids = s.split("/");
- List<InstanceIdentifier.PathArgument> pathArguments = new ArrayList<>();
+ List<YangInstanceIdentifier.PathArgument> pathArguments = new ArrayList<>();
for(String nodeId : ids){
if(!"".equals(nodeId)) {
pathArguments.add(NodeIdentifierFactory.getArgument(nodeId));
}
}
- final InstanceIdentifier instanceIdentifier = InstanceIdentifier.create(pathArguments);
+ final YangInstanceIdentifier instanceIdentifier = YangInstanceIdentifier.create(pathArguments);
return instanceIdentifier;
}
@Test
public void testNormalizeNodeAttributesToProtoBuffNode(){
final NormalizedNode<?, ?> documentOne = TestModel.createTestContainer();
- String id = "/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)test/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)outer-list/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)outer-list[{(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)id=2}]/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)id";
+ String id = "/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)test" +
+ "/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)outer-list" +
+ "/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)outer-list[{(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)id=2}]" +
+ "/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)id";
NormalizedNodeGetter normalizedNodeGetter = new NormalizedNodeGetter(id);
new NormalizedNodeNavigator(normalizedNodeGetter).navigate(
- InstanceIdentifier.builder().build().toString(), documentOne);
+ YangInstanceIdentifier.builder().build().toString(), documentOne);
// Validate the value of id can be retrieved from the normalized node
NormalizedNode output = normalizedNodeGetter.getOutput();
public void testThatANormalizedNodeToProtoBuffNodeEncodeDecode() throws Exception {
final NormalizedNode<?, ?> documentOne = TestModel.createTestContainer();
-
final NormalizedNodeToNodeCodec normalizedNodeToNodeCodec = new NormalizedNodeToNodeCodec(schemaContext);
- Container container = normalizedNodeToNodeCodec.encode(InstanceIdentifier.builder().build(), documentOne);
+ Container container = normalizedNodeToNodeCodec.encode(YangInstanceIdentifier.builder().build(), documentOne);
final NormalizedNode<?, ?> decode = normalizedNodeToNodeCodec.decode(instanceIdentifierFromString("/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)test"),container.getNormalizedNode());
assertNotNull(decode != null);
//let us ensure that the return decode normalized node encode returns same container
- Container containerResult = normalizedNodeToNodeCodec.encode(InstanceIdentifier.builder().build(), decode);
+ Container containerResult = normalizedNodeToNodeCodec.encode(YangInstanceIdentifier.builder().build(), decode);
assertEquals(container.getParentPath(),containerResult.getParentPath());
assertEquals(container.getNormalizedNode().getChildCount(),container.getNormalizedNode().getChildCount());
//check first level children are proper
List<Node>childrenResult = containerResult.getNormalizedNode().getChildList();
List<Node>childrenOriginal = container.getNormalizedNode().getChildList();
+
+ System.out.println("-------------------------------------------------");
+
+ System.out.println(childrenOriginal.toString());
+
+ System.out.println("-------------------------------------------------");
+
+ System.out.println(childrenResult.toString());
+
boolean bFound;
for(Node resultChild: childrenResult){
bFound = false;
Assert.assertTrue(bFound);
}
+ }
+
+ @Test
+ public void addAugmentations(){
+ String stringId = "/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)test" +
+ "/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)augmented-list" +
+ "/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)augmented-list[{(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)id=1}]";
+
+ YangInstanceIdentifier identifier = instanceIdentifierFromString(stringId);
+
+ MapEntryNode uno = TestModel.createAugmentedListEntry(1, "Uno");
+
+ NormalizedNodeToNodeCodec codec =
+ new NormalizedNodeToNodeCodec(schemaContext);
+
+ Container encode = codec
+ .encode(identifier, uno);
+
+ System.out.println(encode.getNormalizedNode());
+ codec.decode(identifier, encode.getNormalizedNode());
}
}