2 * Copyright (c) 2015 Cisco Systems, Inc. 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
9 package org.opendaylight.yangtools.yang.data.jaxen;
11 import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapEntry;
12 import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapEntryBuilder;
13 import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.mapNodeBuilder;
16 import java.io.FileNotFoundException;
17 import java.io.IOException;
19 import java.util.ArrayList;
20 import java.util.List;
21 import org.opendaylight.yangtools.yang.common.QName;
22 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
23 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
24 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
25 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
26 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
27 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
29 final class TestUtils {
31 private static final QName ROOT_QNAME = QName.create("urn:opendaylight.test2", "2015-08-08", "root");
32 private static final QName LIST_A_QNAME = QName.create(ROOT_QNAME, "list-a");
33 private static final QName LIST_B_QNAME = QName.create(ROOT_QNAME, "list-b");
34 private static final QName LEAF_A_QNAME = QName.create(ROOT_QNAME, "leaf-a");
35 private static final QName LEAF_B_QNAME = QName.create(ROOT_QNAME, "leaf-b");
36 private static final QName LEAF_C_QNAME = QName.create(ROOT_QNAME, "leaf-c");
37 private static final QName LEAF_D_QNAME = QName.create(ROOT_QNAME, "leaf-d");
38 private static final QName CONTAINER_A_QNAME = QName.create(ROOT_QNAME, "container-a");
39 private static final QName CONTAINER_B_QNAME = QName.create(ROOT_QNAME, "container-b");
40 private static final String FOO = "foo";
41 private static final String BAR = "bar";
42 private static final String WAZ = "waz";
43 private static final String ONE = "one";
44 private static final String TWO = "two";
45 private static final String THREE = "three";
50 public static SchemaContext loadSchemaContext(final URI resourceDirectory) throws IOException {
51 final YangParserImpl parser = new YangParserImpl();
52 final File testDir = new File(resourceDirectory);
53 final String[] fileList = testDir.list();
54 final List<File> testFiles = new ArrayList<>();
55 if (fileList == null) {
56 throw new FileNotFoundException(resourceDirectory.toString());
58 for (String fileName : fileList) {
59 testFiles.add(new File(testDir, fileName));
61 SchemaContext ctx = parser.parseFiles(testFiles);
66 * Returns a test document
86 public static NormalizedNode<?, ?> createNormalizedNodes() {
87 return ImmutableContainerNodeBuilder
89 .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(ROOT_QNAME))
90 .withChild(ImmutableNodes.leafNode(LEAF_C_QNAME, WAZ))
91 .withChild(mapNodeBuilder(LIST_A_QNAME)
92 .withChild(mapEntry(LIST_A_QNAME, LEAF_A_QNAME, FOO))
93 .withChild(mapEntryBuilder(LIST_A_QNAME, LEAF_A_QNAME, BAR)
94 .withChild(mapNodeBuilder(LIST_B_QNAME)
95 .withChild(mapEntry(LIST_B_QNAME, LEAF_B_QNAME, ONE))
96 .withChild(mapEntry(LIST_B_QNAME, LEAF_B_QNAME, TWO))
100 .withChild(ImmutableContainerNodeBuilder.create()
101 .withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(CONTAINER_A_QNAME))
102 .withChild(ImmutableContainerNodeBuilder.create().
103 withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier
105 .withChild(ImmutableNodes.leafNode(LEAF_D_QNAME, THREE))