import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import java.io.FileNotFoundException;
+import java.io.IOException;
import java.net.URI;
-import java.text.DateFormat;
-import java.text.ParseException;
+import java.net.URISyntaxException;
import java.util.ArrayDeque;
import java.util.Collection;
-import java.util.Date;
import java.util.Deque;
import java.util.Set;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
+import org.opendaylight.yangtools.yang.common.QNameModule;
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.ListSchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
import org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition;
+import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
public class UsesAugmentTest {
- private static final URI UG_NS = URI.create("urn:opendaylight:params:xml:ns:yang:uses-grouping");
- private static final URI GD_NS = URI.create("urn:opendaylight:params:xml:ns:yang:grouping-definitions");
- private Date UG_REV;
- private Date GD_REV;
- private Set<Module> modules;
+ private static final QNameModule UG = QNameModule.create(
+ URI.create("urn:opendaylight:params:xml:ns:yang:uses-grouping"), QName.parseRevision("2013-07-30"));
+ private static final QNameModule GD = QNameModule.create(
+ URI.create("urn:opendaylight:params:xml:ns:yang:grouping-definitions"), QName.parseRevision("2013-09-04"));
+
+ private SchemaContext context;
@Before
- public void init() throws FileNotFoundException, ParseException {
- final DateFormat simpleDateFormat = SimpleDateFormatUtil.getRevisionFormat();
- UG_REV = simpleDateFormat.parse("2013-07-30");
- GD_REV = simpleDateFormat.parse("2013-09-04");
+ public void init() throws ReactorException, IOException, YangSyntaxErrorException, URISyntaxException {
+ context = TestUtils.loadModules(getClass().getResource("/grouping-test").toURI());
}
/**
*/
@Test
public void testAugmentInUses() throws Exception {
- modules = TestUtils.loadModules(getClass().getResource("/grouping-test").toURI());
- final Module testModule = TestUtils.findModule(modules, "uses-grouping");
+ final Module testModule = TestUtils.findModule(context, "uses-grouping").get();
final Deque<QName> path = new ArrayDeque<>();
assertEquals(1, notifications.size());
final NotificationDefinition pcreq = notifications.iterator().next();
assertNotNull(pcreq);
- QName expectedQName = QName.create(UG_NS, UG_REV, "pcreq");
+ QName expectedQName = QName.create(UG, "pcreq");
path.offer(expectedQName);
SchemaPath expectedPath = SchemaPath.create(path, true);
assertEquals(expectedPath, pcreq.getPath());
LeafSchemaNode version = (LeafSchemaNode) pcreq.getDataChildByName(QName.create(testModule.getQNameModule(),
"version"));
assertNotNull(version);
- expectedQName = QName.create(UG_NS, UG_REV, "version");
+ expectedQName = QName.create(UG, "version");
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
assertEquals(expectedPath, version.getPath());
- expectedQName = QName.create(UG_NS, UG_REV, "version");
+ expectedQName = QName.create(UG, "version");
path.offer(expectedQName);
expectedPath = SchemaPath.create(true, pcreq.getQName(), expectedQName);
assertEquals(expectedPath, version.getType().getPath());
LeafSchemaNode type = (LeafSchemaNode) pcreq.getDataChildByName(QName.create(testModule.getQNameModule(),
"type"));
assertNotNull(type);
- expectedQName = QName.create(UG_NS, UG_REV, "type");
+ expectedQName = QName.create(UG, "type");
assertTrue(type.isAddedByUses());
path.pollLast();
path.pollLast();
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
assertEquals(expectedPath, type.getPath());
- expectedQName = QName.create(GD_NS, GD_REV, "int-ext");
+ expectedQName = QName.create(GD, "int-ext");
path.offer(expectedQName);
expectedPath = SchemaPath.create(true, expectedQName);
assertEquals(expectedPath, type.getType().getPath());
final ListSchemaNode requests = (ListSchemaNode) pcreq.getDataChildByName(QName.create(
testModule.getQNameModule(), "requests"));
assertNotNull(requests);
- expectedQName = QName.create(UG_NS, UG_REV, "requests");
+ expectedQName = QName.create(UG, "requests");
assertEquals(expectedQName, requests.getQName());
path.pollLast();
path.pollLast();
final ContainerSchemaNode rp = (ContainerSchemaNode) requests.getDataChildByName(QName.create(
testModule.getQNameModule(), "rp"));
assertNotNull(rp);
- expectedQName = QName.create(UG_NS, UG_REV, "rp");
+ expectedQName = QName.create(UG, "rp");
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
assertEquals(expectedPath, rp.getPath());
LeafSchemaNode processingRule = (LeafSchemaNode) rp.getDataChildByName(QName.create(
testModule.getQNameModule(), "processing-rule"));
assertNotNull(processingRule);
- expectedQName = QName.create(UG_NS, UG_REV, "processing-rule");
+ expectedQName = QName.create(UG, "processing-rule");
assertEquals(expectedQName, processingRule.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
LeafSchemaNode ignore = (LeafSchemaNode) rp.getDataChildByName(QName.create(testModule.getQNameModule(),
"ignore"));
assertNotNull(ignore);
- expectedQName = QName.create(UG_NS, UG_REV, "ignore");
+ expectedQName = QName.create(UG, "ignore");
assertEquals(expectedQName, ignore.getQName());
path.pollLast();
path.offer(expectedQName);
final LeafSchemaNode priority = (LeafSchemaNode) rp.getDataChildByName(QName.create(
testModule.getQNameModule(), "priority"));
assertNotNull(priority);
- expectedQName = QName.create(UG_NS, UG_REV, "priority");
+ expectedQName = QName.create(UG, "priority");
assertEquals(expectedQName, priority.getQName());
path.pollLast();
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
assertEquals(expectedPath, priority.getPath());
- expectedQName = QName.create(UG_NS, UG_REV, "uint8");
+ expectedQName = QName.create(UG, "uint8");
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
// TODO
ContainerSchemaNode box = (ContainerSchemaNode) rp.getDataChildByName(QName.create(testModule.getQNameModule(),
"box"));
assertNotNull(box);
- expectedQName = QName.create(UG_NS, UG_REV, "box");
+ expectedQName = QName.create(UG, "box");
assertEquals(expectedQName, box.getQName());
path.pollLast();
path.pollLast();
final ContainerSchemaNode order = (ContainerSchemaNode) box.getDataChildByName(QName.create(
testModule.getQNameModule(), "order"));
assertNotNull(order);
- expectedQName = QName.create(UG_NS, UG_REV, "order");
+ expectedQName = QName.create(UG, "order");
assertEquals(expectedQName, order.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
final LeafSchemaNode delete = (LeafSchemaNode) order.getDataChildByName(QName.create(
testModule.getQNameModule(), "delete"));
assertNotNull(delete);
- expectedQName = QName.create(UG_NS, UG_REV, "delete");
+ expectedQName = QName.create(UG, "delete");
assertEquals(expectedQName, delete.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
final LeafSchemaNode setup = (LeafSchemaNode) order.getDataChildByName(QName.create(
testModule.getQNameModule(), "setup"));
assertNotNull(setup);
- expectedQName = QName.create(UG_NS, UG_REV, "setup");
+ expectedQName = QName.create(UG, "setup");
assertEquals(expectedQName, setup.getQName());
path.pollLast();
path.offer(expectedQName);
final ContainerSchemaNode pke = (ContainerSchemaNode) requests.getDataChildByName(QName.create(
testModule.getQNameModule(), "path-key-expansion"));
assertNotNull(pke);
- expectedQName = QName.create(UG_NS, UG_REV, "path-key-expansion");
+ expectedQName = QName.create(UG, "path-key-expansion");
assertEquals(expectedQName, pke.getQName());
path.pollLast();
path.pollLast();
final ContainerSchemaNode pathKey = (ContainerSchemaNode) pke.getDataChildByName(QName.create(
testModule.getQNameModule(), "path-key"));
assertNotNull(pathKey);
- expectedQName = QName.create(UG_NS, UG_REV, "path-key");
+ expectedQName = QName.create(UG, "path-key");
assertEquals(expectedQName, pathKey.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
processingRule = (LeafSchemaNode) pathKey.getDataChildByName(QName.create(testModule.getQNameModule(),
"processing-rule"));
assertNotNull(processingRule);
- expectedQName = QName.create(UG_NS, UG_REV, "processing-rule");
+ expectedQName = QName.create(UG, "processing-rule");
assertEquals(expectedQName, processingRule.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
// * |-- |-- |-- |-- leaf ignore
ignore = (LeafSchemaNode) pathKey.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
assertNotNull(ignore);
- expectedQName = QName.create(UG_NS, UG_REV, "ignore");
+ expectedQName = QName.create(UG, "ignore");
assertEquals(expectedQName, ignore.getQName());
path.pollLast();
path.offer(expectedQName);
final ListSchemaNode pathKeys = (ListSchemaNode) pathKey.getDataChildByName(QName.create(
testModule.getQNameModule(), "path-keys"));
assertNotNull(pathKeys);
- expectedQName = QName.create(UG_NS, UG_REV, "path-keys");
+ expectedQName = QName.create(UG, "path-keys");
assertEquals(expectedQName, pathKeys.getQName());
path.pollLast();
path.offer(expectedQName);
// * |-- |-- |-- |-- |-- leaf version
version = (LeafSchemaNode) pathKeys.getDataChildByName(QName.create(testModule.getQNameModule(), "version"));
assertNotNull(version);
- expectedQName = QName.create(UG_NS, UG_REV, "version");
+ expectedQName = QName.create(UG, "version");
assertEquals(expectedQName, version.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
// * |-- |-- |-- |-- |-- leaf type
type = (LeafSchemaNode) pathKeys.getDataChildByName(QName.create(testModule.getQNameModule(), "type"));
assertNotNull(type);
- expectedQName = QName.create(UG_NS, UG_REV, "type");
+ expectedQName = QName.create(UG, "type");
assertEquals(expectedQName, type.getQName());
path.pollLast();
path.offer(expectedQName);
final ContainerSchemaNode sc = (ContainerSchemaNode) requests.getDataChildByName(QName.create(
testModule.getQNameModule(), "segment-computation"));
assertNotNull(sc);
- expectedQName = QName.create(UG_NS, UG_REV, "segment-computation");
+ expectedQName = QName.create(UG, "segment-computation");
assertEquals(expectedQName, sc.getQName());
path.pollLast();
path.pollLast();
final ContainerSchemaNode p2p = (ContainerSchemaNode) sc.getDataChildByName(QName.create(
testModule.getQNameModule(), "p2p"));
assertNotNull(p2p);
- expectedQName = QName.create(UG_NS, UG_REV, "p2p");
+ expectedQName = QName.create(UG, "p2p");
assertEquals(expectedQName, p2p.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
final ContainerSchemaNode endpoints = (ContainerSchemaNode) p2p.getDataChildByName(QName.create(
testModule.getQNameModule(), "endpoints"));
assertNotNull(endpoints);
- expectedQName = QName.create(UG_NS, UG_REV, "endpoints");
+ expectedQName = QName.create(UG, "endpoints");
assertEquals(expectedQName, endpoints.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
processingRule = (LeafSchemaNode) endpoints.getDataChildByName(QName.create(testModule.getQNameModule(),
"processing-rule"));
assertNotNull(processingRule);
- expectedQName = QName.create(UG_NS, UG_REV, "processing-rule");
+ expectedQName = QName.create(UG, "processing-rule");
assertEquals(expectedQName, processingRule.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
// * |-- |-- |-- |-- |-- leaf ignore
ignore = (LeafSchemaNode) endpoints.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
assertNotNull(ignore);
- expectedQName = QName.create(UG_NS, UG_REV, "ignore");
+ expectedQName = QName.create(UG, "ignore");
assertEquals(expectedQName, ignore.getQName());
path.pollLast();
path.offer(expectedQName);
// * |-- |-- |-- |-- |-- container box
box = (ContainerSchemaNode) endpoints.getDataChildByName(QName.create(testModule.getQNameModule(), "box"));
assertNotNull(box);
- expectedQName = QName.create(UG_NS, UG_REV, "box");
+ expectedQName = QName.create(UG, "box");
assertEquals(expectedQName, box.getQName());
path.pollLast();
path.offer(expectedQName);
final ChoiceSchemaNode af = (ChoiceSchemaNode) endpoints.getDataChildByName(QName.create(
testModule.getQNameModule(), "address-family"));
assertNotNull(af);
- expectedQName = QName.create(UG_NS, UG_REV, "address-family");
+ expectedQName = QName.create(UG, "address-family");
assertEquals(expectedQName, af.getQName());
path.pollLast();
path.offer(expectedQName);
final ContainerSchemaNode reportedRoute = (ContainerSchemaNode) p2p.getDataChildByName(QName.create(
testModule.getQNameModule(), "reported-route"));
assertNotNull(reportedRoute);
- expectedQName = QName.create(UG_NS, UG_REV, "reported-route");
+ expectedQName = QName.create(UG, "reported-route");
assertEquals(expectedQName, reportedRoute.getQName());
path.pollLast();
path.pollLast();
processingRule = (LeafSchemaNode) reportedRoute.getDataChildByName(QName.create(testModule.getQNameModule(),
"processing-rule"));
assertNotNull(processingRule);
- expectedQName = QName.create(UG_NS, UG_REV, "processing-rule");
+ expectedQName = QName.create(UG, "processing-rule");
assertEquals(expectedQName, processingRule.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
// * |-- |-- |-- |-- |-- leaf ignore
ignore = (LeafSchemaNode) reportedRoute.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
assertNotNull(ignore);
- expectedQName = QName.create(UG_NS, UG_REV, "ignore");
+ expectedQName = QName.create(UG, "ignore");
assertEquals(expectedQName, ignore.getQName());
path.pollLast();
path.offer(expectedQName);
final ListSchemaNode subobjects = (ListSchemaNode) reportedRoute.getDataChildByName(QName.create(
testModule.getQNameModule(), "subobjects"));
assertNotNull(subobjects);
- expectedQName = QName.create(UG_NS, UG_REV, "subobjects");
+ expectedQName = QName.create(UG, "subobjects");
assertEquals(expectedQName, subobjects.getQName());
path.pollLast();
path.offer(expectedQName);
ContainerSchemaNode bandwidth = (ContainerSchemaNode) reportedRoute.getDataChildByName(QName.create(
testModule.getQNameModule(), "bandwidth"));
assertNotNull(bandwidth);
- expectedQName = QName.create(UG_NS, UG_REV, "bandwidth");
+ expectedQName = QName.create(UG, "bandwidth");
assertEquals(expectedQName, bandwidth.getQName());
path.pollLast();
path.offer(expectedQName);
bandwidth = (ContainerSchemaNode) p2p
.getDataChildByName(QName.create(testModule.getQNameModule(), "bandwidth"));
assertNotNull(bandwidth);
- expectedQName = QName.create(UG_NS, UG_REV, "bandwidth");
+ expectedQName = QName.create(UG, "bandwidth");
assertEquals(expectedQName, bandwidth.getQName());
path.pollLast();
path.pollLast();
processingRule = (LeafSchemaNode) bandwidth.getDataChildByName(QName.create(testModule.getQNameModule(),
"processing-rule"));
assertNotNull(processingRule);
- expectedQName = QName.create(UG_NS, UG_REV, "processing-rule");
+ expectedQName = QName.create(UG, "processing-rule");
assertEquals(expectedQName, processingRule.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
// * |-- |-- |-- |-- |-- leaf ignore
ignore = (LeafSchemaNode) bandwidth.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
assertNotNull(ignore);
- expectedQName = QName.create(UG_NS, UG_REV, "ignore");
+ expectedQName = QName.create(UG, "ignore");
assertEquals(expectedQName, ignore.getQName());
path.pollLast();
path.offer(expectedQName);
final ContainerSchemaNode bandwidthInner = (ContainerSchemaNode) bandwidth.getDataChildByName(QName.create(
testModule.getQNameModule(), "bandwidth"));
assertNotNull(bandwidthInner);
- expectedQName = QName.create(UG_NS, UG_REV, "bandwidth");
+ expectedQName = QName.create(UG, "bandwidth");
assertEquals(expectedQName, bandwidth.getQName());
path.pollLast();
path.offer(expectedQName);
final ListSchemaNode svec = (ListSchemaNode) pcreq.getDataChildByName(QName.create(testModule.getQNameModule(),
"svec"));
assertNotNull(svec);
- expectedQName = QName.create(UG_NS, UG_REV, "svec");
+ expectedQName = QName.create(UG, "svec");
assertEquals(expectedQName, svec.getQName());
path.pollLast();
path.pollLast();
final LeafSchemaNode linkDiverse = (LeafSchemaNode) svec.getDataChildByName(QName.create(
testModule.getQNameModule(), "link-diverse"));
assertNotNull(linkDiverse);
- expectedQName = QName.create(UG_NS, UG_REV, "link-diverse");
+ expectedQName = QName.create(UG, "link-diverse");
assertEquals(expectedQName, linkDiverse.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
processingRule = (LeafSchemaNode) svec.getDataChildByName(QName.create(testModule.getQNameModule(),
"processing-rule"));
assertNotNull(processingRule);
- expectedQName = QName.create(UG_NS, UG_REV, "processing-rule");
+ expectedQName = QName.create(UG, "processing-rule");
assertEquals(expectedQName, processingRule.getQName());
path.pollLast();
path.offer(expectedQName);
// * |-- |-- leaf ignore
ignore = (LeafSchemaNode) svec.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
assertNotNull(ignore);
- expectedQName = QName.create(UG_NS, UG_REV, "ignore");
+ expectedQName = QName.create(UG, "ignore");
assertEquals(expectedQName, ignore.getQName());
path.pollLast();
path.offer(expectedQName);
final ListSchemaNode metric = (ListSchemaNode) svec.getDataChildByName(QName.create(
testModule.getQNameModule(), "metric"));
assertNotNull(metric);
- expectedQName = QName.create(UG_NS, UG_REV, "metric");
+ expectedQName = QName.create(UG, "metric");
assertEquals(expectedQName, metric.getQName());
path.pollLast();
path.offer(expectedQName);
final LeafSchemaNode metricType = (LeafSchemaNode) metric.getDataChildByName(QName.create(
testModule.getQNameModule(), "metric-type"));
assertNotNull(metricType);
- expectedQName = QName.create(UG_NS, UG_REV, "metric-type");
+ expectedQName = QName.create(UG, "metric-type");
assertEquals(expectedQName, metricType.getQName());
path.offer(expectedQName);
expectedPath = SchemaPath.create(path, true);
// * |-- |-- |-- box
box = (ContainerSchemaNode) metric.getDataChildByName(QName.create(testModule.getQNameModule(), "box"));
assertNotNull(box);
- expectedQName = QName.create(UG_NS, UG_REV, "box");
+ expectedQName = QName.create(UG, "box");
assertEquals(expectedQName, box.getQName());
path.pollLast();
path.offer(expectedQName);
processingRule = (LeafSchemaNode) metric.getDataChildByName(QName.create(testModule.getQNameModule(),
"processing-rule"));
assertNotNull(processingRule);
- expectedQName = QName.create(UG_NS, UG_REV, "processing-rule");
+ expectedQName = QName.create(UG, "processing-rule");
assertEquals(expectedQName, processingRule.getQName());
path.pollLast();
path.offer(expectedQName);
// * |-- |-- |-- leaf ignore
ignore = (LeafSchemaNode) metric.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
assertNotNull(ignore);
- expectedQName = QName.create(UG_NS, UG_REV, "ignore");
+ expectedQName = QName.create(UG, "ignore");
assertEquals(expectedQName, ignore.getQName());
path.pollLast();
path.offer(expectedQName);
@Test
public void testTypedefs() throws Exception {
- modules = TestUtils.loadModules(getClass().getResource("/grouping-test").toURI());
- final Module testModule = TestUtils.findModule(modules, "grouping-definitions");
+ final Module testModule = TestUtils.findModule(context, "grouping-definitions").get();
final Set<TypeDefinition<?>> types = testModule.getTypeDefinitions();
TypeDefinition<?> intExt = null;
}
assertNotNull(intExt);
- SchemaPath expectedPath = SchemaPath.create(true, QName.create(GD_NS, GD_REV, "int-ext"));
+ SchemaPath expectedPath = SchemaPath.create(true, QName.create(GD, "int-ext"));
assertEquals(expectedPath, intExt.getPath());
final UnionTypeDefinition union = (UnionTypeDefinition) intExt.getBaseType();
assertNotNull(uint8);
assertNotNull(pv);
- expectedPath = SchemaPath.create(true, QName.create(GD_NS, GD_REV, "int-ext"),
- QName.create(GD_NS, GD_REV, "union"));
+ expectedPath = SchemaPath.create(true, QName.create(GD, "int-ext"), QName.create(GD, "union"));
assertEquals(expectedPath, union.getPath());
}