import java.net.URI;
import java.util.NoSuchElementException;
import org.junit.Test;
+import org.opendaylight.mdsal.binding.model.api.Type;
import org.opendaylight.yangtools.binding.generator.util.generated.type.builder.GeneratedTypeBuilderImpl;
-import org.opendaylight.yangtools.sal.binding.model.api.Type;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
import org.opendaylight.yangtools.yang.model.util.type.IdentityrefTypeBuilder;
import org.opendaylight.yangtools.yang.parser.util.YangValidationException;
+import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
public class TypeProviderImplTest {
public void testLeafRefRelativeSelfReference() throws Exception {
File relative = new File(getClass().getResource("/leafref/leafref-relative-invalid.yang").toURI());
- final SchemaContext schemaContext = RetestUtils.parseYangSources(relative);
+ final SchemaContext schemaContext = YangParserTestUtils.parseYangSources(relative);
final Module moduleRelative = schemaContext.findModuleByNamespace(new URI("urn:xml:ns:yang:lrr")).iterator().next();
final TypeProviderImpl typeProvider = new TypeProviderImpl(schemaContext);
- DataSchemaNode leafref = ((ListSchemaNode) moduleRelative.getDataChildByName("neighbor")).getDataChildByName("neighbor-id");
+ final QName listNode = QName.create(moduleRelative.getQNameModule(), "neighbor");
+ final QName leafNode = QName.create(moduleRelative.getQNameModule(), "neighbor-id");
+ DataSchemaNode leafref = ((ListSchemaNode) moduleRelative.getDataChildByName(listNode))
+ .getDataChildByName(leafNode);
LeafSchemaNode leaf = (LeafSchemaNode) leafref;
TypeDefinition<?> leafType = leaf.getType();
Type leafrefResolvedType = typeProvider.javaTypeForSchemaDefinitionType(leafType, leaf);
+ assertNotNull(leafrefResolvedType);
}
@Test (expected = YangValidationException.class)
public void testLeafRefAbsoluteSelfReference() throws Exception {
File relative = new File(getClass().getResource("/leafref/leafref-absolute-invalid.yang").toURI());
- final SchemaContext schemaContext = RetestUtils.parseYangSources(relative);
+ final SchemaContext schemaContext = YangParserTestUtils.parseYangSources(relative);
final Module moduleRelative = schemaContext.findModuleByNamespace(new URI("urn:xml:ns:yang:lra")).iterator().next();
final TypeProviderImpl typeProvider = new TypeProviderImpl(schemaContext);
- DataSchemaNode leafref = ((ListSchemaNode) moduleRelative.getDataChildByName("neighbor")).getDataChildByName("neighbor-id");
+ final QName listNode = QName.create(moduleRelative.getQNameModule(), "neighbor");
+ final QName leafNode = QName.create(moduleRelative.getQNameModule(), "neighbor-id");
+ DataSchemaNode leafref = ((ListSchemaNode) moduleRelative.getDataChildByName(listNode))
+ .getDataChildByName(leafNode);
LeafSchemaNode leaf = (LeafSchemaNode) leafref;
TypeDefinition<?> leafType = leaf.getType();
Type leafrefResolvedType = typeProvider.javaTypeForSchemaDefinitionType(leafType, leaf);
+ assertNotNull(leafrefResolvedType);
}
@Test
public void testLeafRefRelativeAndAbsoluteValidReference() throws Exception {
File valid = new File(getClass().getResource("/leafref/leafref-valid.yang").toURI());
- final SchemaContext schemaContext = RetestUtils.parseYangSources(valid);
+ final SchemaContext schemaContext = YangParserTestUtils.parseYangSources(valid);
final Module moduleValid = schemaContext.findModuleByNamespace(new URI("urn:xml:ns:yang:lrv")).iterator().next();
final TypeProviderImpl typeProvider = new TypeProviderImpl(schemaContext);
- DataSchemaNode leafrefRel = ((ListSchemaNode) moduleValid.getDataChildByName("neighbor")).getDataChildByName
- ("neighbor-id");
+ final QName listNode = QName.create(moduleValid.getQNameModule(), "neighbor");
+ final QName leaf1Node = QName.create(moduleValid.getQNameModule(), "neighbor-id");
+ DataSchemaNode leafrefRel = ((ListSchemaNode) moduleValid.getDataChildByName(listNode))
+ .getDataChildByName(leaf1Node);
LeafSchemaNode leafRel = (LeafSchemaNode) leafrefRel;
TypeDefinition<?> leafTypeRel = leafRel.getType();
Type leafrefRelResolvedType = typeProvider.javaTypeForSchemaDefinitionType(leafTypeRel, leafRel);
assertNotNull(leafrefRelResolvedType);
- DataSchemaNode leafrefAbs = ((ListSchemaNode) moduleValid.getDataChildByName("neighbor")).getDataChildByName
- ("neighbor2-id");
+ final QName leaf2Node = QName.create(moduleValid.getQNameModule(), "neighbor2-id");
+ DataSchemaNode leafrefAbs = ((ListSchemaNode) moduleValid.getDataChildByName(listNode))
+ .getDataChildByName(leaf2Node);
LeafSchemaNode leafAbs = (LeafSchemaNode) leafrefAbs;
TypeDefinition<?> leafTypeAbs = leafAbs.getType();
Type leafrefAbsResolvedType = typeProvider.javaTypeForSchemaDefinitionType(leafTypeAbs, leafAbs);
@Test
public void testMethodsOfTypeProviderImpl() throws Exception {
- final File abstractTopology = new File(getClass().getResource("/base-yang-types.yang")
- .toURI());
+ final File abstractTopology = new File(getClass().getResource("/base-yang-types.yang").toURI());
- final SchemaContext schemaContext = RetestUtils.parseYangSources(abstractTopology);
+ final SchemaContext schemaContext = YangParserTestUtils.parseYangSources(abstractTopology);
final TypeProviderImpl typeProvider = new TypeProviderImpl(schemaContext);
doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
doReturn(QName.create("Cont1")).when(leafSchemaNode).getQName();
- assertEquals("new java.lang.Boolean(\"false\")", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "false"));
+ assertEquals("java.lang.Boolean.FALSE", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "false"));
// decimal type
final DecimalTypeDefinition decimalType = BaseTypes.decimalTypeBuilder(refTypePath).setFractionDigits(4).build();
doReturn(SchemaPath.ROOT).when(leafSchemaNode).getPath();
doReturn(QName.create("Cont1")).when(leafSchemaNode).getQName();
- assertEquals("new java.lang.Boolean(\"default value\")", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
+ assertEquals("java.lang.Boolean.valueOf(\"default value\")", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
// enum type
final EnumTypeDefinition enumType = BaseTypes.enumerationTypeBuilder(refTypePath).build();
assertEquals("\"default value\"", typeProvider.getTypeDefaultConstruction(leafSchemaNode, "default value"));
fail("Expected NoSuchElementException");
} catch (Exception e) {
- assertTrue( e instanceof NoSuchElementException);
+ assertTrue(e instanceof NoSuchElementException);
}
// identityref type
final IdentitySchemaNode identitySchemaNode = mock(IdentitySchemaNode.class);
final IdentityrefTypeBuilder identityRefBuilder = BaseTypes.identityrefTypeBuilder(refTypePath);
- identityRefBuilder.setIdentity(identitySchemaNode);
+ identityRefBuilder.addIdentity(identitySchemaNode);
final IdentityrefTypeDefinition identityRef = identityRefBuilder.build();
reset(leafSchemaNode);