2 * Copyright (c) 2017 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
10 package org.opendaylight.mdsal.binding.javav2.generator.impl;
12 import static org.junit.Assert.assertNotNull;
13 import static org.junit.Assert.assertTrue;
14 import static org.mockito.Mockito.mock;
15 import static org.mockito.Mockito.when;
17 import org.junit.Test;
18 import org.opendaylight.yangtools.yang.common.QName;
19 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
20 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
21 import org.opendaylight.yangtools.yang.model.api.UsesNode;
22 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
23 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
24 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
26 import java.lang.reflect.Method;
29 public class Bug8575Test {
31 public void bug8575Test() throws Exception {
32 final Class[] parameterTypes = { SchemaContext.class, SchemaPath.class, UsesNode.class };
33 final Method generate =
34 AugmentToGenType.class.getDeclaredMethod("findOriginalTargetFromGrouping", parameterTypes);
35 assertNotNull(generate);
36 generate.setAccessible(true);
38 File foo = new File(getClass().getResource(
39 "/bug-8575/foo.yang").toURI());
41 SchemaContext context = YangParserTestUtils.parseYangFiles(foo);
43 final QName groupingQname = QName.create("foo", "2017-05-15", "A");
44 final QName containerQname = QName.create("foo", "2017-05-15", "A1");
45 final SchemaPath groupingPath = SchemaPath.create(true, groupingQname);
46 final SchemaPath targetPath = SchemaPath.create(true, containerQname);
48 final UsesNode usesNode = mock(UsesNode.class);
49 when(usesNode.getGroupingPath()).thenReturn(groupingPath);
51 final Object[] args = { context, targetPath, usesNode };
52 final DataSchemaNode result = (DataSchemaNode) generate.invoke(AugmentToGenType.class, args);
53 assertNotNull(result);
54 assertTrue(result instanceof ContainerSchemaNode);