Ranides Atterwim il y a 10 ans
Parent
commit
1d8d619d0a

+ 34 - 1
assira/src/test/java/net/ranides/assira/xml/impl/CElementsTest.java

@@ -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;
@@ -17,6 +18,7 @@ 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.xml.XMLElements;
 import org.junit.Test;
 
 /**
@@ -41,7 +43,6 @@ public class CElementsTest {
         
         Iterator<String> i = IteratorUtils.map(doc.find("item").iterator(), n -> n.attr("title").content());
         IteratorTester.basicIterator(i, 0, ITEMS);
-
     }
     
     @Test
@@ -72,4 +73,36 @@ public class CElementsTest {
         assertEquals("012", doc.find("data").text());
     }
     
+    @Test
+    public void testConcat() {
+        XMLElement doc = $(new File("src/test/resources/eclipse/cheatsheet.xml"));
+        XMLElements a = doc.find("? //item/@title");
+        XMLElements b = doc.find("data");
+        List<String> exp1 = new ArrayList<>();
+        exp1.addAll(Arrays.asList(ITEMS));
+        exp1.addAll(Arrays.asList("0","1","2"));
+        assertEquals(exp1, a.concat(b).texts());
+    }
+    
+    @Test
+    public void testFilter() {
+        XMLElement doc = $(new File("src/test/resources/eclipse/cheatsheet.xml"));
+        
+        List<String> exp1 = Arrays.asList("Open the Task List view", "Create a new Query", "Setup the query");
+        List<String> exp2 = Arrays.asList("Setup Task Repository");
+        
+        assertEquals(exp1, doc.find("item").filter("[skip='false']").attrs("title").texts());
+        assertEquals(exp2, doc.find("item").filter("[skip='true']").attrs("title").texts());
+        
+        assertEquals(exp1, doc.find("item").filter(n -> n.node().attr("skip").content().equals("false")).attrs("title").texts());
+        assertEquals(exp2, doc.find("item").filter(n -> n.node().attr("skip").content().equals("true")).attrs("title").texts());
+        
+        assertEquals(exp2, doc.find("item").discard("[skip='false']").attrs("title").texts());
+        assertEquals(exp1, doc.find("item").discard("[skip='true']").attrs("title").texts());
+        
+        assertEquals(exp2, doc.find("item").discard(n -> n.node().attr("skip").content().equals("false")).attrs("title").texts());
+        assertEquals(exp1, doc.find("item").discard(n -> n.node().attr("skip").content().equals("true")).attrs("title").texts());
+        
+    }
+    
 }