+++ /dev/null
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. 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.yangtools.yang.stmt;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Set;
-import org.junit.Test;
-import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
-import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
-
-public class Bug4456Test {
- @Test
- public void test() throws Exception {
- SchemaContext schema = StmtTestUtils.parseYangSources("/bugs/bug4456");
- assertNotNull(schema);
-
- Set<Module> modules = schema.findModules(URI.create("foo"));
- assertEquals(1, modules.size());
- Module moduleFoo = modules.iterator().next();
-
- List<ExtensionDefinition> extensionSchemaNodes = moduleFoo.getExtensionSchemaNodes();
- assertEquals(5, extensionSchemaNodes.size());
- for (ExtensionDefinition extensionDefinition : extensionSchemaNodes) {
-
- List<UnknownSchemaNode> unknownSchemaNodes = extensionDefinition.getUnknownSchemaNodes();
- assertEquals(1, unknownSchemaNodes.size());
- UnknownSchemaNode unknownSchemaNode = unknownSchemaNodes.iterator().next();
- String unknownNodeExtensionDefName = unknownSchemaNode.getExtensionDefinition().getQName().getLocalName();
-
- List<UnknownSchemaNode> subUnknownSchemaNodes = unknownSchemaNode.getUnknownSchemaNodes();
- assertEquals(1, subUnknownSchemaNodes.size());
- UnknownSchemaNode subUnknownSchemaNode = subUnknownSchemaNodes.iterator().next();
- String subUnknownNodeExtensionDefName = subUnknownSchemaNode.getExtensionDefinition().getQName()
- .getLocalName();
-
- switch (extensionDefinition.getQName().getLocalName()) {
- case "a":
- assertEquals("b", unknownNodeExtensionDefName);
- assertEquals("c", subUnknownNodeExtensionDefName);
- break;
- case "b":
- assertEquals("c", unknownNodeExtensionDefName);
- assertEquals("a", subUnknownNodeExtensionDefName);
- break;
- case "c":
- assertEquals("a", unknownNodeExtensionDefName);
- assertEquals("b", subUnknownNodeExtensionDefName);
- break;
- case "r":
- assertEquals("r", unknownNodeExtensionDefName);
- assertEquals("r2", subUnknownNodeExtensionDefName);
- break;
- case "r2":
- assertEquals("r2", unknownNodeExtensionDefName);
- assertEquals("r", subUnknownNodeExtensionDefName);
- break;
- default:
- fail("Unexpected extension definition");
- }
- }
- }
-}