2 * Copyright (c) 2017 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.javav2.generator.util.generated.type.builder;
10 import static org.junit.Assert.assertNotNull;
11 import static org.junit.Assert.assertTrue;
13 import org.junit.Test;
14 import org.opendaylight.mdsal.binding.javav2.generator.context.ModuleContext;
15 import org.opendaylight.mdsal.binding.javav2.model.api.Enumeration;
16 import org.opendaylight.yangtools.yang.model.api.Status;
18 public class EnumerationBuilderImplTest {
21 public void sameEnumTest() {
22 ModuleContext context = new ModuleContext();
23 EnumerationBuilderImpl enumerationBuilderImpl = new EnumerationBuilderImpl("package.same.test", "test", context);
24 Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
25 String formattedString = enumeration.toFormattedString();
27 assertNotNull(formattedString);
28 assertTrue(!formattedString.isEmpty());
29 assertTrue(formattedString.contains("Test"));
31 enumerationBuilderImpl = new EnumerationBuilderImpl("package.same.test", "Test", context);
32 enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
33 formattedString = enumeration.toFormattedString();
35 assertNotNull(formattedString);
36 assertTrue(!formattedString.isEmpty());
37 assertTrue(formattedString.contains("Test1"));
41 public void enumTest() {
42 final EnumerationBuilderImpl enumerationBuilderImpl =
43 new EnumerationBuilderImpl("package.test", "test**", new ModuleContext());
44 enumerationBuilderImpl.addValue("value", 1, "des", "ref", Status.CURRENT);
45 final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
46 final String formattedString = enumeration.toFormattedString();
48 assertNotNull(formattedString);
49 assertTrue(!formattedString.isEmpty());
50 assertTrue(formattedString.contains("public enum TestAsteriskAsterisk {"));
51 assertTrue(formattedString.contains("VALUE"));
55 public void enumUniqueTest() {
56 final EnumerationBuilderImpl enumerationBuilderImpl =
57 new EnumerationBuilderImpl("package.ex.ex.ex.test", "test", new ModuleContext());
58 enumerationBuilderImpl.addValue("foo", 1, "des", "ref", Status.CURRENT);
59 enumerationBuilderImpl.addValue("Foo", 1, "des", "ref", Status.CURRENT);
60 enumerationBuilderImpl.addValue("foo1", 1, "des", "ref", Status.CURRENT);
61 enumerationBuilderImpl.addValue("Foo1", 1, "des", "ref", Status.CURRENT);
62 enumerationBuilderImpl.addValue("FOO1", 1, "des", "ref", Status.CURRENT);
63 enumerationBuilderImpl.addValue("FOO", 1, "des", "ref", Status.CURRENT);
64 enumerationBuilderImpl.addValue("foO1", 1, "des", "ref", Status.CURRENT);
65 enumerationBuilderImpl.addValue("foO2", 1, "des", "ref", Status.CURRENT);
66 enumerationBuilderImpl.addValue("foO2", 1, "des", "ref", Status.CURRENT);
67 enumerationBuilderImpl.addValue("Foo*", 1, "des", "ref", Status.CURRENT);
68 enumerationBuilderImpl.addValue("foo*", 1, "des", "ref", Status.CURRENT);
70 enumerationBuilderImpl.addValue("f__11", 1, "des", "ref", Status.CURRENT);
71 enumerationBuilderImpl.addValue("f__1_1", 1, "des", "ref", Status.CURRENT);
72 enumerationBuilderImpl.addValue("f__1", 1, "des", "ref", Status.CURRENT);
73 enumerationBuilderImpl.addValue("F__1", 1, "des", "ref", Status.CURRENT);
74 enumerationBuilderImpl.addValue("f_1_1", 1, "des", "ref", Status.CURRENT);
75 enumerationBuilderImpl.addValue("F_1_1", 1, "des", "ref", Status.CURRENT);
77 enumerationBuilderImpl.addValue("fo", 1, "des", "ref", Status.CURRENT);
78 enumerationBuilderImpl.addValue("Fo", 1, "des", "ref", Status.CURRENT);
79 enumerationBuilderImpl.addValue("fO", 1, "des", "ref", Status.CURRENT);
80 enumerationBuilderImpl.addValue("FO", 1, "des", "ref", Status.CURRENT);
82 final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
83 final String formattedString = enumeration.toFormattedString();
85 assertNotNull(formattedString);
86 assertTrue(!formattedString.isEmpty());
87 assertTrue(formattedString.contains("FOO"));
88 assertTrue(formattedString.contains("FOO_1"));
89 assertTrue(formattedString.contains("FOO1"));
90 assertTrue(formattedString.contains("FOO1_1"));
91 assertTrue(formattedString.contains("FOO1_2"));
92 assertTrue(formattedString.contains("FOO_2"));
93 assertTrue(formattedString.contains("FOO1_3"));
94 assertTrue(formattedString.contains("FOO2"));
95 assertTrue(formattedString.contains("FOO2_1"));
96 assertTrue(formattedString.contains("FOO_ASTERISK"));
97 assertTrue(formattedString.contains("FOO_ASTERISK_1"));
99 assertTrue(formattedString.contains("F_11"));
100 assertTrue(formattedString.contains("F_1_1"));
101 assertTrue(formattedString.contains("F_1"));
102 assertTrue(formattedString.contains("F_1_2"));
103 assertTrue(formattedString.contains("F_1_1_1"));
104 assertTrue(formattedString.contains("F_1_1_2"));
106 assertTrue(formattedString.contains("FO"));
107 assertTrue(formattedString.contains("FO_1"));
108 assertTrue(formattedString.contains("FO_2"));
109 assertTrue(formattedString.contains("FO_3"));
113 public void asteriskInEnumTest() {
114 final EnumerationBuilderImpl enumerationBuilderImpl =
115 new EnumerationBuilderImpl("package.ex.test", "test**", new ModuleContext());
116 enumerationBuilderImpl.addValue("val**ue", 1, "des", "ref", Status.CURRENT);
117 enumerationBuilderImpl.addValue("val*ue", 1, "des", "ref", Status.CURRENT);
118 enumerationBuilderImpl.addValue("*value*", 1, "des", "ref", Status.CURRENT);
119 enumerationBuilderImpl.addValue("*", 1, "des", "ref", Status.CURRENT);
120 final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
121 final String formattedString = enumeration.toFormattedString();
123 assertNotNull(formattedString);
124 assertTrue(!formattedString.isEmpty());
125 assertTrue(formattedString.contains("public enum TestAsteriskAsterisk {"));
126 assertTrue(formattedString.contains("VAL_ASTERISK_ASTERISK_UE"));
127 assertTrue(formattedString.contains("VAL_ASTERISK_UE"));
128 assertTrue(formattedString.contains("ASTERISK_VALUE_ASTERISK"));
129 assertTrue(formattedString.contains("ASTERISK"));
133 public void reverseSolidusInEnumTest() {
134 final EnumerationBuilderImpl enumerationBuilderImpl =
135 new EnumerationBuilderImpl("package.ex.ex.test", "test\\\\", new ModuleContext());
136 enumerationBuilderImpl.addValue("val\\\\ue", 1, "des", "ref", Status.CURRENT);
137 enumerationBuilderImpl.addValue("val\\ue", 1, "des", "ref", Status.CURRENT);
138 enumerationBuilderImpl.addValue("\\value\\", 1, "des", "ref", Status.CURRENT);
139 enumerationBuilderImpl.addValue("\\", 1, "des", "ref", Status.CURRENT);
140 final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
141 final String formattedString = enumeration.toFormattedString();
142 assertNotNull(formattedString);
143 assertTrue(!formattedString.isEmpty());
144 assertTrue(formattedString.contains("public enum TestReverseSolidusReverseSolidus {"));
145 assertTrue(formattedString.contains("VAL_REVERSE_SOLIDUS_REVERSE_SOLIDUS_UE"));
146 assertTrue(formattedString.contains("VAL_REVERSE_SOLIDUS_UE"));
147 assertTrue(formattedString.contains("REVERSE_SOLIDUS_VALUE_REVERSE_SOLIDUS"));
148 assertTrue(formattedString.contains("REVERSE_SOLIDUS"));