6fe366e8f4932892158bcbacdf1e0e998c6310b4
[mdsal.git] / binding / mdsal-binding-model-ri / src / test / java / org / opendaylight / mdsal / binding / model / ri / generated / type / builder / GeneratedTOBuilderImplTest.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.mdsal.binding.model.ri.generated.type.builder;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertTrue;
13
14 import org.junit.Test;
15 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
16 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
17 import org.opendaylight.mdsal.binding.model.api.Restrictions;
18 import org.opendaylight.mdsal.binding.model.api.type.builder.MethodSignatureBuilder;
19 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
20
21 public class GeneratedTOBuilderImplTest {
22
23     @Test
24     public void testCreateNewInstance() {
25         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
26             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
27         assertNotNull(genTOBuilder);
28     }
29
30     @Test
31     public void testSetExtendsType() {
32         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
33             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
34         final CodegenGeneratedTOBuilder extendedTypeBuilder = new CodegenGeneratedTOBuilder(
35             JavaTypeName.create("org.opendaylight.yangtools.test", "ExtendedType"));
36         final GeneratedTransferObject extendedType = extendedTypeBuilder.build();
37         genTOBuilder.setExtendsType(extendedType);
38         final GeneratedTransferObject genTO = genTOBuilder.build();
39
40         assertEquals("ExtendedType", genTO.getSuperType().getName());
41     }
42
43     @Test
44     public void testAddMethod() {
45         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
46             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
47         final MethodSignatureBuilder methodSignatureBuilder = genTOBuilder.addMethod("testMethod");
48         assertEquals(methodSignatureBuilder, genTOBuilder.getMethodDefinitions().get(0));
49         assertEquals("testMethod", genTOBuilder.getMethodDefinitions().get(0).getName());
50     }
51
52     @Test
53     public void testAddEqualsIdentity() {
54         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
55             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
56         final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
57         genTOBuilder.addEqualsIdentity(propertyBuilder);
58
59         final GeneratedTransferObject genTO = genTOBuilder.build();
60         assertEquals(1, genTO.getEqualsIdentifiers().size());
61         assertEquals("testProperty", genTO.getEqualsIdentifiers().get(0).getName());
62     }
63
64     @Test
65     public void testAddHashIdentity() {
66         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
67             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
68         final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
69         genTOBuilder.addHashIdentity(propertyBuilder);
70
71         final GeneratedTransferObject genTO = genTOBuilder.build();
72         assertEquals(1, genTO.getHashCodeIdentifiers().size());
73         assertEquals("testProperty", genTO.getHashCodeIdentifiers().get(0).getName());
74     }
75
76     @Test
77     public void testAddToStringProperty() {
78         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
79             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
80         final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
81         genTOBuilder.addToStringProperty(propertyBuilder);
82
83         final GeneratedTransferObject genTO = genTOBuilder.build();
84         assertEquals(1, genTO.getToStringIdentifiers().size());
85         assertEquals("testProperty", genTO.getToStringIdentifiers().get(0).getName());
86     }
87
88     @Test
89     public void testSetRestrictions() {
90         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
91             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
92         genTOBuilder.setRestrictions(Restrictions.empty());
93         final GeneratedTransferObject genTO = genTOBuilder.build();
94
95         assertNotNull(genTO.getRestrictions());
96     }
97
98     @Test
99     public void testSetSUID() {
100         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
101             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
102         final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
103         genTOBuilder.setSUID(propertyBuilder);
104
105         final GeneratedTransferObject genTO = genTOBuilder.build();
106         assertEquals("testProperty", genTO.getSUID().getName());
107     }
108
109     @Test
110     public void testToStringMethod() {
111         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
112             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
113         assertNotNull(genTOBuilder.toString());
114     }
115
116     @Test
117     public void testSetterMethods() {
118         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
119             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
120         genTOBuilder.setTypedef(true);
121         genTOBuilder.setIsUnion(true);
122         genTOBuilder.setDescription("test description");
123         genTOBuilder.setModuleName("test-module");
124         genTOBuilder.setReference("http://tools.ietf.org/html/rfc6020");
125         genTOBuilder.setSchemaPath(SchemaPath.ROOT);
126
127         final GeneratedTransferObject genTO = genTOBuilder.build();
128
129         assertTrue(genTO.isTypedef());
130         assertTrue(genTO.isUnionType());
131         assertEquals("test description", genTO.getDescription());
132         assertEquals("test-module", genTO.getModuleName());
133         assertEquals("http://tools.ietf.org/html/rfc6020", genTO.getReference());
134         assertEquals(SchemaPath.ROOT.getPathFromRoot(), genTO.getSchemaPath());
135     }
136
137     @Test
138     public void testMethodsOfGeneratedTransferObjectImpl() {
139         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
140             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
141         final GeneratedTransferObject genTO = genTOBuilder.build();
142
143         assertNotNull(genTO.toString());
144     }
145 }