Bug 2332 - Binding Java API Generator -> doesn't handle
[mdsal.git] / binding2 / mdsal-binding2-generator-util / src / test / java / org / opendaylight / mdsal / binding / javav2 / generator / util / generated / type / builder / EnumerationBuilderImplTest.java
1 /*
2  * Copyright (c) 2017 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.mdsal.binding.javav2.generator.util.generated.type.builder;
9
10 import static org.junit.Assert.assertNotNull;
11 import static org.junit.Assert.assertTrue;
12 import org.junit.Test;
13 import org.opendaylight.mdsal.binding.javav2.model.api.Enumeration;
14 import org.opendaylight.yangtools.yang.model.api.Status;
15
16 public class EnumerationBuilderImplTest {
17
18     @Test
19     public void enumTest() {
20         final EnumerationBuilderImpl enumerationBuilderImpl =
21                 new EnumerationBuilderImpl("package.test", "test**");
22         enumerationBuilderImpl.addValue("value", 1, "des", "ref", Status.CURRENT);
23         final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
24         final String formattedString = enumeration.toFormattedString();
25
26         assertNotNull(formattedString);
27         assertTrue(!formattedString.isEmpty());
28         assertTrue(formattedString.contains("public enum TestAsteriskAsterisk {"));
29         assertTrue(formattedString.contains("VALUE"));
30     }
31
32     @Test
33     public void enumUniqueTest() {
34         final EnumerationBuilderImpl enumerationBuilderImpl = new EnumerationBuilderImpl("package.test", "test");
35         enumerationBuilderImpl.addValue("foo", 1, "des", "ref", Status.CURRENT);
36         enumerationBuilderImpl.addValue("Foo", 1, "des", "ref", Status.CURRENT);
37         enumerationBuilderImpl.addValue("foo1", 1, "des", "ref", Status.CURRENT);
38         enumerationBuilderImpl.addValue("Foo1", 1, "des", "ref", Status.CURRENT);
39         enumerationBuilderImpl.addValue("FOO1", 1, "des", "ref", Status.CURRENT);
40         enumerationBuilderImpl.addValue("FOO", 1, "des", "ref", Status.CURRENT);
41         enumerationBuilderImpl.addValue("foO1", 1, "des", "ref", Status.CURRENT);
42         enumerationBuilderImpl.addValue("foO2", 1, "des", "ref", Status.CURRENT);
43         enumerationBuilderImpl.addValue("foO2", 1, "des", "ref", Status.CURRENT);
44         enumerationBuilderImpl.addValue("Foo*", 1, "des", "ref", Status.CURRENT);
45         enumerationBuilderImpl.addValue("foo*", 1, "des", "ref", Status.CURRENT);
46
47         enumerationBuilderImpl.addValue("f__11", 1, "des", "ref", Status.CURRENT);
48         enumerationBuilderImpl.addValue("f__1_1", 1, "des", "ref", Status.CURRENT);
49         enumerationBuilderImpl.addValue("f__1", 1, "des", "ref", Status.CURRENT);
50         enumerationBuilderImpl.addValue("F__1", 1, "des", "ref", Status.CURRENT);
51         enumerationBuilderImpl.addValue("f_1_1", 1, "des", "ref", Status.CURRENT);
52         enumerationBuilderImpl.addValue("F_1_1", 1, "des", "ref", Status.CURRENT);
53
54         enumerationBuilderImpl.addValue("fo", 1, "des", "ref", Status.CURRENT);
55         enumerationBuilderImpl.addValue("Fo", 1, "des", "ref", Status.CURRENT);
56         enumerationBuilderImpl.addValue("fO", 1, "des", "ref", Status.CURRENT);
57         enumerationBuilderImpl.addValue("FO", 1, "des", "ref", Status.CURRENT);
58
59         final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
60         final String formattedString = enumeration.toFormattedString();
61
62         assertNotNull(formattedString);
63         assertTrue(!formattedString.isEmpty());
64         assertTrue(formattedString.contains("FOO"));
65         assertTrue(formattedString.contains("FOO_1"));
66         assertTrue(formattedString.contains("FOO1"));
67         assertTrue(formattedString.contains("FOO1_1"));
68         assertTrue(formattedString.contains("FOO1_2"));
69         assertTrue(formattedString.contains("FOO_2"));
70         assertTrue(formattedString.contains("FOO1_3"));
71         assertTrue(formattedString.contains("FOO2"));
72         assertTrue(formattedString.contains("FOO2_1"));
73         assertTrue(formattedString.contains("FOO_ASTERISK"));
74         assertTrue(formattedString.contains("FOO_ASTERISK_1"));
75
76         assertTrue(formattedString.contains("F_11"));
77         assertTrue(formattedString.contains("F_1_1"));
78         assertTrue(formattedString.contains("F_1"));
79         assertTrue(formattedString.contains("F_1_2"));
80         assertTrue(formattedString.contains("F_1_1_1"));
81         assertTrue(formattedString.contains("F_1_1_2"));
82
83         assertTrue(formattedString.contains("FO"));
84         assertTrue(formattedString.contains("FO_1"));
85         assertTrue(formattedString.contains("FO_2"));
86         assertTrue(formattedString.contains("FO_3"));
87     }
88
89     @Test
90     public void asteriskInEnumTest() {
91         final EnumerationBuilderImpl enumerationBuilderImpl =
92                 new EnumerationBuilderImpl("package.test", "test**");
93         enumerationBuilderImpl.addValue("val**ue", 1, "des", "ref", Status.CURRENT);
94         enumerationBuilderImpl.addValue("val*ue", 1, "des", "ref", Status.CURRENT);
95         enumerationBuilderImpl.addValue("*value*", 1, "des", "ref", Status.CURRENT);
96         enumerationBuilderImpl.addValue("*", 1, "des", "ref", Status.CURRENT);
97         final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
98         final String formattedString = enumeration.toFormattedString();
99
100         assertNotNull(formattedString);
101         assertTrue(!formattedString.isEmpty());
102         assertTrue(formattedString.contains("public enum TestAsteriskAsterisk {"));
103         assertTrue(formattedString.contains("VAL_ASTERISK_ASTERISK_UE"));
104         assertTrue(formattedString.contains("VAL_ASTERISK_UE"));
105         assertTrue(formattedString.contains("ASTERISK_VALUE_ASTERISK"));
106         assertTrue(formattedString.contains("ASTERISK"));
107     }
108
109     @Test
110     public void reverseSolidusInEnumTest() {
111         final EnumerationBuilderImpl enumerationBuilderImpl =
112                 new EnumerationBuilderImpl("package.test", "test\\\\");
113         enumerationBuilderImpl.addValue("val\\\\ue", 1, "des", "ref", Status.CURRENT);
114         enumerationBuilderImpl.addValue("val\\ue", 1, "des", "ref", Status.CURRENT);
115         enumerationBuilderImpl.addValue("\\value\\", 1, "des", "ref", Status.CURRENT);
116         enumerationBuilderImpl.addValue("\\", 1, "des", "ref", Status.CURRENT);
117         final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
118         final String formattedString = enumeration.toFormattedString();
119         assertNotNull(formattedString);
120         assertTrue(!formattedString.isEmpty());
121         assertTrue(formattedString.contains("public enum TestReverseSolidusReverseSolidus {"));
122         assertTrue(formattedString.contains("VAL_REVERSE_SOLIDUS_REVERSE_SOLIDUS_UE"));
123         assertTrue(formattedString.contains("VAL_REVERSE_SOLIDUS_UE"));
124         assertTrue(formattedString.contains("REVERSE_SOLIDUS_VALUE_REVERSE_SOLIDUS"));
125         assertTrue(formattedString.contains("REVERSE_SOLIDUS"));
126     }
127 }