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;
10 import static org.junit.Assert.assertEquals;
11 import static org.junit.Assert.assertNotNull;
12 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.util.BindingMapping;
17 public class JavaIdentifierNormalizerTest {
20 public void specialPathsTest() {
21 ModuleContext context = new ModuleContext();
22 // QName - reserved & non reserved
23 String normalizeIdentifier =
24 JavaIdentifierNormalizer.normalizeClassIdentifier("org.opendaylight.yangtools.yang.common",
26 assertEquals("QName", normalizeIdentifier);
29 JavaIdentifierNormalizer.normalizeClassIdentifier("org.opendaylight.yangtools.yang.common",
31 assertEquals("QName", normalizeIdentifier);
33 normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("qname.non.reserved", "QName", context);
34 assertEquals("Qname", normalizeIdentifier);
36 normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("qname.non.reserved", "QName", context);
37 assertEquals("Qname1", normalizeIdentifier);
39 // Augmentable - reserved & non reserved
40 normalizeIdentifier = JavaIdentifierNormalizer
41 .normalizeClassIdentifier("org.opendaylight.mdsal.binding.javav2.spec.structural", "Augmentable", context);
42 assertEquals("Augmentable", normalizeIdentifier);
44 normalizeIdentifier = JavaIdentifierNormalizer
45 .normalizeClassIdentifier("org.opendaylight.mdsal.binding.javav2.spec.structural", "Augmentable", context);
46 assertEquals("Augmentable", normalizeIdentifier);
48 normalizeIdentifier = JavaIdentifierNormalizer
49 .normalizeClassIdentifier("augmentable.non.reserved", "Augmentable", context);
50 assertEquals("Augmentable", normalizeIdentifier);
53 JavaIdentifierNormalizer.normalizeClassIdentifier("augmentable.non.reserved", "Augmentable", context);
54 assertEquals("Augmentable1", normalizeIdentifier);
56 // List - reserved & non reserved
57 normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("java.util", "List", context);
58 assertEquals("List", normalizeIdentifier);
60 normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("java.util", "List", context);
61 assertEquals("List", normalizeIdentifier);
63 normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("list.non.reserved", "List", context);
64 assertEquals("List", normalizeIdentifier);
66 normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("list.non.reserved", "List", context);
67 assertEquals("List1", normalizeIdentifier);
69 // String - reserved & non reserved
70 normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("java.lang", "String", context);
71 assertEquals("String", normalizeIdentifier);
73 normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("java.lang", "String", context);
74 assertEquals("String", normalizeIdentifier);
76 normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("string.non.reserved", "String", context);
77 assertEquals("String", normalizeIdentifier);
79 normalizeIdentifier = JavaIdentifierNormalizer.normalizeClassIdentifier("string.non.reserved", "String", context);
80 assertEquals("String1", normalizeIdentifier);
84 * This test tests normalizing of enum and interface identifiers too.
87 public void sameClassNamesSamePackageTest() {
88 ModuleContext context = new ModuleContext();
89 String normalizeIdentifier1 = JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.same.package",
91 String normalizeIdentifier2 = JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.same.package",
93 final String normalizeIdentifier3 =
94 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.same.package", "foo", context);
95 assertEquals(normalizeIdentifier1, "Foo");
96 assertEquals(normalizeIdentifier2, "Foo1");
97 assertEquals(normalizeIdentifier3, "Foo2");
99 normalizeIdentifier1 = JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.same.package", "*",
101 normalizeIdentifier2 = JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.same.package",
102 "asterisk", context);
103 assertEquals(normalizeIdentifier1, "Asterisk");
104 assertEquals(normalizeIdentifier2, "Asterisk1");
108 * This test tests normalizing of enum and interface identifiers too.
111 public void sameClassNamesOtherPackageTest() {
112 ModuleContext context = new ModuleContext();
113 String normalizeIdentifier1 =
114 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.other.package", "Foo", context);
115 String normalizeIdentifier2 =
116 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.other.package.next", "fOo", context);
117 final String normalizeIdentifier3 =
118 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.other.package.next.next", "foo", context);
119 assertEquals(normalizeIdentifier1, "Foo");
120 assertEquals(normalizeIdentifier2, "Foo");
121 assertEquals(normalizeIdentifier3, "Foo");
123 normalizeIdentifier1 = JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.other.package", "*",
125 normalizeIdentifier2 =
126 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.other.package.next", "asterisk", context);
127 assertEquals(normalizeIdentifier1, "Asterisk");
128 assertEquals(normalizeIdentifier2, "Asterisk");
132 * This test tests normalizing of enum and interface identifiers too.
135 public void sameClassNamesSamePackageReservedWordsTest() {
136 ModuleContext context = new ModuleContext();
137 final String normalizeIdentifier1 =
138 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.keywords.same.package", "int", context);
139 final String normalizeIdentifier2 =
140 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.keywords.same.package", "InT", context);
141 final String normalizeIdentifier3 =
142 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.keywords.same.package", "inT", context);
143 assertEquals(normalizeIdentifier1, "IntReservedKeyword");
144 assertEquals(normalizeIdentifier2, "IntReservedKeyword1");
145 assertEquals(normalizeIdentifier3, "IntReservedKeyword2");
149 * This test tests normalizing of enum and interface identifiers too.
152 public void sameClassNamesOtherPackageReservedWordsTest() {
153 ModuleContext context = new ModuleContext();
154 final String normalizeIdentifier1 =
155 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.keywords.other.package", "int", context);
156 final String normalizeIdentifier2 =
157 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.keywords.other.package.next", "InT", context);
158 final String normalizeIdentifier3 =
159 JavaIdentifierNormalizer.normalizeClassIdentifier("org.example.keywords.other.package.next.next",
161 assertEquals(normalizeIdentifier1, "IntReservedKeyword");
162 assertEquals(normalizeIdentifier2, "IntReservedKeyword");
163 assertEquals(normalizeIdentifier3, "IntReservedKeyword");
167 * This test tests converting of reserved keywords like class and interface identifiers too.
170 public void identifierReservedKeyWordsEnumConverterTest() throws Exception {
171 for (final String reservedKeyword : BindingMapping.JAVA_RESERVED_WORDS) {
172 testIdentifierReservedKeywordEnum(reservedKeyword);
174 for (final String reservedKeyword : BindingMapping.WINDOWS_RESERVED_WORDS) {
175 testIdentifierReservedKeywordEnum(reservedKeyword);
177 testIdentifierReservedKeywordEnum("iNt");
178 testIdentifierReservedKeywordEnum("cOn");
181 private void testIdentifierReservedKeywordEnum(final String reservedKeyword) {
182 final StringBuilder expected =
183 new StringBuilder(reservedKeyword.substring(0, 1).toUpperCase())
184 .append(reservedKeyword.substring(1).toLowerCase())
185 .append("ReservedKeyword");
186 assertTest(reservedKeyword, expected.toString(), JavaIdentifier.ENUM);
190 * This test tests converting of reserved keywords like constant identifier too.
193 public void identifierReservedKeyWordsEnumValueConverterTest() throws Exception {
194 for (final String reservedKeyword : BindingMapping.JAVA_RESERVED_WORDS) {
195 testIdentifierReservedKeywordEnumValue(reservedKeyword);
197 for (final String reservedKeyword : BindingMapping.WINDOWS_RESERVED_WORDS) {
198 testIdentifierReservedKeywordEnumValue(reservedKeyword);
200 testIdentifierReservedKeywordEnumValue("iNt");
201 testIdentifierReservedKeywordEnumValue("cOn");
204 private void testIdentifierReservedKeywordEnumValue(final String reservedKeyword) {
205 final StringBuilder expected = new StringBuilder(reservedKeyword.toUpperCase()).append("_RESERVED_KEYWORD");
206 assertTest(reservedKeyword, expected.toString(), JavaIdentifier.ENUM_VALUE);
210 * This test tests converting of reserved keywords like variable identifier too.
213 public void identifierReservedKeyWordsMethodConverterTest() throws Exception {
214 for (final String reservedKeyword : BindingMapping.JAVA_RESERVED_WORDS) {
215 testIdentifierReservedKeywordMethod(reservedKeyword);
217 for (final String reservedKeyword : BindingMapping.WINDOWS_RESERVED_WORDS) {
218 testIdentifierReservedKeywordMethod(reservedKeyword);
220 testIdentifierReservedKeywordMethod("iNt");
221 testIdentifierReservedKeywordMethod("cOn");
224 private void testIdentifierReservedKeywordMethod(final String reservedKeyword) {
225 final StringBuilder expected = new StringBuilder(reservedKeyword.toLowerCase()).append("ReservedKeyword");
226 assertTest(reservedKeyword, expected.toString(), JavaIdentifier.METHOD);
230 public void acceptableCharsEnumTest() throws Exception {
231 assertTest("Acceptable", "Acceptable", JavaIdentifier.ENUM);
235 * This test tests converting of class and interface identifiers too.
238 public void nonAcceptableCharsEnumTest() throws Exception {
239 assertTest("acceptable", "Acceptable", JavaIdentifier.ENUM);
240 assertTest("acc*", "AccAsterisk", JavaIdentifier.ENUM);
241 assertTest("Acc*", "AccAsterisk", JavaIdentifier.ENUM);
242 assertTest("Acc*acc", "AccAsteriskAcc", JavaIdentifier.ENUM);
243 assertTest("*acc", "AsteriskAcc", JavaIdentifier.ENUM);
244 assertTest("*Acc", "AsteriskAcc", JavaIdentifier.ENUM);
245 assertTest("*", "Asterisk", JavaIdentifier.ENUM);
246 assertTest("\\acc", "ReverseSolidusAcc", JavaIdentifier.ENUM);
247 assertTest("\\Acc", "ReverseSolidusAcc", JavaIdentifier.ENUM);
248 assertTest("\\", "ReverseSolidus", JavaIdentifier.ENUM);
249 assertTest("/acc", "SolidusAcc", JavaIdentifier.ENUM);
250 assertTest("/Acc", "SolidusAcc", JavaIdentifier.ENUM);
251 assertTest("/", "Solidus", JavaIdentifier.ENUM);
252 assertTest("1acc", "DigitOneAcc", JavaIdentifier.ENUM);
253 assertTest("1Acc", "DigitOneAcc", JavaIdentifier.ENUM);
254 assertTest("acc1", "Acc1", JavaIdentifier.ENUM);
255 assertTest("Acc1", "Acc1", JavaIdentifier.ENUM);
256 assertTest("1", "DigitOne", JavaIdentifier.ENUM);
257 assertTest("%", "PercentSign", JavaIdentifier.ENUM);
258 assertTest("foo-bar", "FooBar", JavaIdentifier.ENUM);
259 assertTest("foo--bar", "FooHyphenMinusHyphenMinusBar", JavaIdentifier.ENUM);
260 assertTest("-foo", "HyphenMinusFoo", JavaIdentifier.ENUM);
261 assertTest("--foo", "HyphenMinusHyphenMinusFoo", JavaIdentifier.ENUM);
262 assertTest("foo-", "FooHyphenMinus", JavaIdentifier.ENUM);
263 assertTest("foo--", "FooHyphenMinusHyphenMinus", JavaIdentifier.ENUM);
264 assertTest("-foo-", "HyphenMinusFooHyphenMinus", JavaIdentifier.ENUM);
265 assertTest("-foo-bar-", "HyphenMinusFooBarHyphenMinus", JavaIdentifier.ENUM);
266 assertTest("-foo--bar-", "HyphenMinusFooHyphenMinusHyphenMinusBarHyphenMinus", JavaIdentifier.ENUM);
267 assertTest("foo.", "FooFullStop", JavaIdentifier.ENUM);
268 assertTest(".foo", "FullStopFoo", JavaIdentifier.ENUM);
269 assertTest("bar.foo", "BarFullStopFoo", JavaIdentifier.ENUM);
273 public void acceptableCharsEnumValueTest() throws Exception {
274 assertTest("ACCEPTABLE", "ACCEPTABLE", JavaIdentifier.ENUM_VALUE);
278 * This test tests converting of constant identifier too.
281 public void nonAcceptableCharsEnumValueTest() throws Exception {
282 assertTest("acceptable", "ACCEPTABLE", JavaIdentifier.ENUM_VALUE);
283 assertTest("Acceptable", "ACCEPTABLE", JavaIdentifier.ENUM_VALUE);
284 assertTest("Acce_ptable", "ACCE_PTABLE", JavaIdentifier.ENUM_VALUE);
285 assertTest("acc*", "ACC_ASTERISK", JavaIdentifier.ENUM_VALUE);
286 assertTest("Acc*", "ACC_ASTERISK", JavaIdentifier.ENUM_VALUE);
287 assertTest("*acc", "ASTERISK_ACC", JavaIdentifier.ENUM_VALUE);
288 assertTest("*Acc", "ASTERISK_ACC", JavaIdentifier.ENUM_VALUE);
289 assertTest("*", "ASTERISK", JavaIdentifier.ENUM_VALUE);
290 assertTest("\\acc", "REVERSE_SOLIDUS_ACC", JavaIdentifier.ENUM_VALUE);
291 assertTest("\\Acc", "REVERSE_SOLIDUS_ACC", JavaIdentifier.ENUM_VALUE);
292 assertTest("\\", "REVERSE_SOLIDUS", JavaIdentifier.ENUM_VALUE);
293 assertTest("/acc", "SOLIDUS_ACC", JavaIdentifier.ENUM_VALUE);
294 assertTest("/Acc", "SOLIDUS_ACC", JavaIdentifier.ENUM_VALUE);
295 assertTest("/", "SOLIDUS", JavaIdentifier.ENUM_VALUE);
296 assertTest("1acc", "DIGIT_ONE_ACC", JavaIdentifier.ENUM_VALUE);
297 assertTest("1Acc", "DIGIT_ONE_ACC", JavaIdentifier.ENUM_VALUE);
298 assertTest("acc1", "ACC1", JavaIdentifier.ENUM_VALUE);
299 assertTest("Acc1", "ACC1", JavaIdentifier.ENUM_VALUE);
300 assertTest("1", "DIGIT_ONE", JavaIdentifier.ENUM_VALUE);
301 assertTest("%", "PERCENT_SIGN", JavaIdentifier.ENUM_VALUE);
302 assertTest("foo-bar", "FOO_BAR", JavaIdentifier.ENUM_VALUE);
303 assertTest("foo--bar", "FOO_HYPHEN_MINUS_HYPHEN_MINUS_BAR", JavaIdentifier.ENUM_VALUE);
304 assertTest("-foo", "HYPHEN_MINUS_FOO", JavaIdentifier.ENUM_VALUE);
305 assertTest("--foo", "HYPHEN_MINUS_HYPHEN_MINUS_FOO", JavaIdentifier.ENUM_VALUE);
306 assertTest("foo-", "FOO_HYPHEN_MINUS", JavaIdentifier.ENUM_VALUE);
307 assertTest("foo--", "FOO_HYPHEN_MINUS_HYPHEN_MINUS", JavaIdentifier.ENUM_VALUE);
308 assertTest("-foo-", "HYPHEN_MINUS_FOO_HYPHEN_MINUS", JavaIdentifier.ENUM_VALUE);
309 assertTest("-foo-bar-", "HYPHEN_MINUS_FOO_BAR_HYPHEN_MINUS", JavaIdentifier.ENUM_VALUE);
310 assertTest("-foo--bar-", "HYPHEN_MINUS_FOO_HYPHEN_MINUS_HYPHEN_MINUS_BAR_HYPHEN_MINUS",
311 JavaIdentifier.ENUM_VALUE);
312 assertTest("foo.", "FOO_FULL_STOP", JavaIdentifier.ENUM_VALUE);
313 assertTest(".foo", "FULL_STOP_FOO", JavaIdentifier.ENUM_VALUE);
314 assertTest("bar.foo", "BAR_FULL_STOP_FOO", JavaIdentifier.ENUM_VALUE);
318 public void acceptableCharsMethodTest() throws Exception {
319 assertTest("acceptable", "acceptable", JavaIdentifier.METHOD);
323 * This test tests converting of variable identifier too.
326 public void nonAcceptableCharsMethodTest() throws Exception {
327 assertTest("acc*", "accAsterisk", JavaIdentifier.METHOD);
328 assertTest("Acc*", "accAsterisk", JavaIdentifier.METHOD);
329 assertTest("*acc", "asteriskAcc", JavaIdentifier.METHOD);
330 assertTest("*Acc", "asteriskAcc", JavaIdentifier.METHOD);
331 assertTest("*", "asterisk", JavaIdentifier.METHOD);
332 assertTest("\\acc", "reverseSolidusAcc", JavaIdentifier.METHOD);
333 assertTest("\\Acc", "reverseSolidusAcc", JavaIdentifier.METHOD);
334 assertTest("\\", "reverseSolidus", JavaIdentifier.METHOD);
335 assertTest("/acc", "solidusAcc", JavaIdentifier.METHOD);
336 assertTest("/Acc", "solidusAcc", JavaIdentifier.METHOD);
337 assertTest("/", "solidus", JavaIdentifier.METHOD);
338 assertTest("1acc", "digitOneAcc", JavaIdentifier.METHOD);
339 assertTest("1Acc", "digitOneAcc", JavaIdentifier.METHOD);
340 assertTest("acc1", "acc1", JavaIdentifier.METHOD);
341 assertTest("Acc1", "acc1", JavaIdentifier.METHOD);
342 assertTest("1", "digitOne", JavaIdentifier.METHOD);
343 assertTest("%", "percentSign", JavaIdentifier.METHOD);
344 assertTest("foo-bar", "fooBar", JavaIdentifier.METHOD);
345 assertTest("foo--bar", "fooHyphenMinusHyphenMinusBar", JavaIdentifier.METHOD);
346 assertTest("-foo", "hyphenMinusFoo", JavaIdentifier.METHOD);
347 assertTest("--foo", "hyphenMinusHyphenMinusFoo", JavaIdentifier.METHOD);
348 assertTest("foo-", "fooHyphenMinus", JavaIdentifier.METHOD);
349 assertTest("foo--", "fooHyphenMinusHyphenMinus", JavaIdentifier.METHOD);
350 assertTest("-foo-", "hyphenMinusFooHyphenMinus", JavaIdentifier.METHOD);
351 assertTest("-foo-bar-", "hyphenMinusFooBarHyphenMinus", JavaIdentifier.METHOD);
352 assertTest("-foo--bar-", "hyphenMinusFooHyphenMinusHyphenMinusBarHyphenMinus", JavaIdentifier.METHOD);
353 assertTest("foo.", "fooFullStop", JavaIdentifier.METHOD);
354 assertTest(".foo", "fullStopFoo", JavaIdentifier.METHOD);
355 assertTest("foo.bar", "fooFullStopBar", JavaIdentifier.METHOD);
360 public void packageReservedKeyWordsTest() {
361 for (final String reservedKeyword : BindingMapping.JAVA_RESERVED_WORDS) {
362 testPackageReservedKeyword(reservedKeyword);
364 for (final String reservedKeyword : BindingMapping.WINDOWS_RESERVED_WORDS) {
365 testPackageReservedKeyword(reservedKeyword);
369 private void testPackageReservedKeyword(final String reservedKeyword) {
370 final String packageNameNormalizer = JavaIdentifierNormalizer.normalizePartialPackageName(reservedKeyword);
371 final StringBuilder expected = new StringBuilder(reservedKeyword).append('_');
372 assertEquals(expected.toString().toLowerCase(), packageNameNormalizer);
376 public void digitAtStartTest() {
377 for (int i = 0; i < 10; i++) {
378 final String str_i = String.valueOf(i);
379 final String packageNameNormalizer = JavaIdentifierNormalizer.normalizePartialPackageName(str_i);
380 final String expected = Character.getName(str_i.charAt(0)).replaceAll(" ", "").toLowerCase();
381 assertEquals(expected.toString(), packageNameNormalizer);
386 public void normalizePackageNameDashTest() {
387 dashTest("foo-bar", "foo_bar");
388 dashTest("foo--bar", "foo__bar");
389 dashTest("-foo", "_foo");
390 dashTest("--foo", "__foo");
391 dashTest("foo-", "foo_");
392 dashTest("foo--", "foo__");
393 dashTest("-foo-bar", "_foo_bar");
394 dashTest("foo-bar-", "foo_bar_");
395 dashTest("-foo-bar-", "_foo_bar_");
396 dashTest("-foo--bar-", "_foo__bar_");
399 private void dashTest(final String tested, final String expected) {
400 final String actual = JavaIdentifierNormalizer.normalizePartialPackageName(tested);
401 assertEquals(expected, actual);
405 public void normalizePackageNameTest() {
406 normalizePackageNameTest("*foo", "asteriskfoo");
407 normalizePackageNameTest("/foo", "solidusfoo");
408 normalizePackageNameTest("\\foo", "reversesolidusfoo");
409 normalizePackageNameTest(":foo", "colonfoo");
411 normalizePackageNameTest("f*oo", "fasteriskoo");
412 normalizePackageNameTest("f/oo", "fsolidusoo");
413 normalizePackageNameTest("f\\oo", "freversesolidusoo");
414 normalizePackageNameTest("f:oo", "fcolonoo");
416 normalizePackageNameTest("foo*", "fooasterisk");
417 normalizePackageNameTest("foo/", "foosolidus");
418 normalizePackageNameTest("foo\\", "fooreversesolidus");
419 normalizePackageNameTest("foo:", "foocolon");
421 normalizePackageNameTest("_foo_", "_foo_");
422 normalizePackageNameTest("f_oo", "f_oo");
425 private void normalizePackageNameTest(final String tested, final Object expected) {
426 final String packageNameNormalizer = JavaIdentifierNormalizer.normalizePartialPackageName(tested);
427 assertEquals(expected, packageNameNormalizer);
430 private void assertTest(final String testedIdentifier, final String acceptable,
431 final JavaIdentifier javaTypeOfIdentifier) {
432 final String convertedIdentifier =
433 JavaIdentifierNormalizer.normalizeSpecificIdentifier(testedIdentifier, javaTypeOfIdentifier);
434 assertNotNull(convertedIdentifier);
435 assertTrue(!convertedIdentifier.isEmpty());
436 assertEquals(acceptable, convertedIdentifier);
440 public void realPackageNameExampleTest() {
441 String tested = "org.opendaylight.example.test.rev000000.data.foo";
442 String expected = "org.opendaylight.example.test.rev000000.data.foo";
443 testRealPackageNameExample(tested, expected);
445 tested = "org.opendaylight.example.test.rev000000.data.foo*";
446 expected = "org.opendaylight.example.test.rev000000.data.fooasterisk";
447 testRealPackageNameExample(tested, expected);
449 tested = "org.opendaylight.example.test.rev000000.data.foo*bar";
450 expected = "org.opendaylight.example.test.rev000000.data.fooasteriskbar";
451 testRealPackageNameExample(tested, expected);
453 tested = "org.opendaylight.example.test.rev000000.data.foo.bar";
454 expected = "org.opendaylight.example.test.rev000000.data.foo.bar";
455 testRealPackageNameExample(tested, expected);
457 tested = "org.opendaylight.example.test.rev000000.data.foo-bar";
458 expected = "org.opendaylight.example.test.rev000000.data.foo_bar";
459 testRealPackageNameExample(tested, expected);
461 tested = "org.opendaylight.example.test.rev000000.data.foo_";
462 expected = "org.opendaylight.example.test.rev000000.data.foo_";
463 testRealPackageNameExample(tested, expected);
465 tested = "org.opendaylight.example.test.rev000000.data._foo";
466 expected = "org.opendaylight.example.test.rev000000.data._foo";
467 testRealPackageNameExample(tested, expected);
469 tested = "org.opendaylight.example.test.rev000000.data.foo*.*";
470 expected = "org.opendaylight.example.test.rev000000.data.fooasterisk.asterisk";
471 testRealPackageNameExample(tested, expected);
473 tested = "org.opendaylight.example.test.rev000000.data.int";
474 expected = "org.opendaylight.example.test.rev000000.data.int_";
475 testRealPackageNameExample(tested, expected);
477 tested = "org.opendaylight.example.test.rev000000.data.iNt";
478 expected = "org.opendaylight.example.test.rev000000.data.int_";
479 testRealPackageNameExample(tested, expected);
481 tested = "org.opendaylight.example.test.rev000000.data.con";
482 expected = "org.opendaylight.example.test.rev000000.data.con_";
483 testRealPackageNameExample(tested, expected);
485 tested = "org.opendaylight.example.test.rev000000.data.CON";
486 expected = "org.opendaylight.example.test.rev000000.data.con_";
487 testRealPackageNameExample(tested, expected);
490 private void testRealPackageNameExample(final String tested, final String expected) {
491 final String actual = JavaIdentifierNormalizer.normalizeFullPackageName(tested);
492 assertEquals(expected, actual);