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
diff --git a/binding2/mdsal-binding2-generator-util/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/EnumerationBuilderImplTest.java b/binding2/mdsal-binding2-generator-util/src/test/java/org/opendaylight/mdsal/binding/javav2/generator/util/generated/type/builder/EnumerationBuilderImplTest.java
new file mode 100644 (file)
index 0000000..06dee71
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ * Copyright (c) 2017 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.mdsal.binding.javav2.generator.util.generated.type.builder;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+import org.opendaylight.mdsal.binding.javav2.model.api.Enumeration;
+import org.opendaylight.yangtools.yang.model.api.Status;
+
+public class EnumerationBuilderImplTest {
+
+    @Test
+    public void enumTest() {
+        final EnumerationBuilderImpl enumerationBuilderImpl =
+                new EnumerationBuilderImpl("package.test", "test**");
+        enumerationBuilderImpl.addValue("value", 1, "des", "ref", Status.CURRENT);
+        final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
+        final String formattedString = enumeration.toFormattedString();
+
+        assertNotNull(formattedString);
+        assertTrue(!formattedString.isEmpty());
+        assertTrue(formattedString.contains("public enum TestAsteriskAsterisk {"));
+        assertTrue(formattedString.contains("VALUE"));
+    }
+
+    @Test
+    public void enumUniqueTest() {
+        final EnumerationBuilderImpl enumerationBuilderImpl = new EnumerationBuilderImpl("package.test", "test");
+        enumerationBuilderImpl.addValue("foo", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("Foo", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("foo1", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("Foo1", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("FOO1", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("FOO", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("foO1", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("foO2", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("foO2", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("Foo*", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("foo*", 1, "des", "ref", Status.CURRENT);
+
+        enumerationBuilderImpl.addValue("f__11", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("f__1_1", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("f__1", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("F__1", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("f_1_1", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("F_1_1", 1, "des", "ref", Status.CURRENT);
+
+        enumerationBuilderImpl.addValue("fo", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("Fo", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("fO", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("FO", 1, "des", "ref", Status.CURRENT);
+
+        final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
+        final String formattedString = enumeration.toFormattedString();
+
+        assertNotNull(formattedString);
+        assertTrue(!formattedString.isEmpty());
+        assertTrue(formattedString.contains("FOO"));
+        assertTrue(formattedString.contains("FOO_1"));
+        assertTrue(formattedString.contains("FOO1"));
+        assertTrue(formattedString.contains("FOO1_1"));
+        assertTrue(formattedString.contains("FOO1_2"));
+        assertTrue(formattedString.contains("FOO_2"));
+        assertTrue(formattedString.contains("FOO1_3"));
+        assertTrue(formattedString.contains("FOO2"));
+        assertTrue(formattedString.contains("FOO2_1"));
+        assertTrue(formattedString.contains("FOO_ASTERISK"));
+        assertTrue(formattedString.contains("FOO_ASTERISK_1"));
+
+        assertTrue(formattedString.contains("F_11"));
+        assertTrue(formattedString.contains("F_1_1"));
+        assertTrue(formattedString.contains("F_1"));
+        assertTrue(formattedString.contains("F_1_2"));
+        assertTrue(formattedString.contains("F_1_1_1"));
+        assertTrue(formattedString.contains("F_1_1_2"));
+
+        assertTrue(formattedString.contains("FO"));
+        assertTrue(formattedString.contains("FO_1"));
+        assertTrue(formattedString.contains("FO_2"));
+        assertTrue(formattedString.contains("FO_3"));
+    }
+
+    @Test
+    public void asteriskInEnumTest() {
+        final EnumerationBuilderImpl enumerationBuilderImpl =
+                new EnumerationBuilderImpl("package.test", "test**");
+        enumerationBuilderImpl.addValue("val**ue", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("val*ue", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("*value*", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("*", 1, "des", "ref", Status.CURRENT);
+        final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
+        final String formattedString = enumeration.toFormattedString();
+
+        assertNotNull(formattedString);
+        assertTrue(!formattedString.isEmpty());
+        assertTrue(formattedString.contains("public enum TestAsteriskAsterisk {"));
+        assertTrue(formattedString.contains("VAL_ASTERISK_ASTERISK_UE"));
+        assertTrue(formattedString.contains("VAL_ASTERISK_UE"));
+        assertTrue(formattedString.contains("ASTERISK_VALUE_ASTERISK"));
+        assertTrue(formattedString.contains("ASTERISK"));
+    }
+
+    @Test
+    public void reverseSolidusInEnumTest() {
+        final EnumerationBuilderImpl enumerationBuilderImpl =
+                new EnumerationBuilderImpl("package.test", "test\\\\");
+        enumerationBuilderImpl.addValue("val\\\\ue", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("val\\ue", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("\\value\\", 1, "des", "ref", Status.CURRENT);
+        enumerationBuilderImpl.addValue("\\", 1, "des", "ref", Status.CURRENT);
+        final Enumeration enumeration = enumerationBuilderImpl.toInstance(enumerationBuilderImpl);
+        final String formattedString = enumeration.toFormattedString();
+        assertNotNull(formattedString);
+        assertTrue(!formattedString.isEmpty());
+        assertTrue(formattedString.contains("public enum TestReverseSolidusReverseSolidus {"));
+        assertTrue(formattedString.contains("VAL_REVERSE_SOLIDUS_REVERSE_SOLIDUS_UE"));
+        assertTrue(formattedString.contains("VAL_REVERSE_SOLIDUS_UE"));
+        assertTrue(formattedString.contains("REVERSE_SOLIDUS_VALUE_REVERSE_SOLIDUS"));
+        assertTrue(formattedString.contains("REVERSE_SOLIDUS"));
+    }
+}