Do not generate union builders
[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 java.util.List;
15 import java.util.Optional;
16 import org.junit.Test;
17 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
18 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
19 import org.opendaylight.mdsal.binding.model.api.Restrictions;
20 import org.opendaylight.mdsal.binding.model.api.type.builder.MethodSignatureBuilder;
21 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
22 import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint;
23 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
24 import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
25
26 public class GeneratedTOBuilderImplTest {
27
28     @Test
29     public void testCreateNewInstance() {
30         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
31             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
32         assertNotNull(genTOBuilder);
33     }
34
35     @Test
36     public void testSetExtendsType() {
37         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
38             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
39         final CodegenGeneratedTOBuilder extendedTypeBuilder = new CodegenGeneratedTOBuilder(
40             JavaTypeName.create("org.opendaylight.yangtools.test", "ExtendedType"));
41         final GeneratedTransferObject extendedType = extendedTypeBuilder.build();
42         genTOBuilder.setExtendsType(extendedType);
43         final GeneratedTransferObject genTO = genTOBuilder.build();
44
45         assertEquals("ExtendedType", genTO.getSuperType().getName());
46     }
47
48     @Test
49     public void testAddMethod() {
50         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
51             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
52         final MethodSignatureBuilder methodSignatureBuilder = genTOBuilder.addMethod("testMethod");
53         assertEquals(methodSignatureBuilder, genTOBuilder.getMethodDefinitions().get(0));
54         assertEquals("testMethod", genTOBuilder.getMethodDefinitions().get(0).getName());
55     }
56
57     @Test
58     public void testAddEqualsIdentity() {
59         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
60             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
61         final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
62         genTOBuilder.addEqualsIdentity(propertyBuilder);
63
64         final GeneratedTransferObject genTO = genTOBuilder.build();
65         assertEquals(1, genTO.getEqualsIdentifiers().size());
66         assertEquals("testProperty", genTO.getEqualsIdentifiers().get(0).getName());
67     }
68
69     @Test
70     public void testAddHashIdentity() {
71         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
72             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
73         final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
74         genTOBuilder.addHashIdentity(propertyBuilder);
75
76         final GeneratedTransferObject genTO = genTOBuilder.build();
77         assertEquals(1, genTO.getHashCodeIdentifiers().size());
78         assertEquals("testProperty", genTO.getHashCodeIdentifiers().get(0).getName());
79     }
80
81     @Test
82     public void testAddToStringProperty() {
83         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
84             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
85         final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
86         genTOBuilder.addToStringProperty(propertyBuilder);
87
88         final GeneratedTransferObject genTO = genTOBuilder.build();
89         assertEquals(1, genTO.getToStringIdentifiers().size());
90         assertEquals("testProperty", genTO.getToStringIdentifiers().get(0).getName());
91     }
92
93     @Test
94     public void testSetRestrictions() {
95         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
96             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
97         final Restrictions restrictions = new Restrictions() {
98
99             @Override
100             public boolean isEmpty() {
101                 return false;
102             }
103
104             @Override
105             public Optional<? extends RangeConstraint<?>> getRangeConstraint() {
106                 return Optional.empty();
107             }
108
109             @Override
110             public List<PatternConstraint> getPatternConstraints() {
111                 return null;
112             }
113
114             @Override
115             public Optional<LengthConstraint> getLengthConstraint() {
116                 return Optional.empty();
117             }
118         };
119         genTOBuilder.setRestrictions(restrictions);
120         final GeneratedTransferObject genTO = genTOBuilder.build();
121
122         assertNotNull(genTO.getRestrictions());
123     }
124
125     @Test
126     public void testSetSUID() {
127         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
128             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
129         final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
130         genTOBuilder.setSUID(propertyBuilder);
131
132         final GeneratedTransferObject genTO = genTOBuilder.build();
133         assertEquals("testProperty", genTO.getSUID().getName());
134     }
135
136     @Test
137     public void testToStringMethod() {
138         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
139             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
140         assertNotNull(genTOBuilder.toString());
141     }
142
143     @Test
144     public void testSetterMethods() {
145         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
146             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
147         genTOBuilder.setTypedef(true);
148         genTOBuilder.setIsUnion(true);
149         genTOBuilder.setDescription("test description");
150         genTOBuilder.setModuleName("test-module");
151         genTOBuilder.setReference("http://tools.ietf.org/html/rfc6020");
152         genTOBuilder.setSchemaPath(SchemaPath.ROOT);
153
154         final GeneratedTransferObject genTO = genTOBuilder.build();
155
156         assertTrue(genTO.isTypedef());
157         assertTrue(genTO.isUnionType());
158         assertEquals("test description", genTO.getDescription());
159         assertEquals("test-module", genTO.getModuleName());
160         assertEquals("http://tools.ietf.org/html/rfc6020", genTO.getReference());
161         assertEquals(SchemaPath.ROOT.getPathFromRoot(), genTO.getSchemaPath());
162     }
163
164     @Test
165     public void testMethodsOfGeneratedTransferObjectImpl() {
166         final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
167             JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
168         final GeneratedTransferObject genTO = genTOBuilder.build();
169
170         assertNotNull(genTO.toString());
171     }
172 }