*/
package org.opendaylight.yangtools.yang.data.api;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+
import com.google.common.collect.UnmodifiableIterator;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.text.ParseException;
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Nonnull;
import org.junit.Test;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
public class PathArgumentListTest {
fail();
} catch (UnsupportedOperationException e) {
}
+ }
+
+ @Test
+ public void testPathArgument() throws URISyntaxException, ParseException {
+ final QNameModule qNameModule = QNameModule.create(new URI("urn:opendaylight.test2"),
+ SimpleDateFormatUtil.getRevisionFormat().parse("2015-08-08"));
+ final QName qNameRoot = QName.create(qNameModule, "root");
+ final QName qNameList = QName.create(qNameModule, "list");
+ final QName qNameLeaf = QName.create(qNameModule, "leaf-a");
+ final Map<QName, Object> entryLeaf = new HashMap<>();
+ entryLeaf.put(qNameList, "leaf");
+ final YangInstanceIdentifier.NodeIdentifierWithPredicates nodeIdentifierWithPredicates = new YangInstanceIdentifier
+ .NodeIdentifierWithPredicates(qNameList , entryLeaf);
+ final YangInstanceIdentifier yangInstanceIdentifier = YangInstanceIdentifier.of(qNameRoot).node(qNameList)
+ .node(nodeIdentifierWithPredicates).node(qNameLeaf);
+ final PathArgument pathArgumentToRoot = yangInstanceIdentifier.getAncestor(1).getPathArguments().iterator()
+ .next();
+ final StackedPathArguments stackedPathArguments = (StackedPathArguments)yangInstanceIdentifier.getPathArguments();
+ assertTrue(yangInstanceIdentifier.pathArgumentsEqual(yangInstanceIdentifier));
+ assertEquals(pathArgumentToRoot, stackedPathArguments.get(0));
+ assertEquals(4, stackedPathArguments.size());
+ assertEquals(true, stackedPathArguments.contains(pathArgumentToRoot));
+ assertEquals(0, stackedPathArguments.indexOf(pathArgumentToRoot));
+ assertEquals(0, stackedPathArguments.lastIndexOf(pathArgumentToRoot));
+
+ final StackedReversePathArguments stackedReversePathArguments = (StackedReversePathArguments)yangInstanceIdentifier
+ .getReversePathArguments();
+ final QName rootQname = pathArgumentToRoot.getNodeType();
+ final QName leafQname = stackedReversePathArguments.get(0).getNodeType();
+ assertEquals(qNameRoot, rootQname);
+ assertEquals(qNameLeaf, leafQname);
+ assertEquals(4, stackedReversePathArguments.size());
+ assertEquals(true, stackedReversePathArguments.contains(pathArgumentToRoot));
+ assertEquals(3, stackedReversePathArguments.indexOf(pathArgumentToRoot));
+ assertEquals(3, stackedReversePathArguments.lastIndexOf(pathArgumentToRoot));
+ final StackedYangInstanceIdentifier stackedYangInstanceIdentifier = (StackedYangInstanceIdentifier)
+ yangInstanceIdentifier;
+ final StackedYangInstanceIdentifier stackedYangInstanceIdentifierClone = stackedYangInstanceIdentifier.clone();
+ final YangInstanceIdentifier yangInstanceIdentifier1 = stackedYangInstanceIdentifier.getAncestor(4);
+ assertEquals(stackedYangInstanceIdentifier, stackedYangInstanceIdentifierClone);
+ assertEquals(stackedReversePathArguments, yangInstanceIdentifier1.getReversePathArguments());
+
+ try {
+ stackedYangInstanceIdentifier.getAncestor(12);
+ fail();
+ } catch (IllegalArgumentException e) {
+ }
}
-}
+}
\ No newline at end of file