2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.mdsal.binding.model.ri.generated.type.builder;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertTrue;
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;
26 public class GeneratedTOBuilderImplTest {
29 public void testCreateNewInstance() {
30 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
31 JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
32 assertNotNull(genTOBuilder);
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();
45 assertEquals("ExtendedType", genTO.getSuperType().getName());
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());
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);
64 final GeneratedTransferObject genTO = genTOBuilder.build();
65 assertEquals(1, genTO.getEqualsIdentifiers().size());
66 assertEquals("testProperty", genTO.getEqualsIdentifiers().get(0).getName());
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);
76 final GeneratedTransferObject genTO = genTOBuilder.build();
77 assertEquals(1, genTO.getHashCodeIdentifiers().size());
78 assertEquals("testProperty", genTO.getHashCodeIdentifiers().get(0).getName());
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);
88 final GeneratedTransferObject genTO = genTOBuilder.build();
89 assertEquals(1, genTO.getToStringIdentifiers().size());
90 assertEquals("testProperty", genTO.getToStringIdentifiers().get(0).getName());
94 public void testSetRestrictions() {
95 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
96 JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
97 final Restrictions restrictions = new Restrictions() {
100 public boolean isEmpty() {
105 public Optional<? extends RangeConstraint<?>> getRangeConstraint() {
106 return Optional.empty();
110 public List<PatternConstraint> getPatternConstraints() {
115 public Optional<LengthConstraint> getLengthConstraint() {
116 return Optional.empty();
119 genTOBuilder.setRestrictions(restrictions);
120 final GeneratedTransferObject genTO = genTOBuilder.build();
122 assertNotNull(genTO.getRestrictions());
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);
132 final GeneratedTransferObject genTO = genTOBuilder.build();
133 assertEquals("testProperty", genTO.getSUID().getName());
137 public void testToStringMethod() {
138 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
139 JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
140 assertNotNull(genTOBuilder.toString());
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.setIsUnionBuilder(true);
150 genTOBuilder.setDescription("test description");
151 genTOBuilder.setModuleName("test-module");
152 genTOBuilder.setReference("http://tools.ietf.org/html/rfc6020");
153 genTOBuilder.setSchemaPath(SchemaPath.ROOT);
155 final GeneratedTransferObject genTO = genTOBuilder.build();
157 assertTrue(genTO.isTypedef());
158 assertTrue(genTO.isUnionType());
159 assertTrue(genTO.isUnionTypeBuilder());
160 assertEquals("test description", genTO.getDescription());
161 assertEquals("test-module", genTO.getModuleName());
162 assertEquals("http://tools.ietf.org/html/rfc6020", genTO.getReference());
163 assertEquals(SchemaPath.ROOT.getPathFromRoot(), genTO.getSchemaPath());
167 public void testMethodsOfGeneratedTransferObjectImpl() {
168 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder(
169 JavaTypeName.create("org.opendaylight.yangtools.test", "Test"));
170 final GeneratedTransferObject genTO = genTOBuilder.build();
172 assertNotNull(genTO.toString());