2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.binding.test;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertFalse;
12 import static org.junit.Assert.assertNotNull;
13 import static org.junit.Assert.assertTrue;
15 import org.junit.Test;
16 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
17 import org.opendaylight.yangtools.yang.binding.test.mock.FooChild;
18 import org.opendaylight.yangtools.yang.binding.test.mock.InstantiatedFoo;
19 import org.opendaylight.yangtools.yang.binding.test.mock.Node;
20 import org.opendaylight.yangtools.yang.binding.test.mock.NodeChild;
21 import org.opendaylight.yangtools.yang.binding.test.mock.NodeChildKey;
22 import org.opendaylight.yangtools.yang.binding.test.mock.NodeKey;
23 import org.opendaylight.yangtools.yang.binding.test.mock.Nodes;
25 public class InstanceIdentifierTest {
28 public void constructWithPredicates() {
30 InstanceIdentifier<Nodes> nodes = InstanceIdentifier.builder(Nodes.class).toInstance();
33 assertEquals(Nodes.class, nodes.getTargetType());
36 InstanceIdentifier<Node> node = InstanceIdentifier.builder(nodes).child(Node.class).toInstance();
39 assertEquals(Node.class, node.getTargetType());
41 assertTrue(nodes.contains(node));
45 public void fluentConstruction() {
47 InstanceIdentifier<Nodes> nodes = InstanceIdentifier.builder(Nodes.class).toInstance();
48 InstanceIdentifier<Node> node = InstanceIdentifier.builder(Nodes.class).child(Node.class,new NodeKey(10)).toInstance();
51 assertEquals(Node.class, node.getTargetType());
53 assertTrue(nodes.contains(node));
58 public void negativeContains() {
59 InstanceIdentifier<FooChild> fooChild = InstanceIdentifier.builder(Nodes.class).child(InstantiatedFoo.class).child(FooChild.class).build();
61 InstanceIdentifier<Node> nodeTen = InstanceIdentifier.builder(Nodes.class) //
62 .child(Node.class,new NodeKey(10)).toInstance();
63 InstanceIdentifier<Node> nodeOne = InstanceIdentifier.builder(Nodes.class) //
64 .child(Node.class,new NodeKey(1)).toInstance();
65 InstanceIdentifier<Nodes> nodes = InstanceIdentifier.builder(Nodes.class).toInstance();
67 assertFalse(fooChild.contains(nodeTen));
68 assertFalse(nodeTen.contains(nodes));
70 assertFalse(nodeOne.contains(nodes));
71 assertTrue(nodes.contains(nodeOne));
75 public void containsWildcarded() {
76 InstanceIdentifier<Nodes> nodes = InstanceIdentifier.builder(Nodes.class).toInstance();
77 InstanceIdentifier<Node> wildcarded = InstanceIdentifier.builder(Nodes.class).child(Node.class).build();
78 InstanceIdentifier<NodeChild> wildcardedChildren = InstanceIdentifier.builder(Nodes.class) //
80 .child(NodeChild.class).build();
82 assertTrue(wildcarded.isWildcarded());
83 assertTrue(wildcardedChildren.isWildcarded());
86 InstanceIdentifier<Node> nodeTen = InstanceIdentifier.builder(Nodes.class) //
87 .child(Node.class,new NodeKey(10)).toInstance();
88 InstanceIdentifier<Node> nodeOne = InstanceIdentifier.builder(Nodes.class) //
89 .child(Node.class,new NodeKey(1)).toInstance();
91 assertFalse(nodeTen.isWildcarded());
92 assertFalse(nodeOne.isWildcarded());
93 assertTrue(nodes.containsWildcarded(nodeOne));
94 assertTrue(wildcarded.containsWildcarded(nodeOne));
95 assertTrue(wildcarded.containsWildcarded(nodeTen));
98 InstanceIdentifier<NodeChild> nodeTenChildWildcarded = InstanceIdentifier.builder(Nodes.class) //
99 .child(Node.class,new NodeKey(10)).child(NodeChild.class).toInstance();
101 assertTrue(nodeTenChildWildcarded.isWildcarded());
103 InstanceIdentifier<NodeChild> nodeTenChild = InstanceIdentifier.builder(Nodes.class) //
104 .child(Node.class,new NodeKey(10)).child(NodeChild.class, new NodeChildKey(10)).toInstance();
105 InstanceIdentifier<NodeChild> nodeOneChild = InstanceIdentifier.builder(Nodes.class) //
106 .child(Node.class,new NodeKey(1)).child(NodeChild.class, new NodeChildKey(1)).toInstance();
109 assertFalse(nodeTenChildWildcarded.containsWildcarded(nodeOneChild));
110 assertTrue(nodeTenChildWildcarded.containsWildcarded(nodeTenChild));
116 InstanceIdentifier.builder(Nodes.class).child(InstantiatedFoo.class).child(FooChild.class);