|
|
@@ -7,6 +7,7 @@
|
|
|
package net.ranides.assira.xml.impl;
|
|
|
|
|
|
import java.io.File;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
@@ -14,74 +15,12 @@ import net.ranides.assira.collection.iterators.IteratorUtils;
|
|
|
import net.ranides.assira.collection.lists.ListUtils;
|
|
|
import net.ranides.assira.collection.suite.IteratorTester;
|
|
|
import net.ranides.assira.xml.XMLElement;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
import static net.ranides.assira.junit.NewAssert.*;
|
|
|
import net.ranides.assira.text.StringUtils;
|
|
|
import net.ranides.assira.TestFiles;
|
|
|
+import net.ranides.assira.xml.XMLElements;
|
|
|
import org.junit.Test;
|
|
|
import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
-import static net.ranides.assira.xml.XMLQuery.$;
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
@@ -93,7 +32,7 @@ public class CElementsTest {
|
|
|
"ranides", "admin", "guest", "owner", "saren"
|
|
|
};
|
|
|
|
|
|
- private static final String[] USERS = new String[]{
|
|
|
+ private static final String[] IDS = new String[]{
|
|
|
"101", "102", "103", "104", "105"
|
|
|
};
|
|
|
|
|
|
@@ -107,7 +46,7 @@ public class CElementsTest {
|
|
|
IteratorTester.basicIterator(i1, 0, LOGINS);
|
|
|
|
|
|
Iterator<String> i2 = IteratorUtils.map(doc.find("user").iterator(), n -> n.attr("id").text());
|
|
|
- IteratorTester.basicIterator(i2, 0, USERS);
|
|
|
+ IteratorTester.basicIterator(i2, 0, IDS);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
@@ -122,10 +61,10 @@ public class CElementsTest {
|
|
|
public void testTextContent() {
|
|
|
XMLElement doc = $(TestFiles.XML_INPUT);
|
|
|
|
|
|
- assertEquals(Arrays.asList(USERS), doc.find("? //user/@id").contents());
|
|
|
- assertEquals(Arrays.asList(USERS), doc.find("? //user/@id").texts());
|
|
|
- assertEquals(StringUtils.join(USERS,""), doc.find("? //user/@id").content());
|
|
|
- assertEquals(StringUtils.join(USERS,""), doc.find("? //user/@id").text());
|
|
|
+ assertEquals(Arrays.asList(IDS), doc.find("? //user/@id").contents());
|
|
|
+ assertEquals(Arrays.asList(IDS), doc.find("? //user/@id").texts());
|
|
|
+ assertEquals(StringUtils.join(IDS,""), doc.find("? //user/@id").content());
|
|
|
+ assertEquals(StringUtils.join(IDS,""), doc.find("? //user/@id").text());
|
|
|
|
|
|
assertEquals(Arrays.asList(null,null,null,null,null), doc.find("? //user/login").contents());
|
|
|
assertEquals(Arrays.asList(LOGINS), doc.find("? //user/login").texts());
|
|
|
@@ -133,4 +72,37 @@ public class CElementsTest {
|
|
|
assertEquals(StringUtils.join(LOGINS,""), doc.find("? //user/login").text());
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void testConcat() {
|
|
|
+ XMLElement doc = $(TestFiles.XML_INPUT);
|
|
|
+ XMLElements a = doc.find("? //user/login");
|
|
|
+ XMLElements b = doc.find("? //user/@id");
|
|
|
+
|
|
|
+ List<String> exp1 = new ArrayList<>();
|
|
|
+ exp1.addAll(Arrays.asList(LOGINS));
|
|
|
+ exp1.addAll(Arrays.asList(IDS));
|
|
|
+ assertEquals(exp1, a.concat(b).texts());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testFilter() {
|
|
|
+ XMLElement doc = $(TestFiles.XML_INPUT);
|
|
|
+
|
|
|
+ List<String> exp1 = Arrays.asList("ranides", "admin", "guest", "owner", "saren");
|
|
|
+ List<String> exp2 = Arrays.asList("ranides", "admin", "saren");
|
|
|
+ List<String> exp3 = Arrays.asList("guest", "owner");
|
|
|
+
|
|
|
+ assertEquals(exp1, doc.find("user login").texts());
|
|
|
+ assertEquals(exp2, doc.find("user[active='true'] login").texts());
|
|
|
+ assertEquals(exp3, doc.find("user[active='false'] login").texts());
|
|
|
+
|
|
|
+ assertEquals(exp1, doc.find("user").find("login").texts());
|
|
|
+ assertEquals(exp2, doc.find("user").filter("[active='true']").find("login").texts());
|
|
|
+ assertEquals(exp3, doc.find("user").filter("[active='false']").find("login").texts());
|
|
|
+
|
|
|
+ assertEquals(exp1, doc.find("user").filter(n -> true).find("login").texts());
|
|
|
+ assertEquals(exp2, doc.find("user").filter(n -> n.node().attr("active").content().equals("true")).find("login").texts());
|
|
|
+ assertEquals(exp3, doc.find("user").filter(n -> !n.node().attr("active").content().equals("true")).find("login").texts());
|
|
|
+ }
|
|
|
+
|
|
|
}
|