2 * Copyright (c) 2016 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.yang.types;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertTrue;
14 import java.math.BigDecimal;
16 import org.junit.BeforeClass;
17 import org.junit.Test;
18 import org.opendaylight.mdsal.binding.generator.spi.TypeProvider;
19 import org.opendaylight.mdsal.binding.model.api.Type;
20 import org.opendaylight.mdsal.binding.model.util.BindingGeneratorUtil;
21 import org.opendaylight.yangtools.yang.common.Empty;
22 import org.opendaylight.yangtools.yang.common.Uint16;
23 import org.opendaylight.yangtools.yang.common.Uint32;
24 import org.opendaylight.yangtools.yang.common.Uint64;
25 import org.opendaylight.yangtools.yang.common.Uint8;
26 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
27 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
28 import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition;
29 import org.opendaylight.yangtools.yang.model.api.type.BooleanTypeDefinition;
30 import org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition;
31 import org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition;
32 import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
33 import org.opendaylight.yangtools.yang.model.api.type.Int16TypeDefinition;
34 import org.opendaylight.yangtools.yang.model.api.type.Int32TypeDefinition;
35 import org.opendaylight.yangtools.yang.model.api.type.Int64TypeDefinition;
36 import org.opendaylight.yangtools.yang.model.api.type.Int8TypeDefinition;
37 import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
38 import org.opendaylight.yangtools.yang.model.api.type.Uint16TypeDefinition;
39 import org.opendaylight.yangtools.yang.model.api.type.Uint32TypeDefinition;
40 import org.opendaylight.yangtools.yang.model.api.type.Uint64TypeDefinition;
41 import org.opendaylight.yangtools.yang.model.api.type.Uint8TypeDefinition;
42 import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
43 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
46 * Test class for testing BaseYangTypes class.
48 public class BaseYangTypesTest {
50 private static SchemaContext schemaContext;
52 private static BinaryTypeDefinition binary = null;
53 private static DecimalTypeDefinition decimal64 = null;
54 private static EnumTypeDefinition enumeration = null;
55 private static Int8TypeDefinition int8 = null;
56 private static Int16TypeDefinition int16 = null;
57 private static Int32TypeDefinition int32 = null;
58 private static Int64TypeDefinition int64 = null;
59 private static StringTypeDefinition string = null;
60 private static Uint8TypeDefinition uint8 = null;
61 private static Uint16TypeDefinition uint16 = null;
62 private static Uint32TypeDefinition uint32 = null;
63 private static Uint64TypeDefinition uint64 = null;
64 private static UnionTypeDefinition union = null;
65 private static EmptyTypeDefinition empty = null;
66 private static BooleanTypeDefinition bool = null;
69 public static void setup() {
70 schemaContext = YangParserTestUtils.parseYangResource("/base-yang-types.yang");
71 assertNotNull(schemaContext);
72 initTypeDefinitionsFromSchemaContext();
75 private static void initTypeDefinitionsFromSchemaContext() {
76 Set<TypeDefinition<?>> typedefs = schemaContext.getTypeDefinitions();
77 assertTrue(!typedefs.isEmpty());
79 for (final TypeDefinition<?> typedef : typedefs) {
80 assertNotNull(typedef);
82 final TypeDefinition<?> baseType = typedef.getBaseType();
83 assertNotNull(baseType);
85 if (baseType instanceof BinaryTypeDefinition) {
86 binary = (BinaryTypeDefinition) baseType;
87 } else if (baseType instanceof DecimalTypeDefinition) {
88 decimal64 = (DecimalTypeDefinition) baseType;
89 } else if (baseType instanceof EnumTypeDefinition) {
90 enumeration = (EnumTypeDefinition) baseType;
91 } else if (baseType instanceof Int8TypeDefinition) {
92 int8 = (Int8TypeDefinition) baseType;
93 } else if (baseType instanceof Int16TypeDefinition) {
94 int16 = (Int16TypeDefinition) baseType;
95 } else if (baseType instanceof Int32TypeDefinition) {
96 int32 = (Int32TypeDefinition) baseType;
97 } else if (baseType instanceof Int64TypeDefinition) {
98 int64 = (Int64TypeDefinition) baseType;
99 } else if (baseType instanceof StringTypeDefinition) {
100 string = (StringTypeDefinition) baseType;
101 } else if (baseType instanceof Uint8TypeDefinition) {
102 uint8 = (Uint8TypeDefinition) baseType;
103 } else if (baseType instanceof Uint16TypeDefinition) {
104 uint16 = (Uint16TypeDefinition) baseType;
105 } else if (baseType instanceof Uint32TypeDefinition) {
106 uint32 = (Uint32TypeDefinition) baseType;
107 } else if (baseType instanceof Uint64TypeDefinition) {
108 uint64 = (Uint64TypeDefinition) baseType;
109 } else if (baseType instanceof UnionTypeDefinition) {
110 union = (UnionTypeDefinition) baseType;
111 } else if (baseType instanceof EmptyTypeDefinition) {
112 empty = (EmptyTypeDefinition) baseType;
113 } else if (baseType instanceof BooleanTypeDefinition) {
114 bool = (BooleanTypeDefinition) baseType;
117 assertNotNull(binary);
118 assertNotNull(decimal64);
119 assertNotNull(enumeration);
121 assertNotNull(int16);
122 assertNotNull(int32);
123 assertNotNull(int64);
124 assertNotNull(string);
125 assertNotNull(uint8);
126 assertNotNull(uint16);
127 assertNotNull(uint32);
128 assertNotNull(uint64);
129 assertNotNull(union);
130 assertNotNull(empty);
135 public void javaTypeForSchemaDefinitionTypeTest() {
136 final TypeProvider typeProvider = BaseYangTypes.BASE_YANG_TYPES_PROVIDER;
138 Type javaType = typeProvider.javaTypeForSchemaDefinitionType(binary, binary);
139 assertNotNull(javaType);
140 assertEquals("byte[]", javaType.getFullyQualifiedName());
142 javaType = typeProvider.javaTypeForSchemaDefinitionType(decimal64, decimal64);
143 assertNotNull(javaType);
144 assertEquals(BigDecimal.class.getCanonicalName(), javaType.getFullyQualifiedName());
146 javaType = typeProvider.javaTypeForSchemaDefinitionType(enumeration, enumeration);
147 assertNotNull(javaType);
148 assertEquals(Enum.class.getCanonicalName(), javaType.getFullyQualifiedName());
150 javaType = typeProvider.javaTypeForSchemaDefinitionType(int8, int8);
151 assertNotNull(javaType);
152 assertEquals(Byte.class.getCanonicalName(), javaType.getFullyQualifiedName());
154 javaType = typeProvider.javaTypeForSchemaDefinitionType(int16, int16);
155 assertNotNull(javaType);
156 assertEquals(Short.class.getCanonicalName(), javaType.getFullyQualifiedName());
158 javaType = typeProvider.javaTypeForSchemaDefinitionType(int32, int32);
159 assertNotNull(javaType);
160 assertEquals(Integer.class.getCanonicalName(), javaType.getFullyQualifiedName());
162 javaType = typeProvider.javaTypeForSchemaDefinitionType(int64, int64);
163 assertNotNull(javaType);
164 assertEquals(Long.class.getCanonicalName(), javaType.getFullyQualifiedName());
166 javaType = typeProvider.javaTypeForSchemaDefinitionType(string, string);
167 assertNotNull(javaType);
168 assertEquals(String.class.getCanonicalName(), javaType.getFullyQualifiedName());
170 javaType = typeProvider.javaTypeForSchemaDefinitionType(uint8, uint8);
171 assertNotNull(javaType);
172 assertEquals(Uint8.class.getCanonicalName(), javaType.getFullyQualifiedName());
174 javaType = typeProvider.javaTypeForSchemaDefinitionType(uint16, uint16);
175 assertNotNull(javaType);
176 assertEquals(Uint16.class.getCanonicalName(), javaType.getFullyQualifiedName());
178 javaType = typeProvider.javaTypeForSchemaDefinitionType(uint32, uint32);
179 assertNotNull(javaType);
180 assertEquals(Uint32.class.getCanonicalName(), javaType.getFullyQualifiedName());
182 javaType = typeProvider.javaTypeForSchemaDefinitionType(uint64, uint64);
183 assertNotNull(javaType);
184 assertEquals(Uint64.class.getCanonicalName(), javaType.getFullyQualifiedName());
186 javaType = typeProvider.javaTypeForSchemaDefinitionType(union, union);
187 assertNotNull(javaType);
188 assertEquals("Union", javaType.getFullyQualifiedName());
190 javaType = typeProvider.javaTypeForSchemaDefinitionType(empty, empty);
191 assertNotNull(javaType);
192 assertEquals(Empty.class.getCanonicalName(), javaType.getFullyQualifiedName());
194 javaType = typeProvider.javaTypeForSchemaDefinitionType(bool, bool);
195 assertNotNull(javaType);
196 assertEquals(Boolean.class.getCanonicalName(), javaType.getFullyQualifiedName());
200 public void javaTypeForRestrictedSchemaDefinitionTypeTest() {
201 final TypeProvider typeProvider = BaseYangTypes.BASE_YANG_TYPES_PROVIDER;
203 Type javaType = typeProvider.javaTypeForSchemaDefinitionType(binary, binary,
204 BindingGeneratorUtil.getRestrictions(binary));
205 assertNotNull(javaType);
206 assertEquals("byte[]", javaType.getFullyQualifiedName());
208 javaType = typeProvider.javaTypeForSchemaDefinitionType(decimal64, decimal64,
209 BindingGeneratorUtil.getRestrictions(decimal64));
210 assertNotNull(javaType);
211 assertEquals(BigDecimal.class.getCanonicalName(), javaType.getFullyQualifiedName());
213 javaType = typeProvider.javaTypeForSchemaDefinitionType(enumeration, enumeration,
214 BindingGeneratorUtil.getRestrictions(enumeration));
215 assertNotNull(javaType);
216 assertEquals(Enum.class.getCanonicalName(), javaType.getFullyQualifiedName());
218 javaType = typeProvider.javaTypeForSchemaDefinitionType(int8, int8, BindingGeneratorUtil.getRestrictions(int8));
219 assertNotNull(javaType);
220 assertEquals(Byte.class.getCanonicalName(), javaType.getFullyQualifiedName());
222 javaType = typeProvider.javaTypeForSchemaDefinitionType(int16, int16,
223 BindingGeneratorUtil.getRestrictions(int16));
224 assertNotNull(javaType);
225 assertEquals(Short.class.getCanonicalName(), javaType.getFullyQualifiedName());
227 javaType = typeProvider.javaTypeForSchemaDefinitionType(int32, int32,
228 BindingGeneratorUtil.getRestrictions(int32));
229 assertNotNull(javaType);
230 assertEquals(Integer.class.getCanonicalName(), javaType.getFullyQualifiedName());
232 javaType = typeProvider.javaTypeForSchemaDefinitionType(int64, int64,
233 BindingGeneratorUtil.getRestrictions(int64));
234 assertNotNull(javaType);
235 assertEquals(Long.class.getCanonicalName(), javaType.getFullyQualifiedName());
237 javaType = typeProvider.javaTypeForSchemaDefinitionType(string, string,
238 BindingGeneratorUtil.getRestrictions(string));
239 assertNotNull(javaType);
240 assertEquals(String.class.getCanonicalName(), javaType.getFullyQualifiedName());
242 javaType = typeProvider.javaTypeForSchemaDefinitionType(uint8, uint8,
243 BindingGeneratorUtil.getRestrictions(uint8));
244 assertNotNull(javaType);
245 assertEquals(Uint8.class.getCanonicalName(), javaType.getFullyQualifiedName());
247 javaType = typeProvider.javaTypeForSchemaDefinitionType(uint16, uint16,
248 BindingGeneratorUtil.getRestrictions(uint16));
249 assertNotNull(javaType);
250 assertEquals(Uint16.class.getCanonicalName(), javaType.getFullyQualifiedName());
252 javaType = typeProvider.javaTypeForSchemaDefinitionType(uint32, uint32,
253 BindingGeneratorUtil.getRestrictions(uint32));
254 assertNotNull(javaType);
255 assertEquals(Uint32.class.getCanonicalName(), javaType.getFullyQualifiedName());
257 javaType = typeProvider.javaTypeForSchemaDefinitionType(uint64, uint64,
258 BindingGeneratorUtil.getRestrictions(uint64));
259 assertNotNull(javaType);
260 assertEquals(Uint64.class.getCanonicalName(), javaType.getFullyQualifiedName());
262 javaType = typeProvider.javaTypeForSchemaDefinitionType(union, union,
263 BindingGeneratorUtil.getRestrictions(union));
264 assertNotNull(javaType);
265 assertEquals("Union", javaType.getFullyQualifiedName());
267 javaType = typeProvider.javaTypeForSchemaDefinitionType(empty, empty,
268 BindingGeneratorUtil.getRestrictions(empty));
269 assertNotNull(javaType);
270 assertEquals(Empty.class.getCanonicalName(), javaType.getFullyQualifiedName());
272 javaType = typeProvider.javaTypeForSchemaDefinitionType(bool, bool,
273 BindingGeneratorUtil.getRestrictions(bool));
274 assertNotNull(javaType);
275 assertEquals(Boolean.class.getCanonicalName(), javaType.getFullyQualifiedName());