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.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 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.Restrictions;
19 import org.opendaylight.mdsal.binding.model.api.type.builder.MethodSignatureBuilder;
20 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
21 import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint;
22 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
23 import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
25 public class GeneratedTOBuilderImplTest {
28 public void testCreateNewInstance() {
29 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test");
30 assertNotNull(genTOBuilder);
34 public void testSetExtendsType() {
35 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test");
36 final CodegenGeneratedTOBuilder extendedTypeBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "ExtendedType");
37 final GeneratedTransferObject extendedType = extendedTypeBuilder.toInstance();
38 genTOBuilder.setExtendsType(extendedType);
39 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
41 assertEquals("ExtendedType", genTO.getSuperType().getName());
45 public void testAddMethod() {
46 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("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());
53 public void testAddEqualsIdentity() {
54 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test");
55 final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
56 genTOBuilder.addEqualsIdentity(propertyBuilder);
58 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
59 assertEquals(1, genTO.getEqualsIdentifiers().size());
60 assertEquals("testProperty", genTO.getEqualsIdentifiers().get(0).getName());
64 public void testAddHashIdentity() {
65 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test");
66 final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
67 genTOBuilder.addHashIdentity(propertyBuilder);
69 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
70 assertEquals(1, genTO.getHashCodeIdentifiers().size());
71 assertEquals("testProperty", genTO.getHashCodeIdentifiers().get(0).getName());
75 public void testAddToStringProperty() {
76 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test");
77 final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
78 genTOBuilder.addToStringProperty(propertyBuilder);
80 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
81 assertEquals(1, genTO.getToStringIdentifiers().size());
82 assertEquals("testProperty", genTO.getToStringIdentifiers().get(0).getName());
86 public void testSetRestrictions() {
87 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test");
88 final Restrictions restrictions = new Restrictions() {
91 public boolean isEmpty() {
96 public Optional<? extends RangeConstraint<?>> getRangeConstraint() {
97 return Optional.empty();
101 public List<PatternConstraint> getPatternConstraints() {
106 public Optional<LengthConstraint> getLengthConstraint() {
107 return Optional.empty();
110 genTOBuilder.setRestrictions(restrictions);
111 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
113 assertNotNull(genTO.getRestrictions());
117 public void testSetSUID() {
118 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test");
119 final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty");
120 genTOBuilder.setSUID(propertyBuilder);
122 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
123 assertEquals("testProperty", genTO.getSUID().getName());
127 public void testToStringMethod() {
128 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test");
129 assertNotNull(genTOBuilder.toString());
133 public void testSetterMethods() {
134 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test");
135 genTOBuilder.setTypedef(true);
136 genTOBuilder.setIsUnion(true);
137 genTOBuilder.setIsUnionBuilder(true);
138 genTOBuilder.setDescription("test description");
139 genTOBuilder.setModuleName("test-module");
140 genTOBuilder.setReference("http://tools.ietf.org/html/rfc6020");
141 genTOBuilder.setSchemaPath(SchemaPath.ROOT.getPathFromRoot());
143 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
145 assertTrue(genTO.isTypedef());
146 assertTrue(genTO.isUnionType());
147 assertTrue(genTO.isUnionTypeBuilder());
148 assertEquals("test description", genTO.getDescription());
149 assertEquals("test-module", genTO.getModuleName());
150 assertEquals("http://tools.ietf.org/html/rfc6020", genTO.getReference());
151 assertEquals(SchemaPath.ROOT.getPathFromRoot(), genTO.getSchemaPath());
155 public void testMethodsOfGeneratedTransferObjectImpl() {
156 final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test");
157 final GeneratedTransferObject genTO = genTOBuilder.toInstance();
159 assertNotNull(genTO.toString());