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