5518804955b7c1f919d7eabbfcc29a712b0bd698
[yangtools.git] / yang / yang-parser-impl / src / test / java / org / opendaylight / yangtools / yang / parser / builder / impl / LeafListSchemaNodeBuilderTest.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
3  * This program and the accompanying materials are made available under the
4  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
5  * and is available at http://www.eclipse.org/legal/epl-v10.html
6  */
7 package org.opendaylight.yangtools.yang.parser.builder.impl;
8
9 import static org.junit.Assert.*;
10
11 import org.junit.Test;
12 import org.opendaylight.yangtools.yang.common.QName;
13 import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode;
14 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
15 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
16 import org.opendaylight.yangtools.yang.model.api.Status;
17 import org.opendaylight.yangtools.yang.model.util.Uint16;
18 import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder;
19
20 /**
21  * Test suite for increasing of test coverage of LeafListSchemaNodeBuilder implementation.
22  *
23  * @see org.opendaylight.yangtools.yang.parser.builder.impl.LeafListSchemaNodeBuilder
24  *
25  * @author Lukas Sedlak <lsedlak@cisco.com>
26  */
27 public class LeafListSchemaNodeBuilderTest extends AbstractBuilderTest {
28
29     @Test
30     public void testLeafListSchemaNodeBuilderWithBaseLeafListSchemaNode() {
31         final String baseLeafListLocalName = "base-leaf-list";
32         final QName baseLeafListQName = QName.create(module.getNamespace(), module.getRevision(), baseLeafListLocalName);
33         final SchemaPath baseLeafListPath = SchemaPath.create(true, baseLeafListQName);
34         final LeafListSchemaNodeBuilder baseLeafListBuilder = new LeafListSchemaNodeBuilder(module.getModuleName(),
35             10, baseLeafListQName, baseLeafListPath);
36
37         final UnknownSchemaNodeBuilder unknownNodeBuilder = provideUnknownNodeBuilder();
38
39         baseLeafListBuilder.addUnknownNodeBuilder(unknownNodeBuilder);
40         baseLeafListBuilder.setType(Uint16.getInstance());
41         final LeafListSchemaNode leafList = baseLeafListBuilder.build();
42
43         assertNotNull(leafList);
44         assertFalse(leafList.getUnknownSchemaNodes().isEmpty());
45         assertEquals(leafList.getUnknownSchemaNodes().size(), 1);
46
47         final String leafListLocalName = "extended-leaf-list";
48         final QName leafListQName = QName.create(module.getNamespace(), module.getRevision(), leafListLocalName);
49         final SchemaPath leafListPath = SchemaPath.create(true, leafListQName);
50         final LeafListSchemaNodeBuilder leafListBuilder = new LeafListSchemaNodeBuilder(module.getModuleName(),
51             15, leafListQName, leafListPath, leafList);
52
53         final LeafListSchemaNode extendedLeafList = leafListBuilder.build();
54
55         assertNotNull(extendedLeafList);
56         assertFalse(extendedLeafList.getUnknownSchemaNodes().isEmpty());
57         assertEquals(extendedLeafList.getUnknownSchemaNodes().size(), 1);
58
59         assertNotEquals(leafList, extendedLeafList);
60
61         assertTrue(extendedLeafList instanceof DerivableSchemaNode);
62         assertTrue(((DerivableSchemaNode) extendedLeafList).getOriginal().isPresent());
63         assertEquals(leafList, ((DerivableSchemaNode) extendedLeafList).getOriginal().get());
64     }
65
66     @Test
67     public void testEquals() {
68         final String baseLeafListLocalName = "leaf-list1";
69         final QName baseLeafListQName = QName.create(module.getNamespace(), module.getRevision(), baseLeafListLocalName);
70         final SchemaPath baseLeafListPath = SchemaPath.create(true, baseLeafListQName);
71         final LeafListSchemaNodeBuilder baseLeafListBuilder = new LeafListSchemaNodeBuilder(module.getModuleName(),
72             10, baseLeafListQName, baseLeafListPath);
73
74         baseLeafListBuilder.setType(Uint16.getInstance());
75         final LeafListSchemaNode leafList = baseLeafListBuilder.build();
76
77         final String leafListLocalName = "leaf-list2";
78         final QName leafListQName2 = QName.create(module.getNamespace(), module.getRevision(), leafListLocalName);
79         final SchemaPath leafListPath2 = SchemaPath.create(true, leafListQName2);
80         final LeafListSchemaNodeBuilder leafListBuilder2 = new LeafListSchemaNodeBuilder(module.getModuleName(),
81             10, leafListQName2, leafListPath2);
82
83         leafListBuilder2.setType(Uint16.getInstance());
84         final LeafListSchemaNode leafList2 = leafListBuilder2.build();
85
86         assertNotEquals(baseLeafListBuilder, null);
87         assertNotEquals(baseLeafListBuilder, leafListBuilder2);
88
89         assertNotEquals(leafList, null);
90         assertNotEquals(leafList, leafList2);
91
92         final QName containerQName = QName.create(module.getNamespace(), module.getRevision(), "parent-container");
93         final String leafListLocalName3 = "leaf-list2";
94         final QName leafListQName3 = QName.create(module.getNamespace(), module.getRevision(), leafListLocalName3);
95         final SchemaPath leafListPath3 = SchemaPath.create(true, containerQName, leafListQName3);
96         final LeafListSchemaNodeBuilder leafListBuilder3 = new LeafListSchemaNodeBuilder(module.getModuleName(),
97             10, leafListQName3, leafListPath3);
98
99         baseLeafListBuilder.setType(Uint16.getInstance());
100         final LeafListSchemaNode leafList3 = baseLeafListBuilder.build();
101
102         assertNotEquals(leafListBuilder2, leafListBuilder3);
103         assertNotEquals(leafList3, leafList2);
104     }
105
106     @Test
107     public void testLeafListSchemaNodeImplProperties() {
108         final String descString = "my leaf list description";
109         final String leafListLocalName = "base-leaf-list";
110         final QName leafListQName = QName.create(module.getNamespace(), module.getRevision(), leafListLocalName);
111         final SchemaPath leafListPath = SchemaPath.create(true, leafListQName);
112         final LeafListSchemaNodeBuilder leafListBuilder = new LeafListSchemaNodeBuilder(module.getModuleName(),
113             10, leafListQName, leafListPath);
114
115         leafListBuilder.setType(Uint16.getInstance());
116         leafListBuilder.setDescription(descString);
117         final LeafListSchemaNode leafList = leafListBuilder.build();
118
119         assertEquals(leafList.getQName(), leafListQName);
120         assertEquals(leafList.getDescription(), descString);
121         assertEquals(leafList.getStatus(), Status.CURRENT);
122         assertEquals(leafList.getPath(), leafListPath);
123         assertEquals(leafList.getType(), Uint16.getInstance());
124         assertNull(leafList.getReference());
125
126         assertEquals("LeafListSchemaNodeImpl[(urn:opendaylight.rpc:def:test-model?revision=2014-01-06)base-leaf-list]",
127             leafList.toString());
128     }
129 }