+
+ @Test
+ public void testRequireInstanceSubstatement() {
+ final SchemaPath schemaPath = SchemaPath.create(true, QName.create("my-cont"), QName.create("my-leafref"));
+ final RevisionAwareXPathImpl path = new RevisionAwareXPathImpl("../my-leaf", false);
+
+ LeafrefTypeBuilder leafrefTypeBuilder = BaseTypes.leafrefTypeBuilder(schemaPath).setPathStatement(path);
+
+ leafrefTypeBuilder.setRequireInstance(false);
+ LeafrefTypeDefinition leafref = leafrefTypeBuilder.build();
+ assertFalse(leafref.requireInstance());
+
+ leafrefTypeBuilder.setRequireInstance(true);
+ leafref = leafrefTypeBuilder.build();
+ assertTrue(leafref.requireInstance());
+
+ leafrefTypeBuilder.setRequireInstance(true);
+ leafref = leafrefTypeBuilder.build();
+ assertTrue(leafref.requireInstance());
+
+ try {
+ leafrefTypeBuilder.setRequireInstance(false);
+ fail("An IllegalArgumentException should have been thrown.");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("Cannot switch off require-instance in type AbsoluteSchemaPath{path=[my-cont, my-leafref]}",
+ ex.getMessage());
+ }
+
+ }