import static org.junit.Assert.*;
+import java.io.File;
+import java.util.ArrayList;
import java.util.List;
import java.util.Set;
-import org.junit.Ignore;
import org.junit.Test;
import org.opendaylight.controller.sal.binding.generator.api.BindingGenerator;
-import org.opendaylight.controller.sal.binding.generator.impl.BindingGeneratorImpl;
import org.opendaylight.controller.sal.binding.model.api.Enumeration;
import org.opendaylight.controller.sal.binding.model.api.GeneratedProperty;
import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject;
import org.opendaylight.controller.yang.model.api.Module;
import org.opendaylight.controller.yang.model.api.SchemaContext;
import org.opendaylight.controller.yang.model.parser.api.YangModelParser;
-import org.opendaylight.controller.yang.model.parser.impl.YangModelParserImpl;
+import org.opendaylight.controller.yang.parser.impl.YangParserImpl;
public class GeneratedTypesTest {
private SchemaContext resolveSchemaContextFromFiles(
final String... yangFiles) {
- final YangModelParser parser = new YangModelParserImpl();
- final Set<Module> modules = parser.parseYangModels(yangFiles);
+ final YangModelParser parser = new YangParserImpl();
+ final List<File> inputFiles = new ArrayList<File>();
+ for (int i = 0; i < yangFiles.length; ++i) {
+ inputFiles.add(new File(yangFiles[i]));
+ }
+
+ final Set<Module> modules = parser.parseYangModels(inputFiles);
return parser.resolveSchemaContext(modules);
}
- @Ignore
@Test
public void testLeafEnumResolving() {
final String ietfInterfacesPath = getClass().getResource(
final SchemaContext context = resolveSchemaContextFromFiles(ianaIfTypePath);
assertTrue(context != null);
-
final BindingGenerator bindingGen = new BindingGeneratorImpl();
final List<Type> genTypes = bindingGen.generateTypes(context);
assertTrue(genTypes != null);
- assertEquals(1, genTypes.size());
+ assertEquals(2, genTypes.size());
- final Type type = genTypes.get(0);
- assertTrue(type instanceof GeneratedType);
+ final Type type = genTypes.get(1);
+ assertTrue(type instanceof GeneratedTransferObject);
- final GeneratedType genType = (GeneratedType) type;
- assertEquals(1, genType.getEnumDefintions().size());
+ final GeneratedTransferObject genTransObj = (GeneratedTransferObject) type;
+ final List<GeneratedProperty> properties = genTransObj.getProperties();
+ assertNotNull(properties);
+ assertEquals(1, properties.size());
- final Enumeration enumer = genType.getEnumDefintions().get(0);
+ GeneratedProperty property = properties.get(0);
+ assertNotNull(property);
+ assertNotNull(property.getReturnType());
+
+ assertTrue(property.getReturnType() instanceof Enumeration);
+ final Enumeration enumer = (Enumeration) property.getReturnType();
assertEquals(272, enumer.getValues().size());
}
final List<Type> genTypes = bindingGen.generateTypes(context);
assertTrue(genTypes != null);
- assertEquals(13, genTypes.size());
+ assertEquals(24, genTypes.size());
}
@Test
final BindingGenerator bindingGen = new BindingGeneratorImpl();
final List<Type> genTypes = bindingGen.generateTypes(context);
- assertEquals(25, genTypes.size());
+ assertEquals(50, genTypes.size());
assertTrue(genTypes != null);
- int resolvedLeafrefCount = 0;
+ GeneratedTransferObject gtIfcKey = null;
+ GeneratedType gtIfc = null;
+ GeneratedType gtNetworkLink = null;
+ GeneratedType gtSource = null;
+ GeneratedType gtDest = null;
+ GeneratedType gtTunnel = null;
+ GeneratedTransferObject gtTunnelKey = null;
for (final Type type : genTypes) {
- if (type.getName().equals("InterfaceKey")
- && type instanceof GeneratedTransferObject) {
- final GeneratedTransferObject genTO = (GeneratedTransferObject) type;
- final List<GeneratedProperty> properties = genTO
- .getProperties();
-
- assertTrue(properties != null);
- for (final GeneratedProperty property : properties) {
- if (property.getName().equals("InterfaceId")) {
- assertTrue(property.getReturnType() != null);
- assertFalse(property.getReturnType().equals(
- "java.lang.Void"));
- assertTrue(property.getReturnType().getName()
- .equals("String"));
- resolvedLeafrefCount++;
- }
- }
-
- } else if (type.getName().equals("Interface")
- && type instanceof GeneratedType) {
- final GeneratedType genType = (GeneratedType) type;
- final List<MethodSignature> methods = genType
- .getMethodDefinitions();
-
- assertTrue(methods != null);
- for (final MethodSignature method : methods) {
- if (method.getName().equals("getInterfaceKey")) {
- assertTrue(method.getReturnType() != null);
- assertFalse(method.getReturnType().equals(
- "java.lang.Void"));
- assertTrue(method.getReturnType().getName()
- .equals("InterfaceKey"));
- resolvedLeafrefCount++;
- } else if (method.getName().equals("getHigherLayerIf")) {
- assertTrue(method.getReturnType() != null);
- assertFalse(method.getReturnType().equals(
- "java.lang.Void"));
- assertTrue(method.getReturnType().getName()
- .equals("List"));
- resolvedLeafrefCount++;
- }
- }
- } else if (type.getName().equals("NetworkLink")
- && type instanceof GeneratedType) {
- final GeneratedType genType = (GeneratedType) type;
- final List<MethodSignature> methods = genType
- .getMethodDefinitions();
- assertTrue(methods != null);
- for (MethodSignature method : methods) {
- if (method.getName().equals("getInterface")) {
- assertTrue(method.getReturnType() != null);
- assertFalse(method.getReturnType().equals(
- "java.lang.Void"));
- assertTrue(method.getReturnType().getName()
- .equals("String"));
- resolvedLeafrefCount++;
- }
- }
- } else if ((type.getName().equals("SourceNode") || type.getName()
- .equals("DestinationNode"))
- && type instanceof GeneratedType) {
- final GeneratedType genType = (GeneratedType) type;
- final List<MethodSignature> methods = genType
- .getMethodDefinitions();
- assertTrue(methods != null);
- for (MethodSignature method : methods) {
- if (method.getName().equals("getId")) {
- assertTrue(method.getReturnType() != null);
- assertFalse(method.getReturnType().equals(
- "java.lang.Void"));
- assertTrue(method.getReturnType().getName()
- .equals("String"));
- resolvedLeafrefCount++;
- }
- }
- } else if (type.getName().equals("Tunnel")
- && type instanceof GeneratedType) {
- final GeneratedType genType = (GeneratedType) type;
- final List<MethodSignature> methods = genType
- .getMethodDefinitions();
- assertTrue(methods != null);
- for (MethodSignature method : methods) {
- if (method.getName().equals("getTunnelKey")) {
- assertTrue(method.getReturnType() != null);
- assertFalse(method.getReturnType().equals(
- "java.lang.Void"));
- assertTrue(method.getReturnType().getName()
- .equals("TunnelKey"));
- resolvedLeafrefCount++;
- }
- }
- } else if (type.getName().equals("TunnelKey")
- && type instanceof GeneratedTransferObject) {
- final GeneratedTransferObject genTO = (GeneratedTransferObject) type;
- final List<GeneratedProperty> properties = genTO
- .getProperties();
+ String name = type.getName();
+ if ("InterfaceKey".equals(name)) {
+ gtIfcKey = (GeneratedTransferObject) type;
+ } else if ("Interface".equals(name)) {
+ gtIfc = (GeneratedType) type;
+ } else if ("NetworkLink".equals(name)) {
+ gtNetworkLink = (GeneratedType) type;
+ } else if ("SourceNode".equals(name)) {
+ gtSource = (GeneratedType) type;
+ } else if ("DestinationNode".equals(name)) {
+ gtDest = (GeneratedType) type;
+ } else if ("Tunnel".equals(name)) {
+ gtTunnel = (GeneratedType) type;
+ } else if ("TunnelKey".equals(name)) {
+ gtTunnelKey = (GeneratedTransferObject) type;
+ }
+ }
- assertTrue(properties != null);
- for (final GeneratedProperty property : properties) {
- if (property.getName().equals("TunnelId")) {
- assertTrue(property.getReturnType() != null);
- assertFalse(property.getReturnType().equals(
- "java.lang.Void"));
- assertTrue(property.getReturnType().getName()
- .equals("String"));
- resolvedLeafrefCount++;
- }
- }
+ assertNotNull(gtIfcKey);
+ assertNotNull(gtIfc);
+ assertNotNull(gtNetworkLink);
+ assertNotNull(gtSource);
+ assertNotNull(gtDest);
+ assertNotNull(gtTunnel);
+ assertNotNull(gtTunnelKey);
+
+ // InterfaceId
+ final List<GeneratedProperty> gtIfcKeyProps = gtIfcKey.getProperties();
+ assertNotNull(gtIfcKeyProps);
+ GeneratedProperty ifcIdProp = null;
+ for (final GeneratedProperty property : gtIfcKeyProps) {
+ if (property.getName().equals("InterfaceId")) {
+ ifcIdProp = property;
+ }
+ }
+ assertNotNull(ifcIdProp);
+ Type ifcIdPropType = ifcIdProp.getReturnType();
+ assertNotNull(ifcIdPropType);
+ assertFalse(ifcIdPropType.equals("java.lang.Void"));
+ assertTrue(ifcIdPropType.getName().equals("String"));
+
+ // Interface
+ final List<MethodSignature> gtIfcMethods = gtIfc.getMethodDefinitions();
+ assertNotNull(gtIfcMethods);
+ MethodSignature getIfcKey = null;
+ MethodSignature getHigherLayerIf = null;
+ for (final MethodSignature method : gtIfcMethods) {
+ if (method.getName().equals("getInterfaceKey")) {
+ getIfcKey = method;
+ } else if (method.getName().equals("getHigherLayerIf")) {
+ getHigherLayerIf = method;
+ }
+ }
+ assertNotNull(getIfcKey);
+ Type getIfcKeyType = getIfcKey.getReturnType();
+ assertNotNull(getIfcKeyType);
+ assertFalse(getIfcKeyType.equals("java.lang.Void"));
+ assertTrue(getIfcKeyType.getName().equals("InterfaceKey"));
+
+ assertNotNull(getHigherLayerIf);
+ Type getHigherLayerIfType = getHigherLayerIf.getReturnType();
+ assertNotNull(getHigherLayerIfType);
+ assertFalse(getHigherLayerIfType.equals("java.lang.Void"));
+ assertTrue(getHigherLayerIfType.getName().equals("List"));
+
+ // NetworkLink
+ final List<MethodSignature> gtNetworkLinkMethods = gtNetworkLink
+ .getMethodDefinitions();
+ assertNotNull(gtNetworkLinkMethods);
+ MethodSignature getIfc = null;
+ for (MethodSignature method : gtNetworkLinkMethods) {
+ if (method.getName().equals("getInterface")) {
+ getIfc = method;
+ }
+ }
+ assertNotNull(getIfc);
+ Type getIfcType = getIfc.getReturnType();
+ assertNotNull(getIfcType);
+ assertFalse(getIfcType.equals("java.lang.Void"));
+ assertTrue(getIfcType.getName().equals("String"));
+
+ // SourceNode
+ final List<MethodSignature> gtSourceMethods = gtSource
+ .getMethodDefinitions();
+ assertNotNull(gtSourceMethods);
+ MethodSignature getIdSource = null;
+ for (MethodSignature method : gtSourceMethods) {
+ if (method.getName().equals("getId")) {
+ getIdSource = method;
+ }
+ }
+ assertNotNull(getIdSource);
+ Type getIdType = getIdSource.getReturnType();
+ assertNotNull(getIdType);
+ assertFalse(getIdType.equals("java.lang.Void"));
+ assertTrue(getIdType.getName().equals("Uri"));
+
+ // DestinationNode
+ final List<MethodSignature> gtDestMethods = gtDest
+ .getMethodDefinitions();
+ assertNotNull(gtDestMethods);
+ MethodSignature getIdDest = null;
+ for (MethodSignature method : gtDestMethods) {
+ if (method.getName().equals("getId")) {
+ getIdDest = method;
+ }
+ }
+ assertNotNull(getIdDest);
+ Type getIdDestType = getIdDest.getReturnType();
+ assertNotNull(getIdDestType);
+ assertFalse(getIdDestType.equals("java.lang.Void"));
+ assertTrue(getIdDestType.getName().equals("Uri"));
+
+ // Tunnel
+ final List<MethodSignature> gtTunnelMethods = gtTunnel
+ .getMethodDefinitions();
+ assertNotNull(gtTunnelMethods);
+ MethodSignature getTunnelKey = null;
+ for (MethodSignature method : gtTunnelMethods) {
+ if (method.getName().equals("getTunnelKey")) {
+ getTunnelKey = method;
+ }
+ }
+ assertNotNull(getTunnelKey);
+ Type getTunnelKeyType = getTunnelKey.getReturnType();
+ assertNotNull(getTunnelKeyType);
+ assertFalse(getTunnelKeyType.equals("java.lang.Void"));
+ assertTrue(getTunnelKeyType.getName().equals("TunnelKey"));
+
+ // TunnelKey
+ final List<GeneratedProperty> gtTunnelKeyProps = gtTunnelKey
+ .getProperties();
+ assertNotNull(gtTunnelKeyProps);
+ GeneratedProperty tunnelId = null;
+ for (final GeneratedProperty property : gtTunnelKeyProps) {
+ if (property.getName().equals("TunnelId")) {
+ tunnelId = property;
}
}
- assertEquals(10, resolvedLeafrefCount);
+ assertNotNull(tunnelId);
+ Type tunnelIdType = tunnelId.getReturnType();
+ assertNotNull(tunnelIdType);
+ assertFalse(tunnelIdType.equals("java.lang.Void"));
+ assertTrue(tunnelIdType.getName().equals("Uri"));
}
- @Ignore
@Test
public void testContainerResolving() {
final String filePath = getClass().getResource(
assertEquals("SimpleContainer", simpleContainer.getName());
assertEquals("NestedContainer", nestedContainer.getName());
- assertEquals(4, simpleContainer.getMethodDefinitions().size());
+ assertEquals(5, simpleContainer.getMethodDefinitions().size());
assertEquals(4, nestedContainer.getMethodDefinitions().size());
int methodsCount = 0;
assertEquals(4, methodsCount);
}
- @Ignore
@Test
public void testLeafListResolving() {
final String filePath = getClass().getResource(
assertEquals("SimpleContainer", simpleContainer.getName());
assertEquals("NestedContainer", nestedContainer.getName());
- assertEquals(4, simpleContainer.getMethodDefinitions().size());
+ assertEquals(5, simpleContainer.getMethodDefinitions().size());
assertEquals(3, nestedContainer.getMethodDefinitions().size());
int methodsCount = 0;
assertEquals(3, methodsCount);
}
- @Ignore
@Test
public void testListResolving() {
final String filePath = getClass()
int genTypesCount = 0;
int genTOsCount = 0;
for (final Type type : genTypes) {
- if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
+ if (type instanceof GeneratedType
+ && !(type instanceof GeneratedTransferObject)) {
final GeneratedType genType = (GeneratedType) type;
if (genType.getName().equals("ListParentContainer")) {
assertEquals(2, genType.getMethodDefinitions().size());
genTypesCount++;
} else if (genType.getName().equals("SimpleList")) {
- assertEquals(7, genType.getMethodDefinitions().size());
+ assertEquals(8, genType.getMethodDefinitions().size());
final List<MethodSignature> methods = genType
.getMethodDefinitions();
int methodsCount = 0;
int genTypesCount = 0;
int genTOsCount = 0;
for (final Type type : genTypes) {
- if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
+ if (type instanceof GeneratedType
+ && !(type instanceof GeneratedTransferObject)) {
genTypesCount++;
} else if (type instanceof GeneratedTransferObject) {
final GeneratedTransferObject genTO = (GeneratedTransferObject) type;
int genTypesCount = 0;
int genTOsCount = 0;
for (final Type type : genTypes) {
- if (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject)) {
+ if (type instanceof GeneratedType
+ && !(type instanceof GeneratedTransferObject)) {
genTypesCount++;
} else if (type instanceof GeneratedTransferObject) {
genTOsCount++;