+
+ @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;
+ }
+ }
+ }
+ }
+ }