2 * Copyright (c) 2022 PANTHEON.tech, s.r.o. 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
8 package org.opendaylight.mdsal.binding.generator.impl;
10 import static org.junit.Assert.assertEquals;
12 import java.util.List;
13 import org.junit.Test;
14 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
16 public class Mdsal810Test {
18 public void testKeyConflict() {
19 assertGeneratedNames("key-conflict.yang",
20 "org.opendaylight.yang.gen.v1.key.conflict.norev.KeyConflictData",
21 "org.opendaylight.yang.gen.v1.key.conflict.norev.Foo$LI",
22 "org.opendaylight.yang.gen.v1.key.conflict.norev.Foo$LIKey",
23 "org.opendaylight.yang.gen.v1.key.conflict.norev.FooKey$CO");
27 public void testListenerConflict() {
28 assertGeneratedNames("listener-conflict.yang",
29 "org.opendaylight.yang.gen.v1.listener.conflict.norev.ListenerConflictData",
30 "org.opendaylight.yang.gen.v1.listener.conflict.norev.ListenerConflictListener$CO",
31 "org.opendaylight.yang.gen.v1.listener.conflict.norev.Bar",
32 "org.opendaylight.yang.gen.v1.listener.conflict.norev.ListenerConflictListener");
36 public void testRootConflict() {
37 assertGeneratedNames("root-conflict.yang",
38 "org.opendaylight.yang.gen.v1.root.conflict.norev.RootConflictData",
39 "org.opendaylight.yang.gen.v1.root.conflict.norev.RootConflictData$CO");
43 public void testServiceConflict() {
44 assertGeneratedNames("service-conflict.yang",
45 "org.opendaylight.yang.gen.v1.service.conflict.norev.ServiceConflictData",
46 "org.opendaylight.yang.gen.v1.service.conflict.norev.ServiceConflictService",
47 "org.opendaylight.yang.gen.v1.service.conflict.norev.Bar",
48 "org.opendaylight.yang.gen.v1.service.conflict.norev.BarInput",
49 "org.opendaylight.yang.gen.v1.service.conflict.norev.BarOutput");
53 public void testInputOutputConflict() {
54 assertGeneratedNames("io-conflict.yang",
55 "org.opendaylight.yang.gen.v1.io.conflict.norev.IoConflictData",
56 "org.opendaylight.yang.gen.v1.io.conflict.norev.Foo$RP",
57 "org.opendaylight.yang.gen.v1.io.conflict.norev.Foo$RPInput",
58 "org.opendaylight.yang.gen.v1.io.conflict.norev.Foo$RPOutput",
59 "org.opendaylight.yang.gen.v1.io.conflict.norev.FooInput",
60 "org.opendaylight.yang.gen.v1.io.conflict.norev.FooOutput");
64 public void testSchemaCollisions() {
65 assertGeneratedNames("schema-conflict.yang",
66 "org.opendaylight.yang.gen.v1.schema.conflict.norev.SchemaConflictData",
67 "org.opendaylight.yang.gen.v1.schema.conflict.norev.FooBar$AD",
68 "org.opendaylight.yang.gen.v1.schema.conflict.norev.FooBar$AX",
69 "org.opendaylight.yang.gen.v1.schema.conflict.norev.FooBar$CO",
70 "org.opendaylight.yang.gen.v1.schema.conflict.norev.FooBar$LI",
71 "org.opendaylight.yang.gen.v1.schema.conflict.norev.FooBar$NO",
72 "org.opendaylight.yang.gen.v1.schema.conflict.norev.FooBar$RP",
73 "org.opendaylight.yang.gen.v1.schema.conflict.norev.FooBar$RPInput",
74 "org.opendaylight.yang.gen.v1.schema.conflict.norev.FooBar$RPOutput",
75 "org.opendaylight.yang.gen.v1.schema.conflict.norev.SchemaConflictListener");
78 private static void assertGeneratedNames(final String yangFile, final String... fqcns) {
79 assertEquals(List.of(fqcns),
80 DefaultBindingGenerator.generateFor(YangParserTestUtils.parseYangResource("/mdsal-810/" + yangFile))
81 .stream().map(type -> type.getIdentifier().toString()).toList());