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;
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);
}
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);
- }
}