+++ /dev/null
-/*--------------------------------------------------------------------------\r
- * Copyright 2009 Taro L. Saito\r
- *\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- *--------------------------------------------------------------------------*/\r
-//--------------------------------------\r
-// XerialJ\r
-//\r
-// SilkWalkerTest.java\r
-// Since: Feb 2, 2009 11:55:33 AM\r
-//\r
-// $URL: http://www.xerial.org/svn/project/XerialJ/trunk/xerial-core/src/test/java/org/xerial/silk/SilkWalkerTest.java $\r
-// $Author: leo $\r
-//--------------------------------------\r
-package org.xerial.silk;\r
-\r
-import static org.junit.Assert.*;\r
-\r
-import java.io.IOException;\r
-\r
-import org.junit.After;\r
-import org.junit.Assert;\r
-import org.junit.Before;\r
-import org.junit.Ignore;\r
-import org.junit.Test;\r
-import org.xerial.core.XerialException;\r
-import org.xerial.util.FileResource;\r
-import org.xerial.util.bean.JSONStreamWalker;\r
-import org.xerial.util.log.Logger;\r
-import org.xerial.util.tree.TreeNode;\r
-import org.xerial.util.tree.TreeVisitorBase;\r
-import org.xerial.util.tree.TreeWalker;\r
-\r
-public class SilkWalkerTest {\r
- private static Logger _logger = Logger.getLogger(SilkWalkerTest.class);\r
-\r
- @Before\r
- public void setUp() throws Exception {}\r
-\r
- @After\r
- public void tearDown() throws Exception {}\r
-\r
- public static TreeWalkLog walk(String silkFile) throws IOException, XerialException {\r
- SilkWalker walker = new SilkWalker(FileResource.find(SilkWalkerTest.class, silkFile));\r
- TreeWalkLog l1 = new TreeWalkLog();\r
- walker.walk(l1);\r
- _logger.debug(l1.toString());\r
- return l1;\r
- }\r
-\r
- public static void compare(String silkFile, String jsonFile) throws IOException,\r
- XerialException {\r
- SilkWalker walker = new SilkWalker(FileResource.find(SilkWalkerTest.class, silkFile));\r
- TreeWalkLog l1 = new TreeWalkLog();\r
- TreeWalkLog l2 = new TreeWalkLog();\r
-\r
- walker.walk(l1);\r
- _logger.debug(l1);\r
-\r
- JSONStreamWalker jWalker = new JSONStreamWalker(FileResource.open(SilkWalkerTest.class,\r
- jsonFile));\r
- jWalker.walk(l2);\r
-\r
- Assert.assertTrue(TreeWalkLog.compare(l1, l2));\r
- }\r
-\r
- @Test\r
- public void testSmall() throws IOException, XerialException {\r
- compare("small.silk", "small.json");\r
- }\r
-\r
- @Test\r
- public void testTab() throws IOException, XerialException {\r
- //TreeWalkLog l = walk("tab.silk");\r
- //_logger.info("\n" + l);\r
- compare("tab.silk", "tab.json");\r
- }\r
-\r
- @Test\r
- public void testConfig() throws IOException, XerialException {\r
- compare("suzaku-config.silk", "suzaku-config.json");\r
- }\r
-\r
- @Test\r
- public void testInlineJSON() throws IOException, XerialException {\r
- compare("inline.silk", "inline.json");\r
- }\r
-\r
- @Test\r
- public void testCSV() throws IOException, XerialException {\r
- compare("csv.silk", "csv.json");\r
- }\r
-\r
- @Test\r
- public void testCSVOneLine() throws IOException, XerialException {\r
- compare("csv-oneline.silk", "csv.json");\r
- }\r
-\r
- @Test\r
- public void testMicroFormat() throws IOException, XerialException {\r
- compare("microformat.silk", "microformat.json");\r
- }\r
-\r
- @Test\r
- public void testBarChart() throws IOException, XerialException {\r
- compare("barchart.silk", "barchart.json");\r
- }\r
-\r
- @Test\r
- public void testExample() throws Exception {\r
- // TODO modify JSON stream walker to handle value as an immediate node value\r
- TreeWalkLog l = walk("example.silk");\r
- }\r
-\r
- @Test\r
- public void testLoad() throws Exception {\r
- compare("plugin/load-binary.silk", "plugin/load-binary.json");\r
- }\r
-\r
- @Test\r
- public void testFunc() throws Exception {\r
- TreeWalkLog l = walk("func.silk");\r
- }\r
-\r
- @Test\r
- public void testGeneSequence() throws Exception {\r
- TreeWalkLog l = walk("sequence.silk");\r
- }\r
-\r
- @Test\r
- public void testNoNameNode() throws Exception {\r
- compare("noname-node.silk", "noname-node.json");\r
- }\r
-\r
- @Test\r
- public void testHereDocument() throws Exception {\r
- compare("heredoc.silk", "heredoc.json");\r
- }\r
-\r
- @Test\r
- public void testNullMultiline() throws Exception {\r
- compare("null-multiline.silk", "null-multiline.json");\r
- }\r
-\r
- @Test\r
- public void testScaffold() throws Exception {\r
- TreeWalkLog l = walk("scaffold5001.silk");\r
- }\r
-\r
- @Test\r
- public void testQV() throws Exception {\r
- compare("qv.silk", "qv.json");\r
- }\r
-\r
- @Test\r
- public void testMultiLineEscape() throws Exception {\r
- compare("multiline.silk", "multiline.json");\r
- }\r
-\r
- @Test\r
- public void testBED() throws Exception {\r
- TreeWalkLog l = walk("sample.bed.silk");\r
- }\r
-\r
- @Test\r
- public void testSkipDescendants() throws Exception {\r
- SilkWalker walker = new SilkWalker(FileResource.find(SilkWalkerTest.class, "small.silk"));\r
- walker.walk(new TreeVisitorBase() {\r
- @Override\r
- public void visitNode(String nodeName, String immediateNodeValue, TreeWalker walker)\r
- throws XerialException {\r
- if (nodeName.equals("p1") || nodeName.equals("p2") || nodeName.equals("id")\r
- || nodeName.equals("name"))\r
- Assert.fail("node " + nodeName + " must be skipped");\r
-\r
- if (nodeName.equals("data") || nodeName.equals("node2"))\r
- walker.skipDescendants();\r
-\r
- _logger.debug("visit: " + nodeName);\r
- }\r
-\r
- @Override\r
- public void leaveNode(String nodeName, TreeWalker walker) throws XerialException {\r
- _logger.debug("leave: " + nodeName);\r
- }\r
-\r
- });\r
-\r
- }\r
-\r
- @Test\r
- public void testGetSubtree() throws Exception {\r
- SilkWalker walker = new SilkWalker(FileResource.find(SilkWalkerTest.class, "small.silk"));\r
- walker.walk(new TreeVisitorBase() {\r
- @Override\r
- public void visitNode(String nodeName, String immediateNodeValue, TreeWalker walker)\r
- throws XerialException {\r
- if (nodeName.equals("link")) {\r
- TreeNode node = walker.getSubTree();\r
- assertNotNull(node);\r
-\r
- assertEquals("link", node.getNodeName());\r
- assertNull(node.getNodeValue());\r
- assertEquals(2, node.getChildren().size());\r
-\r
- TreeNode pageNameNode = node.getChildren().get(0);\r
- assertEquals("page name", pageNameNode.getNodeName());\r
- assertEquals("Welcome to Xerial", pageNameNode.getNodeValue());\r
-\r
- TreeNode urlNode = node.getChildren().get(1);\r
- assertEquals("url", urlNode.getNodeName());\r
- assertEquals("http://www.xerial.org/", urlNode.getNodeValue());\r
-\r
- }\r
- }\r
- });\r
-\r
- }\r
-\r
- @Ignore\r
- @Test\r
- public void testTabAndNode() throws Exception {\r
- compare("tab-node.silk", "tab-node.json");\r
- }\r
-\r
- @Ignore\r
- @Test\r
- public void testTabAndNode2() throws Exception {\r
- compare("tab-node2.silk", "tab-node2.json");\r
- }\r
-\r
- @Ignore\r
- @Test\r
- public void testTabAndNode2Alt() throws Exception {\r
- compare("tab-node2-alt.silk", "tab-node2.json");\r
- }\r
-\r
- @Test\r
- public void testMultiLineTextWithNewLine() throws Exception {\r
- compare("mltext.silk", "mltext.json");\r
- }\r
-\r
-}\r