544ab5d44d18df78fe92ea73eeab756bdfee2422
[yangtools.git] / yang / yang-binding / src / test / java / org / opendaylight / yangtools / yang / binding / test / InstanceIdentifierTest.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.yangtools.yang.binding.test;\r
9 \r
10 import static org.junit.Assert.*;\r
11 \r
12 import org.junit.Test;\r
13 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
14 import org.opendaylight.yangtools.yang.binding.test.mock.FooChild;\r
15 import org.opendaylight.yangtools.yang.binding.test.mock.InstantiatedFoo;\r
16 import org.opendaylight.yangtools.yang.binding.test.mock.Node;\r
17 import org.opendaylight.yangtools.yang.binding.test.mock.NodeChild;\r
18 import org.opendaylight.yangtools.yang.binding.test.mock.NodeChildKey;\r
19 import org.opendaylight.yangtools.yang.binding.test.mock.NodeKey;\r
20 import org.opendaylight.yangtools.yang.binding.test.mock.Nodes;\r
21 \r
22 public class InstanceIdentifierTest {\r
23 \r
24     @Test\r
25     public void constructWithPredicates() {\r
26         \r
27         InstanceIdentifier<Nodes> nodes = InstanceIdentifier.builder(Nodes.class).toInstance();\r
28         \r
29         assertNotNull(nodes);\r
30         assertEquals(Nodes.class, nodes.getTargetType());\r
31         \r
32         \r
33         InstanceIdentifier<Node> node = InstanceIdentifier.builder(nodes).node(Node.class).toInstance();\r
34         \r
35         assertNotNull(node);\r
36         assertEquals(Node.class, node.getTargetType());\r
37         \r
38         assertTrue(nodes.contains(node));\r
39     }\r
40 \r
41     @Test\r
42     public void fluentConstruction() {\r
43 \r
44         InstanceIdentifier<Nodes> nodes = InstanceIdentifier.builder(Nodes.class).toInstance();\r
45         InstanceIdentifier<Node> node = InstanceIdentifier.builder(Nodes.class).child(Node.class,new NodeKey(10)).toInstance();\r
46 \r
47         assertNotNull(node);\r
48         assertEquals(Node.class, node.getTargetType());\r
49 \r
50         assertTrue(nodes.contains(node));\r
51     }\r
52    \r
53     \r
54     @Test\r
55     public void negativeContains() {\r
56         InstanceIdentifier<FooChild> fooChild = InstanceIdentifier.builder(Nodes.class).child(InstantiatedFoo.class).child(FooChild.class).build();\r
57         \r
58         InstanceIdentifier<Node> nodeTen = InstanceIdentifier.builder(Nodes.class) //\r
59                 .child(Node.class,new NodeKey(10)).toInstance();\r
60         InstanceIdentifier<Node> nodeOne = InstanceIdentifier.builder(Nodes.class) //\r
61                 .child(Node.class,new NodeKey(1)).toInstance();\r
62         InstanceIdentifier<Nodes> nodes = InstanceIdentifier.builder(Nodes.class).toInstance();\r
63     \r
64         assertFalse(fooChild.contains(nodeTen));\r
65         assertFalse(nodeTen.contains(nodes));\r
66         \r
67         assertFalse(nodeOne.contains(nodes));\r
68         assertTrue(nodes.contains(nodeOne));\r
69     }\r
70     \r
71     @Test\r
72     public void containsWildcarded() {\r
73         InstanceIdentifier<Nodes> nodes = InstanceIdentifier.builder(Nodes.class).toInstance();\r
74         InstanceIdentifier<Node> wildcarded = InstanceIdentifier.builder(Nodes.class).child(Node.class).build();\r
75         InstanceIdentifier<NodeChild> wildcardedChildren = InstanceIdentifier.builder(Nodes.class) //\r
76                 .child(Node.class) //\r
77                 .child(NodeChild.class).build();\r
78         \r
79         assertTrue(wildcarded.isWildcarded());\r
80         assertTrue(wildcardedChildren.isWildcarded());\r
81         \r
82         \r
83         InstanceIdentifier<Node> nodeTen = InstanceIdentifier.builder(Nodes.class) //\r
84                 .child(Node.class,new NodeKey(10)).toInstance();\r
85         InstanceIdentifier<Node> nodeOne = InstanceIdentifier.builder(Nodes.class) //\r
86                 .child(Node.class,new NodeKey(1)).toInstance();\r
87         \r
88         assertFalse(nodeTen.isWildcarded());\r
89         assertFalse(nodeOne.isWildcarded());\r
90         assertTrue(nodes.containsWildcarded(nodeOne));\r
91         assertTrue(wildcarded.containsWildcarded(nodeOne));\r
92         assertTrue(wildcarded.containsWildcarded(nodeTen));\r
93         \r
94         \r
95         InstanceIdentifier<NodeChild> nodeTenChildWildcarded = InstanceIdentifier.builder(Nodes.class) //\r
96                 .child(Node.class,new NodeKey(10)).child(NodeChild.class).toInstance();\r
97         \r
98         assertTrue(nodeTenChildWildcarded.isWildcarded());\r
99         \r
100         InstanceIdentifier<NodeChild> nodeTenChild = InstanceIdentifier.builder(Nodes.class) //\r
101                 .child(Node.class,new NodeKey(10)).child(NodeChild.class, new NodeChildKey(10)).toInstance();\r
102         InstanceIdentifier<NodeChild> nodeOneChild = InstanceIdentifier.builder(Nodes.class) //\r
103                 .child(Node.class,new NodeKey(1)).child(NodeChild.class, new NodeChildKey(1)).toInstance();\r
104 \r
105         \r
106         assertFalse(nodeTenChildWildcarded.containsWildcarded(nodeOneChild));\r
107         assertTrue(nodeTenChildWildcarded.containsWildcarded(nodeTenChild));\r
108         \r
109     }\r
110     \r
111     \r
112     void childOfTest() {\r
113         InstanceIdentifier.builder(Nodes.class).child(InstantiatedFoo.class).child(FooChild.class);\r
114     }\r
115 \r
116 }\r