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 / NonJavaCharsConverterTest.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;
9
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 import static org.junit.Assert.assertTrue;
13
14 import org.junit.Test;
15
16 public class NonJavaCharsConverterTest {
17
18     @Test
19     public void acceptableCharsEnumTest() throws Exception {
20         assertTest("Acceptable", "Acceptable", JavaIdentifier.ENUM);
21     }
22
23     /**
24      * Is the same test for class and interface identifiers
25      */
26     @Test
27     public void nonAcceptableCharsEnumTest() throws Exception {
28         assertTest("acceptable", "Acceptable", JavaIdentifier.ENUM);
29         assertTest("acc*", "AccAsterisk", JavaIdentifier.ENUM);
30         assertTest("Acc*", "AccAsterisk", JavaIdentifier.ENUM);
31         assertTest("Acc*acc", "AccAsteriskAcc", JavaIdentifier.ENUM);
32         assertTest("*acc", "AsteriskAcc", JavaIdentifier.ENUM);
33         assertTest("*Acc", "AsteriskAcc", JavaIdentifier.ENUM);
34         assertTest("*", "Asterisk", JavaIdentifier.ENUM);
35         assertTest("\\acc", "ReverseSolidusAcc", JavaIdentifier.ENUM);
36         assertTest("\\Acc", "ReverseSolidusAcc", JavaIdentifier.ENUM);
37         assertTest("\\", "ReverseSolidus", JavaIdentifier.ENUM);
38         assertTest("/acc", "SolidusAcc", JavaIdentifier.ENUM);
39         assertTest("/Acc", "SolidusAcc", JavaIdentifier.ENUM);
40         assertTest("/", "Solidus", JavaIdentifier.ENUM);
41         assertTest("1acc", "DigitOneAcc", JavaIdentifier.ENUM);
42         assertTest("1Acc", "DigitOneAcc", JavaIdentifier.ENUM);
43         assertTest("acc1", "Acc1", JavaIdentifier.ENUM);
44         assertTest("Acc1", "Acc1", JavaIdentifier.ENUM);
45         assertTest("1", "DigitOne", JavaIdentifier.ENUM);
46         assertTest("%", "PercentSign", JavaIdentifier.ENUM);
47     }
48
49     @Test
50     public void acceptableCharsEnumValueTest() throws Exception {
51         assertTest("ACCEPTABLE", "ACCEPTABLE", JavaIdentifier.ENUM_VALUE);
52     }
53
54     @Test
55     public void nonAcceptableCharsEnumValueTest() throws Exception {
56         assertTest("acceptable", "ACCEPTABLE", JavaIdentifier.ENUM_VALUE);
57         assertTest("Acceptable", "ACCEPTABLE", JavaIdentifier.ENUM_VALUE);
58         assertTest("Acce_ptable", "ACCE_PTABLE", JavaIdentifier.ENUM_VALUE);
59         assertTest("acc*", "ACC_ASTERISK", JavaIdentifier.ENUM_VALUE);
60         assertTest("Acc*", "ACC_ASTERISK", JavaIdentifier.ENUM_VALUE);
61         assertTest("*acc", "ASTERISK_ACC", JavaIdentifier.ENUM_VALUE);
62         assertTest("*Acc", "ASTERISK_ACC", JavaIdentifier.ENUM_VALUE);
63         assertTest("*", "ASTERISK", JavaIdentifier.ENUM_VALUE);
64         assertTest("\\acc", "REVERSE_SOLIDUS_ACC", JavaIdentifier.ENUM_VALUE);
65         assertTest("\\Acc", "REVERSE_SOLIDUS_ACC", JavaIdentifier.ENUM_VALUE);
66         assertTest("\\", "REVERSE_SOLIDUS", JavaIdentifier.ENUM_VALUE);
67         assertTest("/acc", "SOLIDUS_ACC", JavaIdentifier.ENUM_VALUE);
68         assertTest("/Acc", "SOLIDUS_ACC", JavaIdentifier.ENUM_VALUE);
69         assertTest("/", "SOLIDUS", JavaIdentifier.ENUM_VALUE);
70         assertTest("1acc", "DIGIT_ONE_ACC", JavaIdentifier.ENUM_VALUE);
71         assertTest("1Acc", "DIGIT_ONE_ACC", JavaIdentifier.ENUM_VALUE);
72         assertTest("acc1", "ACC1", JavaIdentifier.ENUM_VALUE);
73         assertTest("Acc1", "ACC1", JavaIdentifier.ENUM_VALUE);
74         assertTest("1", "DIGIT_ONE", JavaIdentifier.ENUM_VALUE);
75         assertTest("%", "PERCENT_SIGN", JavaIdentifier.ENUM_VALUE);
76     }
77
78     @Test
79     public void acceptableCharsMethodTest() throws Exception {
80         assertTest("acceptable", "acceptable", JavaIdentifier.METHOD);
81     }
82
83     /**
84      * Is the same test for variables identifiers
85      */
86     @Test
87     public void nonAcceptableCharsMethodTest() throws Exception {
88         assertTest("acc*", "accAsterisk", JavaIdentifier.METHOD);
89         assertTest("Acc*", "accAsterisk", JavaIdentifier.METHOD);
90         assertTest("*acc", "asteriskAcc", JavaIdentifier.METHOD);
91         assertTest("*Acc", "asteriskAcc", JavaIdentifier.METHOD);
92         assertTest("*", "asterisk", JavaIdentifier.METHOD);
93         assertTest("\\acc", "reverseSolidusAcc", JavaIdentifier.METHOD);
94         assertTest("\\Acc", "reverseSolidusAcc", JavaIdentifier.METHOD);
95         assertTest("\\", "reverseSolidus", JavaIdentifier.METHOD);
96         assertTest("/acc", "solidusAcc", JavaIdentifier.METHOD);
97         assertTest("/Acc", "solidusAcc", JavaIdentifier.METHOD);
98         assertTest("/", "solidus", JavaIdentifier.METHOD);
99         assertTest("1acc", "digitOneAcc", JavaIdentifier.METHOD);
100         assertTest("1Acc", "digitOneAcc", JavaIdentifier.METHOD);
101         assertTest("acc1", "acc1", JavaIdentifier.METHOD);
102         assertTest("Acc1", "acc1", JavaIdentifier.METHOD);
103         assertTest("1", "digitOne", JavaIdentifier.METHOD);
104         assertTest("%", "percentSign", JavaIdentifier.METHOD);
105     }
106
107     private void assertTest(final String testedIdentifier, final String acceptable,
108             final JavaIdentifier javaTypeOfIdentifier) {
109         final String convertedIdentifier =
110                 NonJavaCharsConverter.convertIdentifier(testedIdentifier, javaTypeOfIdentifier);
111         assertNotNull(convertedIdentifier);
112         assertTrue(!convertedIdentifier.isEmpty());
113         assertEquals(acceptable, convertedIdentifier);
114     }
115 }