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.yangtools.binding.generator.util.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 org.junit.Test;
16 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject;
17 import org.opendaylight.yangtools.sal.binding.model.api.Restrictions;
18 import org.opendaylight.yangtools.sal.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;
24 public class GeneratedTOBuilderImplTest {
27 public void testCreateNewInstance() {
28 final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test");
29 assertNotNull(genTOBuilder);
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();
40 assertEquals("ExtendedType", genTO.getSuperType().getName());
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());
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);
57 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
58 assertEquals(1, genTO.getEqualsIdentifiers().size());
59 assertEquals("testProperty", genTO.getEqualsIdentifiers().get(0).getName());
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);
68 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
69 assertEquals(1, genTO.getHashCodeIdentifiers().size());
70 assertEquals("testProperty", genTO.getHashCodeIdentifiers().get(0).getName());
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);
79 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
80 assertEquals(1, genTO.getToStringIdentifiers().size());
81 assertEquals("testProperty", genTO.getToStringIdentifiers().get(0).getName());
85 public void testSetRestrictions() {
86 final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test");
87 final Restrictions restrictions = new Restrictions() {
90 public boolean isEmpty() {
95 public List<RangeConstraint> getRangeConstraints() {
100 public List<PatternConstraint> getPatternConstraints() {
105 public List<LengthConstraint> getLengthConstraints() {
109 genTOBuilder.setRestrictions(restrictions);
110 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
112 assertNotNull(genTO.getRestrictions());
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);
121 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
122 assertEquals("testProperty", genTO.getSUID().getName());
126 public void testToStringMethod() {
127 final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test");
128 assertNotNull(genTOBuilder.toString());
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());
142 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
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());
154 public void testMethodsOfGeneratedTransferObjectImpl() {
155 final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test");
156 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
158 assertNotNull(genTO.toString());