From: Robert Varga Date: Sat, 16 Oct 2021 13:00:05 +0000 (+0200) Subject: Expand DefaultBindingGeneratorTest X-Git-Tag: v8.0.6~21 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=commitdiff_plain;h=e48bad5e355f85d60c0b8361e605a1f60ce68737 Expand DefaultBindingGeneratorTest We have fixed the test model (as it was invalid). Add an explicit test for the now-unresovled grouping leaf type and also restore the original negative test. Change-Id: I14c0d734ee8990f9ad9ac8f8c58f37cafae34990 Signed-off-by: Robert Varga --- diff --git a/binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/DefaultBindingGeneratorTest.java b/binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/DefaultBindingGeneratorTest.java index 98792e377e..2db46bf78a 100644 --- a/binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/DefaultBindingGeneratorTest.java +++ b/binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/generator/impl/DefaultBindingGeneratorTest.java @@ -11,6 +11,7 @@ package org.opendaylight.mdsal.binding.generator.impl; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; import java.util.List; import org.junit.AfterClass; @@ -202,6 +203,22 @@ public class DefaultBindingGeneratorTest { assertEquals("^(?:)$", pattern.getJavaPatternString()); } + @Test + public void testUnresolvedLeafref() { + assertEquals(Types.objectType(), assertGeneratedMethod(JavaTypeName.create(TEST_TYPE_PROVIDER_B, "Grp"), + "getUnresolvableLeafref").getReturnType()); + } + + @Test + public void javaTypeForSchemaDefinitionInvalidLeafrefPathTest() { + final var ctx = YangParserTestUtils.parseYangResources(TypeProviderTest.class, "/unresolvable-leafref.yang"); + final var ex = assertThrows(IllegalArgumentException.class, () -> DefaultBindingGenerator.generateFor(ctx)); + assertEquals("Failed to find leafref target /somewhere/i/belong", ex.getMessage()); + final var cause = ex.getCause(); + assertThat(cause, instanceOf(IllegalArgumentException.class)); + assertEquals("Data tree child (foo)somewhere not present", cause.getMessage()); + } + private static MethodSignature assertGeneratedMethod(final JavaTypeName typeName, final String methodName) { return assertGeneratedMethod(assertGeneratedType(typeName).getMethodDefinitions(), methodName); } diff --git a/binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderTest.java b/binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderTest.java index d3109f131a..b8c1ecc7de 100644 --- a/binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderTest.java +++ b/binding/mdsal-binding-generator/src/test/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderTest.java @@ -199,18 +199,4 @@ public class TypeProviderTest { assertEquals("java.lang", resultType.getPackageName()); assertEquals("Object", resultType.getName()); } - - @Test(expected = IllegalArgumentException.class) - public void javaTypeForSchemaDefinitionInvalidLeafrefPathTest() { - final AbstractTypeProvider provider = new CodegenTypeProvider(SCHEMA_CONTEXT); - final Module module = resolveModule("test-type-provider-b"); - - final QName leafrefNode = QName.create(module.getQNameModule(), "unreslovable-leafref"); - final DataSchemaNode condLeaf = module.findDataChildByName(leafrefNode).get(); - assertTrue(condLeaf instanceof LeafSchemaNode); - final LeafSchemaNode leaf = (LeafSchemaNode) condLeaf; - final TypeDefinition leafType = leaf.getType(); - - provider.javaTypeForSchemaDefinitionType(leafType, leaf); - } } diff --git a/binding/mdsal-binding-generator/src/test/resources/unresolvable-leafref.yang b/binding/mdsal-binding-generator/src/test/resources/unresolvable-leafref.yang new file mode 100644 index 0000000000..a6214edbe0 --- /dev/null +++ b/binding/mdsal-binding-generator/src/test/resources/unresolvable-leafref.yang @@ -0,0 +1,11 @@ +module unresolvable-leafref { + namespace foo; + prefix foo; + + leaf unresolvable-leafref { + type leafref { + path "/somewhere/i/belong"; + } + } +} +