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;
\r
10 import static org.junit.Assert.*;
\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
22 public class InstanceIdentifierTest {
\r
25 public void constructWithPredicates() {
\r
27 InstanceIdentifier<Nodes> nodes = InstanceIdentifier.builder(Nodes.class).toInstance();
\r
29 assertNotNull(nodes);
\r
30 assertEquals(Nodes.class, nodes.getTargetType());
\r
33 InstanceIdentifier<Node> node = InstanceIdentifier.builder(nodes).node(Node.class).toInstance();
\r
35 assertNotNull(node);
\r
36 assertEquals(Node.class, node.getTargetType());
\r
38 assertTrue(nodes.contains(node));
\r
42 public void fluentConstruction() {
\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
47 assertNotNull(node);
\r
48 assertEquals(Node.class, node.getTargetType());
\r
50 assertTrue(nodes.contains(node));
\r
55 public void negativeContains() {
\r
56 InstanceIdentifier<FooChild> fooChild = InstanceIdentifier.builder(Nodes.class).child(InstantiatedFoo.class).child(FooChild.class).build();
\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
64 assertFalse(fooChild.contains(nodeTen));
\r
65 assertFalse(nodeTen.contains(nodes));
\r
67 assertFalse(nodeOne.contains(nodes));
\r
68 assertTrue(nodes.contains(nodeOne));
\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
79 assertTrue(wildcarded.isWildcarded());
\r
80 assertTrue(wildcardedChildren.isWildcarded());
\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
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
95 InstanceIdentifier<NodeChild> nodeTenChildWildcarded = InstanceIdentifier.builder(Nodes.class) //
\r
96 .child(Node.class,new NodeKey(10)).child(NodeChild.class).toInstance();
\r
98 assertTrue(nodeTenChildWildcarded.isWildcarded());
\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
106 assertFalse(nodeTenChildWildcarded.containsWildcarded(nodeOneChild));
\r
107 assertTrue(nodeTenChildWildcarded.containsWildcarded(nodeTenChild));
\r
112 void childOfTest() {
\r
113 InstanceIdentifier.builder(Nodes.class).child(InstantiatedFoo.class).child(FooChild.class);
\r