X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-generator-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fgenerator%2Fimpl%2FMdsal448Test.java;fp=binding%2Fmdsal-binding-generator-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fgenerator%2Fimpl%2FMdsal448Test.java;h=14d66b13dc144b51126eab618f8b4cdd214cb4e2;hb=08e471b607ecd432e7e3004992a02f8105f05cec;hp=0000000000000000000000000000000000000000;hpb=434471c8c74f1fd8ce89d987b7fc689f8e513d34;p=mdsal.git diff --git a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal448Test.java b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal448Test.java new file mode 100644 index 0000000000..14d66b13dc --- /dev/null +++ b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/generator/impl/Mdsal448Test.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.mdsal.binding.generator.impl; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import com.google.common.collect.Iterables; +import java.util.Arrays; +import java.util.List; +import java.util.Set; +import org.junit.Test; +import org.opendaylight.mdsal.binding.model.api.Type; +import org.opendaylight.mdsal.binding.yang.types.GroupingDefinitionDependencySort; +import org.opendaylight.yangtools.yang.model.api.GroupingDefinition; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; + +public class Mdsal448Test { + + @Test + public void groupingSortIncludesActions() { + final SchemaContext context = YangParserTestUtils.parseYangResource("/mdsal448.yang"); + final Set groupings = context.findModule("mdsal448").get().getGroupings(); + assertEquals(2, groupings.size()); + + final List ordered = sortGroupings(Iterables.get(groupings, 0), + Iterables.get(groupings, 1)); + assertEquals(2, ordered.size()); + // "the-grouping" needs to be first + assertEquals("the-grouping", ordered.get(0).getQName().getLocalName()); + assertEquals("action-grouping", ordered.get(1).getQName().getLocalName()); + + // Sort needs to be stable + final List reverse = sortGroupings(Iterables.get(groupings, 1), + Iterables.get(groupings, 0)); + assertEquals(ordered, reverse); + + final List types = new BindingGeneratorImpl().generateTypes(context); + assertNotNull(types); + assertEquals(9, types.size()); + } + + private static List sortGroupings(GroupingDefinition... groupings) { + return new GroupingDefinitionDependencySort().sort(Arrays.asList(groupings)); + } +}