public class BindingGeneratorImplTest {
+ @Test
+ public void genTypesTypeDefTest() throws Exception {
+ final BindingGeneratorImpl bg = new BindingGeneratorImpl(false);
+ final SchemaContext schemaContext = YangParserTestUtils.parseYangResource("/generator/test-typedef.yang");
+ final List<Type> generateTypes = bg.generateTypes(schemaContext);
+ assertNotNull(generateTypes);
+ for (final Type genType : generateTypes) {
+ if (genType.getName().equals("MyInnerCont") && genType.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.rev170206.data.asteriskmy_cont")) {
+ final GeneratedType gt = (GeneratedType) genType;
+ for (final MethodSignature methodSignature : gt.getMethodDefinitions()) {
+ if (methodSignature.getName().equals("getMyLeaf2")) {
+ assertEquals(methodSignature.getReturnType().getName(), "MyType");
+ }
+ }
+ }
+ }
+ }
+
@Test
public void generatedTypesEnumTest() throws Exception {
final BindingGenerator bg = new BindingGeneratorImpl(false);
- final SchemaContext context = YangParserTestUtils.parseYangSource("/generator/apple-test.yang");
+ final SchemaContext context = YangParserTestUtils.parseYangResource("/generator/apple-test.yang");
final List<Type> generateTypes = bg.generateTypes(context);
assertNotNull(generateTypes);
assertTrue(!generateTypes.isEmpty());
}
@Test
- public void generatedTypesTest() throws Exception {
+ public void generatedTypesUsesEnumLeafTest() {
final BindingGenerator bg = new BindingGeneratorImpl(false);
- final SchemaContext context = YangParserTestUtils.parseYangSource("/generator/test-list.yang");
+ final SchemaContext context = YangParserTestUtils.parseYangResources(BindingGeneratorImplTest.class,
+ "/uses-statement/test-uses-leaf-innertype-base.yang", "/uses-statement/test-uses-leaf-innertype.yang");
+ final List<Type> generateTypes = bg.generateTypes(context);
+ assertNotNull(generateTypes);
+ assertTrue(!generateTypes.isEmpty());
+ for (final Type type : generateTypes) {
+ if (type.getName().equals("MyCont") && type.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype.base.rev170809.data")) {
+ final GeneratedType gt = (GeneratedType) type;
+ final MethodSignature methodSignature = gt.getMethodDefinitions().get(0);
+ assertEquals("ErrorType", methodSignature.getReturnType().getName());
+ }
+
+ if (type.getName().equals("MyCont") && type.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype.rev170809.data")) {
+ final GeneratedType gt = (GeneratedType) type;
+ final MethodSignature methodSignature = gt.getMethodDefinitions().get(0);
+ assertEquals("ErrorType", methodSignature.getReturnType().getName());
+ }
+ }
+ }
+
+ @Test
+ public void generatedTypesUsesBitsLeafTest() {
+ final BindingGenerator bg = new BindingGeneratorImpl(false);
+ final SchemaContext context = YangParserTestUtils.parseYangResources(BindingGeneratorImplTest.class,
+ "/uses-statement/test-uses-leaf-innertype2-base.yang", "/uses-statement/test-uses-leaf-innertype2.yang");
+ final List<Type> generateTypes = bg.generateTypes(context);
+ assertNotNull(generateTypes);
+ assertTrue(!generateTypes.isEmpty());
+ for (final Type type : generateTypes) {
+ if (type.getName().equals("MyCont") && type.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.base.rev170809.data")) {
+ final GeneratedType gt = (GeneratedType) type;
+ for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
+ if (methodSignature.getName().equals("getLeafBits")) {
+ assertEquals("LeafBits", methodSignature.getReturnType().getName());
+ }
+ }
+
+ }
+
+ if (type.getName().equals("MyCont") && type.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.rev170809.data")) {
+ final GeneratedType gt = (GeneratedType) type;
+ for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
+ if (methodSignature.getName().equals("getLeafBits")) {
+ assertEquals("LeafBits", methodSignature.getReturnType().getName());
+ }
+ }
+ }
+ }
+ }
+
+ @Test
+ public void generatedTypesUsesUnionLeafTest() {
+ final BindingGenerator bg = new BindingGeneratorImpl(false);
+ final SchemaContext context = YangParserTestUtils.parseYangResources(BindingGeneratorImplTest.class,
+ "/uses-statement/test-uses-leaf-innertype2-base.yang", "/uses-statement/test-uses-leaf-innertype2.yang");
+ final List<Type> generateTypes = bg.generateTypes(context);
+ assertNotNull(generateTypes);
+ assertTrue(!generateTypes.isEmpty());
+ for (final Type type : generateTypes) {
+ if (type.getName().equals("MyCont") && type.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.base.rev170809.data")) {
+ final GeneratedType gt = (GeneratedType) type;
+ for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
+ if (methodSignature.getName().equals("getLeafUnion")) {
+ assertEquals("LeafUnion", methodSignature.getReturnType().getName());
+ }
+ }
+
+ }
+
+ if (type.getName().equals("MyCont") && type.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.rev170809.data")) {
+ final GeneratedType gt = (GeneratedType) type;
+ for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
+ if (methodSignature.getName().equals("getLeafUnion")) {
+ assertEquals("LeafUnion", methodSignature.getReturnType().getName());
+ }
+ }
+ }
+ }
+ }
+
+ @Test
+ public void generatedTypesUsesLeafTest() {
+ final BindingGenerator bg = new BindingGeneratorImpl(false);
+ final SchemaContext context = YangParserTestUtils.parseYangResources(BindingGeneratorImplTest.class,
+ "/uses-statement/test-uses-leaf-innertype2-base.yang", "/uses-statement/test-uses-leaf-innertype2.yang");
+ final List<Type> generateTypes = bg.generateTypes(context);
+ assertNotNull(generateTypes);
+ assertTrue(!generateTypes.isEmpty());
+ for (final Type type : generateTypes) {
+ if (type.getName().equals("MyCont") && type.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.base.rev170809.data")) {
+ final GeneratedType gt = (GeneratedType) type;
+ for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
+ if (methodSignature.getName().equals("getLeafDecimal64")) {
+ assertEquals("BigDecimal", methodSignature.getReturnType().getName());
+ }
+ }
+
+ }
+
+ if (type.getName().equals("MyCont") && type.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype2.rev170809.data")) {
+ final GeneratedType gt = (GeneratedType) type;
+ for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
+ if (methodSignature.getName().equals("getLeafDecimal64")) {
+ assertEquals("BigDecimal", methodSignature.getReturnType().getName());
+ }
+ }
+ }
+ }
+ }
+
+ @Test
+ public void generatedTypesUsesLeafInnertype3Test() {
+ final BindingGenerator bg = new BindingGeneratorImpl(false);
+ final SchemaContext context = YangParserTestUtils.parseYangResources(BindingGeneratorImplTest.class,
+ "/uses-statement/test-uses-leaf-innertype3-base.yang",
+ "/uses-statement/test-uses-leaf-innertype3.yang");
+ final List<Type> generateTypes = bg.generateTypes(context);
+ assertNotNull(generateTypes);
+ assertTrue(!generateTypes.isEmpty());
+ for (final Type type : generateTypes) {
+ if (type.getName().equals("MyCont") && type.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype3.rev170809.data")) {
+ final GeneratedType gt = (GeneratedType) type;
+ for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
+ if (methodSignature.getName().equals("getBandwidth")) {
+ assertEquals("Bandwidth", methodSignature.getReturnType().getName());
+ }
+ }
+
+ }
+
+ if (type.getName().equals("Open") && type.getPackageName()
+ .equals("org.opendaylight.mdsal.gen.javav2.urn.test.uses.leaf.innertype3.rev170809.data")) {
+ final GeneratedType gt = (GeneratedType) type;
+ for (MethodSignature methodSignature : gt.getMethodDefinitions()) {
+ if (methodSignature.getName().equals("getVersion")) {
+ assertEquals("ProtocolVersion", methodSignature.getReturnType().getName());
+ }
+
+ if (methodSignature.getName().equals("getLeafUnion")) {
+ assertEquals("LeafUnion", methodSignature.getReturnType().getName());
+ }
+ }
+
+ }
+ }
+ }
+
+ @Test
+ public void generatedTypesTest() {
+ final BindingGenerator bg = new BindingGeneratorImpl(false);
+ final SchemaContext context = YangParserTestUtils.parseYangResource("/generator/test-list.yang");
final List<Type> generateTypes = bg.generateTypes(context);
assertNotNull(generateTypes);
if (t instanceof GeneratedTransferObject) {
final GeneratedTransferObject genTransferObj = (GeneratedTransferObject) t;
assertBaseGeneratedType(genTransferObj, "MyListKey",
- "org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.list.rev170314.key.my_list.wrapper");
+ "org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.list.rev170314.key.my_list");
assertEquals(3, genTransferObj.getProperties().size());
int test_j = 0;
for (final GeneratedProperty generatedProperty : genTransferObj.getProperties()) {
switch (generatedProperty.getName()) {
- case "key":
- assertEquals("MyListKey", generatedProperty.getReturnType().getName());
+ case "keyReservedWord":
+ assertEquals("String", generatedProperty.getReturnType().getName());
test_j++;
break;
case "key1":
- assertEquals("MyListKey1", generatedProperty.getReturnType().getName());
+ assertEquals("String", generatedProperty.getReturnType().getName());
test_j++;
break;
case "key2":
- assertEquals("MyListKey2", generatedProperty.getReturnType().getName());
+ assertEquals("String", generatedProperty.getReturnType().getName());
test_j++;
break;
default:
}
@Test
- public void generateTypesDescriptionsTest() throws Exception {
+ public void generateTypesIdentityTest() throws Exception {
final BindingGenerator bg = new BindingGeneratorImpl(true);
- final SchemaContext context = YangParserTestUtils.parseYangSources("/base/with_import/");
+ final SchemaContext context = YangParserTestUtils.parseYangResourceDirectory("/identity/");
assertNotNull(context);
final List<Type> generateTypes = bg.generateTypes(context, context.getModules());
assertNotNull(generateTypes);
assertTrue(!generateTypes.isEmpty());
-
for (final Type type : generateTypes) {
- if (type.getName().equals("TestData")) {
- final String description = ((GeneratedType) type).getDescription().get();
- description
- .contains(" import test-import { prefix \"imported-test\"; revision-date 2017-04-21; }\n\n");
- description.contains(" revision 2017-02-06;\n\n");
- description.contains(" typedef my-type {\n type int8;\n }");
- description.contains(" container *my-cont {\n }\n");
+ if (type.getFullyQualifiedName()
+ .equals("org.opendaylight.mdsal.gen.javav2.identity3.module.rev170708.ident.Iden1")) {
+ final GeneratedType genType = (GeneratedType)type;
+ assertEquals("org.opendaylight.mdsal.gen.javav2.identity3.module.rev170708.ident.Iden2",
+ genType.getImplements().stream().findFirst().get().getFullyQualifiedName());
+
+ }
+ if (type.getFullyQualifiedName()
+ .equals("org.opendaylight.mdsal.gen.javav2.identity3.module.rev170708.ident.Iden2")) {
+ final GeneratedType genType = (GeneratedType)type;
+ assertEquals("org.opendaylight.mdsal.gen.javav2.identity.import_.rev170602.ident.Iden1",
+ genType.getImplements().stream().findFirst().get().getFullyQualifiedName());
+
+ }
+ if (type.getFullyQualifiedName()
+ .equals("org.opendaylight.mdsal.gen.javav2.identity3.module.rev170708.ident.Iden3")) {
+ final GeneratedType genType = (GeneratedType)type;
+ assertEquals("org.opendaylight.mdsal.gen.javav2.identity3.module.rev170708.ident.Iden1",
+ genType.getImplements().stream().findFirst().get().getFullyQualifiedName());
+
+ }
+ if (type.getFullyQualifiedName()
+ .equals("org.opendaylight.mdsal.gen.javav2.identity4.module.rev180227.ident.Iden3")) {
+ final GeneratedType genType = (GeneratedType)type;
+ genType.getImplements().stream().forEach(impl -> {
+ final String fqn = impl.getFullyQualifiedName();
+ assertTrue(fqn.equals(
+ "org.opendaylight.mdsal.gen.javav2.identity4.module.rev180227.ident.Iden1")
+ || fqn.equals(
+ "org.opendaylight.mdsal.gen.javav2.identity4.module.rev180227.ident.Iden2"));
+ });
+
}
}
}
int test_j = 0;
for (final MethodSignature m : t.getMethodDefinitions()) {
switch (m.getName()) {
- case "getKey":
- assertMethod(t, "getKey", "MyListKey",
- "org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.list.rev170314.key.my_list.wrapper",
+ case "getIdentifier":
+ assertMethod(t, "getIdentifier", "MyListKey",
+ "org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.list.rev170314.key.my_list",
m);
test_j++;
break;
- case "getMyListKey1":
- assertMethod(t, "getMyListKey1", "MyListKey1",
- "org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.list.rev170314.key.my_list",
- m);
+ case "getKey1":
+ assertMethod(t, "getKey1", "String","java.lang", m);
test_j++;
break;
- case "getMyListKey2":
- assertMethod(t, "getMyListKey2", "MyListKey2",
- "org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.list.rev170314.key.my_list",
- m);
+ case "getKey2":
+ assertMethod(t, "getKey2", "String","java.lang", m);
test_j++;
break;
- case "getMyListFoo":
- assertMethod(t, "getMyListFoo", "MyListFoo",
- "org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.list.rev170314.data.my_list",
- m);
+ case "getFoo":
+ assertMethod(t, "getFoo", "String","java.lang", m);
test_j++;
break;
- case "getMyListKey":
- assertMethod(t, "getMyListKey", "MyListKey",
- "org.opendaylight.mdsal.gen.javav2.urn.test.simple.test.list.rev170314.key.my_list",
- m);
+ case "getKeyReservedWord":
+ assertMethod(t, "getKeyReservedWord", "String","java.lang", m);
test_j++;
break;
default:
}
}
- private void assertBaseGeneratedType(final GeneratedType genType, final String name, final String packageName) {
+ private static void assertBaseGeneratedType(final GeneratedType genType, final String name,
+ final String packageName) {
assertEquals(name, genType.getName());
}
- private void assertMethod(final GeneratedType definingTypeExpected, final String nameExpected,
+ private static void assertMethod(final GeneratedType definingTypeExpected, final String nameExpected,
final String typeNameExpected, final String typePackageNameExpected,
final MethodSignature methodSignature) {
assertEquals(definingTypeExpected, methodSignature.getDefiningType());