import org.junit.Before;
import org.junit.Test;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
import org.opendaylight.yangtools.yang.model.api.UsesNode;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
import org.opendaylight.yangtools.yang.model.api.UsesNode;
import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
import org.opendaylight.yangtools.yang.model.util.SchemaNodeUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
import org.opendaylight.yangtools.yang.model.util.SchemaNodeUtils;
import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
final ContainerSchemaNode destination = (ContainerSchemaNode) peer.getDataChildByName(QName.create(
testModule.getQNameModule(), "destination"));
final ContainerSchemaNode destination = (ContainerSchemaNode) peer.getDataChildByName(QName.create(
testModule.getQNameModule(), "destination"));
assertEquals(1, usesNodes.size());
final UsesNode usesNode = usesNodes.iterator().next();
assertEquals(1, usesNodes.size());
final UsesNode usesNode = usesNodes.iterator().next();
assertEquals(4, refines.size());
LeafSchemaNode refineLeaf = null;
ContainerSchemaNode refineContainer = null;
ListSchemaNode refineList = null;
LeafSchemaNode refineInnerLeaf = null;
assertEquals(4, refines.size());
LeafSchemaNode refineLeaf = null;
ContainerSchemaNode refineContainer = null;
ListSchemaNode refineList = null;
LeafSchemaNode refineInnerLeaf = null;
final SchemaNode value = entry.getValue();
if ("address".equals(value.getQName().getLocalName())) {
refineLeaf = (LeafSchemaNode) destination.getDataChildByName(value.getQName());
final SchemaNode value = entry.getValue();
if ("address".equals(value.getQName().getLocalName())) {
refineLeaf = (LeafSchemaNode) destination.getDataChildByName(value.getQName());
final SchemaNode value = entry.getValue();
if ("id".equals(value.getQName().getLocalName())) {
refineInnerLeaf = (LeafSchemaNode) refineList.getDataChildByName(value.getQName());
final SchemaNode value = entry.getValue();
if ("id".equals(value.getQName().getLocalName())) {
refineInnerLeaf = (LeafSchemaNode) refineList.getDataChildByName(value.getQName());
assertEquals(Optional.of("address reference added by refine"), refineLeaf.getReference());
assertFalse(refineLeaf.isConfiguration());
assertFalse(refineLeaf.isMandatory());
assertEquals(Optional.of("address reference added by refine"), refineLeaf.getReference());
assertFalse(refineLeaf.isConfiguration());
assertFalse(refineLeaf.isMandatory());
assertEquals(1, leafMustConstraints.size());
final MustDefinition leafMust = leafMustConstraints.iterator().next();
assertEquals(1, leafMustConstraints.size());
final MustDefinition leafMust = leafMustConstraints.iterator().next();
assertEquals(1, refineLeaf.getUnknownSchemaNodes().size());
// container port
assertNotNull(refineContainer);
assertEquals(1, refineLeaf.getUnknownSchemaNodes().size());
// container port
assertNotNull(refineContainer);
assertTrue(mustConstraints.isEmpty());
assertEquals(Optional.of("description of port defined by refine"), refineContainer.getDescription());
assertEquals(Optional.of("port reference added by refine"), refineContainer.getReference());
assertTrue(mustConstraints.isEmpty());
assertEquals(Optional.of("description of port defined by refine"), refineContainer.getDescription());
assertEquals(Optional.of("port reference added by refine"), refineContainer.getReference());
assertFalse(refineList.isConfiguration());
final ElementCountConstraint constraint = refineList.getElementCountConstraint().get();
assertFalse(refineList.isConfiguration());
final ElementCountConstraint constraint = refineList.getElementCountConstraint().get();
@Test
public void testGrouping() {
final Module testModule = TestUtils.findModule(ctx, "baz").get();
@Test
public void testGrouping() {
final Module testModule = TestUtils.findModule(ctx, "baz").get();
assertEquals(1, groupings.size());
final GroupingDefinition grouping = groupings.iterator().next();
assertEquals(1, groupings.size());
final GroupingDefinition grouping = groupings.iterator().next();
assertEquals(1, groupings.size());
final GroupingDefinition grouping = groupings.iterator().next();
assertEquals(1, groupings.size());
final GroupingDefinition grouping = groupings.iterator().next();
foo.getQNameModule(), "data"));
assertNotNull(data_u);
assertTrue(data_u.isAddedByUses());
foo.getQNameModule(), "data"));
assertNotNull(data_u);
assertTrue(data_u.isAddedByUses());
baz.getQNameModule(), "data"));
assertNotNull(data_g);
assertFalse(data_g.isAddedByUses());
baz.getQNameModule(), "data"));
assertNotNull(data_g);
assertFalse(data_g.isAddedByUses());
assertEquals(addresses_g, SchemaNodeUtils.getRootOriginalIfPossible(addresses_u));
// grouping defined by 'uses'
assertEquals(addresses_g, SchemaNodeUtils.getRootOriginalIfPossible(addresses_u));
// grouping defined by 'uses'
- final Set<GroupingDefinition> groupings_u = destination.getGroupings();
- assertEquals(1, groupings_u.size());
- final GroupingDefinition grouping_u = groupings_u.iterator().next();
- TestUtils.checkIsAddedByUses(grouping_u, true);
+ final Collection<? extends GroupingDefinition> groupings_u = destination.getGroupings();
+ assertEquals(0, groupings_u.size());
assertEquals(1, groupings_g.size());
final GroupingDefinition grouping_g = groupings_g.iterator().next();
TestUtils.checkIsAddedByUses(grouping_g, false);
assertEquals(1, groupings_g.size());
final GroupingDefinition grouping_g = groupings_g.iterator().next();
TestUtils.checkIsAddedByUses(grouping_g, false);
assertEquals(1, groupings.size());
final GroupingDefinition grouping = groupings.iterator().next();
// check uses
assertEquals(1, groupings.size());
final GroupingDefinition grouping = groupings.iterator().next();
// check uses
baz.getQNameModule(), "data"));
assertNotNull(data_g);
assertFalse(data_g.isAddedByUses());
baz.getQNameModule(), "data"));
assertNotNull(data_g);
assertFalse(data_g.isAddedByUses());
assertNotNull(how_u);
TestUtils.checkIsAddedByUses(how_u, true);
assertFalse(how_u.isAugmenting());
assertNotNull(how_u);
TestUtils.checkIsAddedByUses(how_u, true);
assertFalse(how_u.isAugmenting());
assertFalse(interval.isAugmenting());
final LeafSchemaNode name = (LeafSchemaNode) interval.getDataChildByName(QName.create(foo.getQNameModule(),
"name"));
assertFalse(interval.isAugmenting());
final LeafSchemaNode name = (LeafSchemaNode) interval.getDataChildByName(QName.create(foo.getQNameModule(),
"name"));
assertEquals(addresses_g, SchemaNodeUtils.getRootOriginalIfPossible(addresses_u));
// grouping defined by 'uses'
assertEquals(addresses_g, SchemaNodeUtils.getRootOriginalIfPossible(addresses_u));
// grouping defined by 'uses'
- final Set<GroupingDefinition> groupings_u = foo.getGroupings();
- assertEquals(1, groupings_u.size());
- final GroupingDefinition grouping_u = groupings_u.iterator().next();
- TestUtils.checkIsAddedByUses(grouping_u, true);
+ final Collection<? extends GroupingDefinition> groupings_u = foo.getGroupings();
+ assertEquals(0, groupings_u.size());
assertEquals(1, groupings_g.size());
final GroupingDefinition grouping_g = groupings_g.iterator().next();
TestUtils.checkIsAddedByUses(grouping_g, false);
assertEquals(1, groupings_g.size());
final GroupingDefinition grouping_g = groupings_g.iterator().next();
TestUtils.checkIsAddedByUses(grouping_g, false);
assertFalse(node_g.isAddedByUses());
assertFalse(node_u.equals(node_g));
final UsesNode un = uses.iterator().next();
assertFalse(node_g.isAddedByUses());
assertFalse(node_u.equals(node_g));
final UsesNode un = uses.iterator().next();
assertEquals(1, usesAugments.size());
final AugmentationSchemaNode augment = usesAugments.iterator().next();
assertEquals(Optional.of("inner augment"), augment.getDescription());
assertEquals(1, usesAugments.size());
final AugmentationSchemaNode augment = usesAugments.iterator().next();
assertEquals(Optional.of("inner augment"), augment.getDescription());
assertEquals(1, children.size());
final DataSchemaNode leaf = children.iterator().next();
assertTrue(leaf instanceof LeafSchemaNode);
assertEquals(1, children.size());
final DataSchemaNode leaf = children.iterator().next();
assertTrue(leaf instanceof LeafSchemaNode);
assertEquals(1, ctx.getModules().size());
final Module testModule = TestUtils.findModule(ctx, "cascade-uses").get();
assertEquals(1, ctx.getModules().size());
final Module testModule = TestUtils.findModule(ctx, "cascade-uses").get();
assertEquals(7, childNodes.size());
final LeafSchemaNode leafGroupingU = (LeafSchemaNode) gu.getDataChildByName(QName.create(
assertEquals(7, childNodes.size());
final LeafSchemaNode leafGroupingU = (LeafSchemaNode) gu.getDataChildByName(QName.create(
.getDataChildByName(QName.create(foo.getQNameModule(), "my-leaf"));
TypeDefinition<?> impType = null;
.getDataChildByName(QName.create(foo.getQNameModule(), "my-leaf"));
TypeDefinition<?> impType = null;