*/
package org.opendaylight.yangtools.sal.binding.generator.impl;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import java.io.File;
import java.util.List;
import org.junit.Test;
+import org.opendaylight.yangtools.binding.generator.util.Types;
import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
+import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty;
+import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
import org.opendaylight.yangtools.sal.binding.model.api.Type;
+import org.opendaylight.yangtools.sal.binding.yang.types.TestUtils;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
public class UnionTypeDefTest {
@Test
public void unionTypeResolvingTest() throws Exception {
- File abstractTopology = new File(getClass().getResource("/union-test-models/abstract-topology.yang").toURI());
- File ietfInetTypes = new File(getClass().getResource("/ietf/ietf-inet-types.yang").toURI());
+ final File abstractTopology = new File(getClass().getResource("/union-test-models/abstract-topology.yang").toURI());
+ final File ietfInetTypes = new File(getClass().getResource("/ietf/ietf-inet-types.yang").toURI());
final SchemaContext context = TestUtils.parseYangSources(abstractTopology, ietfInetTypes);
assertNotNull("context is null", context);
// TODO: implement test
}
+
+ @Test
+ public void unionTypedefLeafrefTest() throws Exception {
+ final File yang = new File(getClass().getResource("/leafref_typedef_union/bug8449.yang").toURI());
+ final SchemaContext schemaContext = TestUtils.parseYangSources(yang);
+ assertNotNull(schemaContext);
+ final List<Type> generateTypes = new BindingGeneratorImpl(false).generateTypes(schemaContext);
+ assertNotNull(generateTypes);
+ for (final Type type : generateTypes) {
+ if (type.getName().equals("Cont")) {
+ final GeneratedType gt = ((GeneratedType) type);
+ assertNotNull(gt);
+ final GeneratedType refType = gt.getEnclosedTypes().iterator().next();
+ for (final GeneratedProperty generatedProperty : refType.getProperties()) {
+ switch (generatedProperty.getName()) {
+ case "stringRefValue":
+ assertEquals(Types.STRING, generatedProperty.getReturnType());
+ break;
+ case "value":
+ assertEquals(Types.CHAR_ARRAY, generatedProperty.getReturnType());
+ break;
+ }
+ }
+ }
+ }
+ }
}