Added getParent() method to DataSchemaNode and DataNodeContainer. Fixed Bugs.
[yangtools.git] / yang / yang-parser-impl / src / test / java / org / opendaylight / yangtools / yang / parser / util / BitImplTest.java
1 package org.opendaylight.yangtools.yang.parser.util;
2
3 import static org.junit.Assert.*;
4
5 import java.net.URI;
6 import java.net.URISyntaxException;
7 import java.util.ArrayList;
8 import java.util.Date;
9 import java.util.List;
10
11 import org.junit.Test;
12 import org.opendaylight.yangtools.yang.common.QName;
13 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
14 import org.opendaylight.yangtools.yang.model.api.Status;
15 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
16 import org.opendaylight.yangtools.yang.parser.builder.impl.ModuleBuilder;
17 import org.opendaylight.yangtools.yang.parser.builder.impl.UnknownSchemaNodeBuilder;
18
19 public class BitImplTest {
20
21     @Test
22     public void test() {
23
24         // hashCode method test
25         URI uriA = null;
26         URI uriA1 = null;
27         URI uriA2 = null;
28         URI uriB = null;
29         URI uriB1 = null;
30         URI uriB2 = null;
31         boolean urisInitiallized = false;
32         try {
33             uriA = new URI("some:uriA");
34             uriA1 = new URI("some:uriA1");
35             uriA2 = new URI("some:uriA2");
36             uriB = new URI("some:uriB");
37             uriB1 = new URI("some:uriB1");
38             uriB2 = new URI("some:uriB2");
39             urisInitiallized = true;
40
41         } catch (URISyntaxException e) {
42             e.printStackTrace();
43             assertTrue("Not all required uri variables were instantiated.", urisInitiallized);
44
45         }
46         QName qnameA = new QName(uriA, new Date(5000000), "some name");
47
48         QName qnameA1 = new QName(uriA1, new Date(6000000), "some nameA1");
49         QName qnameA2 = new QName(uriA2, new Date(7000000), "some nameA2");
50         List<QName> qnamesA = new ArrayList<>();
51         qnamesA.add(qnameA1);
52         qnamesA.add(qnameA2);
53         SchemaPath schemaPathA = new SchemaPath(qnamesA, true);
54
55         QName qnameB = new QName(uriB, new Date(5000000), "some name");
56
57         QName qnameB1 = new QName(uriB1, new Date(6000000), "some nameB1");
58         QName qnameB2 = new QName(uriB2, new Date(7000000), "some nameB2");
59         List<QName> qnamesB = new ArrayList<>();
60         qnamesB.add(qnameB1);
61         qnamesB.add(qnameB2);
62         SchemaPath schemaPathB = new SchemaPath(qnamesB, true);
63
64         BitImpl biB = null;
65         BitImpl biA = new BitImpl(55L, qnameA, schemaPathA, "description", "reference", Status.CURRENT, null);
66
67         assertEquals("biA should equals to itsefl", biA, biA);
68         assertFalse("biA shouldn't equal to null", biA.equals(null));
69         assertFalse("biA shouldn't equal to object of other type", biA.equals(new String("str")));
70
71         // test of equals method
72         // // test qname
73         biA = new BitImpl(55L, null, schemaPathA, "description", "reference", Status.CURRENT, null);
74         biB = new BitImpl(55L, qnameB, schemaPathA, "description", "reference", Status.CURRENT, null);
75         assertFalse("biA shouldn't equal to biB", biA.equals(biB));
76
77         biA = new BitImpl(55L, qnameB, schemaPathA, "description", "reference", Status.CURRENT, null);
78         biB = new BitImpl(55L, qnameB, schemaPathA, "description", "reference", Status.CURRENT, null);
79         assertEquals("biA should equal to biB", biA, biB);
80
81         biA = new BitImpl(55L, qnameA, schemaPathA, "description", "reference", Status.CURRENT, null);
82         biB = new BitImpl(55L, qnameB, schemaPathA, "description", "reference", Status.CURRENT, null);
83         assertFalse("biA shouldn't equal to biB", biA.equals(biB));
84
85         // // test schemaPath
86         biA = new BitImpl(55L, qnameA, null, "description", "reference", Status.CURRENT, null);
87         biB = new BitImpl(55L, qnameA, schemaPathB, "description", "reference", Status.CURRENT, null);
88         assertFalse("biA shouldn't equal to biB", biA.equals(biB));
89
90         biA = new BitImpl(55L, qnameA, schemaPathB, "description", "reference", Status.CURRENT, null);
91         biB = new BitImpl(55L, qnameA, schemaPathB, "description", "reference", Status.CURRENT, null);
92         assertEquals("biA should equal to biB", biA, biB);
93
94         biA = new BitImpl(55L, qnameA, schemaPathA, "description", "reference", Status.CURRENT, null);
95         biB = new BitImpl(55L, qnameA, schemaPathB, "description", "reference", Status.CURRENT, null);
96         assertFalse("biA shouldn't equal to biB", biA.equals(biB));
97
98         biA = new BitImpl(55L, qnameA, schemaPathA, "description", "reference", Status.CURRENT, null);
99         biB = new BitImpl(55L, qnameA, schemaPathA, "description", "reference", Status.CURRENT, null);
100         assertEquals("biA should equal to biB", biA, biB);
101
102         // test of hashCode method
103         biA = new BitImpl(null, null, null, "description", "reference", Status.CURRENT, null);
104         assertEquals("Incorrect hash code for biA.", 923522, biA.hashCode());
105
106         List<UnknownSchemaNode> unknownNodes = new ArrayList<>();
107         UnknownSchemaNodeBuilder usnb = new UnknownSchemaNodeBuilder("module", 3, qnameB);
108         ModuleBuilder parent = org.mockito.Mockito.mock(ModuleBuilder.class);
109         usnb.setParent(parent);
110
111         unknownNodes.add(usnb.build(null));
112
113         biA = new BitImpl(55L, qnameA, schemaPathA, "description", "reference", Status.CURRENT, unknownNodes);
114
115         // test of getter methods
116         assertEquals("Incorrect value for qname.", qnameA, biA.getQName());
117         assertEquals("Incorrect value for schema path.", schemaPathA, biA.getPath());
118         assertEquals("Incorrect value for description.", "description", biA.getDescription());
119         assertEquals("Incorrect value for reference.", "reference", biA.getReference());
120         assertEquals("Incorrect value for status.", Status.CURRENT, biA.getStatus());
121         assertEquals("Incorrect value for unknown nodes.", unknownNodes, biA.getUnknownSchemaNodes());
122
123         // test of toString method
124         assertEquals("toString method doesn't return correct value", "Bit[name=some name, position=55]", biA.toString());
125
126     }
127 }