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