changeset 7:47eb9ee2a1db

add PersonIdsTest and Method add isActive Test and Method
author one
date Sat, 25 Oct 2014 07:48:02 +0900
parents 109d552e4bb6
children 378bfec11a8d
files src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/loadXml.java src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/PersonIdsTest.java src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/Person_idsTest.java src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/isActiveTest.java
diffstat 5 files changed, 201 insertions(+), 54 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/JuGrix.java	Sat Oct 25 07:48:02 2014 +0900
@@ -0,0 +1,86 @@
+package jp.ac.u_ryukyu.cr.ie.tatsuki.bbs;
+
+import java.util.Iterator;
+
+import fj.data.List;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
+
+public class JuGrix {
+	
+	public boolean isActive(JungleTree tree, String id){
+		
+		InterfaceTraverser ifTraverser = tree.getTraverser();
+		Iterator<Pair<TreeNode,NodePath>> pairIterator = ifTraverser.find(
+				(TreeNode node) -> {
+					String personId = node.getAttributes().getString("id");
+					if (personId == null)
+						return false;
+					if (personId.equals(id)) 
+						return true;
+					return false;
+				}
+				,"id",id);
+
+		if (pairIterator.hasNext())
+			return true;
+		return false;
+		
+	}
+	
+	public Iterator<String> personIds(JungleTree tree , String id){
+		
+		List<String> names = personIdsSearch(tree, id);
+		return names.iterator();
+	}
+	
+	public Iterator<String> personIds(JungleTree tree , List<String> ids){
+		
+		List<String> personIds = List.nil();
+		
+		for (String id : ids) {
+		personIds = personIds.append(personIdsSearch(tree, id));
+		}
+		return personIds.iterator();
+	}
+	
+	private List<String> personIdsSearch(JungleTree tree, String id) {
+		InterfaceTraverser ifTraverser = tree.getTraverser();
+		Iterator<Pair<TreeNode,NodePath>> pairPersonIterator = ifTraverser.find(
+				(TreeNode node) -> {
+					String personId = node.getAttributes().getString("element");
+					if (personId == null)
+						return false;
+					if (personId.equals("Person")) 
+						return true;
+					return false;
+				}
+				,"element","Person");
+		
+		List<String> names = List.nil();
+		for (;pairPersonIterator.hasNext();) {
+			
+			Pair<TreeNode, NodePath> pairPerson = pairPersonIterator.next();
+			Iterator<Pair<TreeNode,NodePath>> pairIdIterator = ifTraverser.find(
+					(TreeNode node) -> {
+						String personId = node.getAttributes().getString("text");
+						if (personId == null)
+							return false;
+						if (personId.equals(id)) 
+							return true;
+						return false;
+					}
+					,pairPerson.left(),"text",id);
+			if (pairIdIterator.hasNext())
+				names = names.cons(pairPerson.left().getAttributes().getString("id"));
+			
+		}
+		return names;
+	}
+	
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/cr/ie/tatsuki/bbs/loadXml.java	Sat Oct 25 07:48:02 2014 +0900
@@ -0,0 +1,38 @@
+package jp.ac.u_ryukyu.cr.ie.tatsuki.bbs;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
+
+import org.xml.sax.SAXException;
+
+import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlHandler;
+
+public class loadXml {
+
+	public JungleTree loadTestData(String xmlName)
+			throws ParserConfigurationException, SAXException, IOException,
+			FileNotFoundException {
+
+		SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
+		SAXParser saxParser = saxParserFactory.newSAXParser();
+		Jungle jungle = new DefaultJungle(null, "jungle",
+				new DefaultTreeEditor(new DefaultTraverser()));
+		JungleTree tree = jungle.createNewTree(xmlName);
+		ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree);
+		saxParser.parse(new FileInputStream("xml/" + xmlName), readXmlHandler);
+		JungleTree newTree = readXmlHandler.getTree();
+		return newTree;
+
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/PersonIdsTest.java	Sat Oct 25 07:48:02 2014 +0900
@@ -0,0 +1,31 @@
+package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest;
+
+import java.util.Iterator;
+
+import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.JuGrix;
+import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.loadXml;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+public class PersonIdsTest {
+
+	@Test
+	public void PersonIdsTest() {
+		try {
+			loadXml reader = new loadXml();
+			JungleTree tree = reader.loadTestData("Person.xml");
+			JuGrix jugrix = new JuGrix();
+			Iterator<String> ids = jugrix.personIds(tree, "o:2");
+
+			ids.hasNext();
+			Assert.assertEquals(ids.next(),"p:45");
+			ids.hasNext();
+			Assert.assertEquals(ids.next(),"p:1");
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
--- a/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/Person_idsTest.java	Sat Oct 25 04:53:41 2014 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest;
-
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.Iterator;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import jp.ac.u_ryukyu.cr.ie.tatsuki.xmlReadTest.TestHandler;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.xml.sax.SAXException;
-
-import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlHandler;
-
-public class Person_idsTest {
-    
-    @Test
-    public void Person_idsTest(){
-        try {
-            JungleTree newTree = loadTestData();
-            
-            Iterator<String> names = personids(newTree);
-
-            for (;names.hasNext();names.next()) {
-                Assert.assertArrayEquals();
-            }
-            
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public JungleTree loadTestData() throws ParserConfigurationException,
-            SAXException, IOException, FileNotFoundException {
-        SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
-        SAXParser saxParser = saxParserFactory.newSAXParser();
-        Jungle jungle = new DefaultJungle(null, "jungle",new DefaultTreeEditor(new DefaultTraverser()));
-        JungleTree tree = jungle.createNewTree("maTrixPersons");
-        ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree);
-        saxParser.parse(new FileInputStream("xml/Person.xml"), readXmlHandler);
-        JungleTree newTree = readXmlHandler.getTree();
-        return newTree;
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/functionTest/isActiveTest.java	Sat Oct 25 07:48:02 2014 +0900
@@ -0,0 +1,46 @@
+package jp.ac.u_ryukyu.cr.ie.tatsuki.functionTest;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Iterator;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.JuGrix;
+import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.loadXml;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.xml.sax.SAXException;
+
+import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.ReadXmlHandler;
+
+public class isActiveTest {
+    
+    @Test
+    public void Person_idsTest(){
+        try {
+        	loadXml reader = new loadXml();
+            JungleTree newTree = reader.loadTestData("Person.xml");
+            JuGrix jugrix = new JuGrix(); 
+            String personId = "p:1";
+            
+            Assert.assertTrue(jugrix.isActive(newTree,personId));
+            
+            personId = "p:100";
+            Assert.assertFalse(jugrix.isActive(newTree,personId));
+            
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+}