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
7 package org.opendaylight.yangtools.yang.parser.builder.impl;
9 import static org.junit.Assert.*;
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;
21 * Test suite for increasing of test coverage of LeafListSchemaNodeBuilder implementation.
23 * @see org.opendaylight.yangtools.yang.parser.builder.impl.LeafListSchemaNodeBuilder
25 * @author Lukas Sedlak <lsedlak@cisco.com>
27 public class LeafListSchemaNodeBuilderTest extends AbstractBuilderTest {
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);
37 final UnknownSchemaNodeBuilder unknownNodeBuilder = provideUnknownNodeBuilder();
39 baseLeafListBuilder.addUnknownNodeBuilder(unknownNodeBuilder);
40 baseLeafListBuilder.setType(Uint16.getInstance());
41 final LeafListSchemaNode leafList = baseLeafListBuilder.build();
43 assertNotNull(leafList);
44 assertFalse(leafList.getUnknownSchemaNodes().isEmpty());
45 assertEquals(leafList.getUnknownSchemaNodes().size(), 1);
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);
53 final LeafListSchemaNode extendedLeafList = leafListBuilder.build();
55 assertNotNull(extendedLeafList);
56 assertFalse(extendedLeafList.getUnknownSchemaNodes().isEmpty());
57 assertEquals(extendedLeafList.getUnknownSchemaNodes().size(), 1);
59 assertNotEquals(leafList, extendedLeafList);
61 assertTrue(extendedLeafList instanceof DerivableSchemaNode);
62 assertTrue(((DerivableSchemaNode) extendedLeafList).getOriginal().isPresent());
63 assertEquals(leafList, ((DerivableSchemaNode) extendedLeafList).getOriginal().get());
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);
74 baseLeafListBuilder.setType(Uint16.getInstance());
75 final LeafListSchemaNode leafList = baseLeafListBuilder.build();
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);
83 leafListBuilder2.setType(Uint16.getInstance());
84 final LeafListSchemaNode leafList2 = leafListBuilder2.build();
86 assertNotEquals(baseLeafListBuilder, null);
87 assertNotEquals(baseLeafListBuilder, leafListBuilder2);
89 assertNotEquals(leafList, null);
90 assertNotEquals(leafList, leafList2);
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);
99 baseLeafListBuilder.setType(Uint16.getInstance());
100 final LeafListSchemaNode leafList3 = baseLeafListBuilder.build();
102 assertNotEquals(leafListBuilder2, leafListBuilder3);
103 assertNotEquals(leafList3, leafList2);
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);
115 leafListBuilder.setType(Uint16.getInstance());
116 leafListBuilder.setDescription(descString);
117 final LeafListSchemaNode leafList = leafListBuilder.build();
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());
126 assertEquals("LeafListSchemaNodeImpl[(urn:opendaylight.rpc:def:test-model?revision=2014-01-06)base-leaf-list]",
127 leafList.toString());