KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > htmlparser > tests > utilTests > NodeListTest


1 // HTMLParser Library $Name: v1_5_20050313 $ - A java-based parser for HTML
2
// http://sourceforge.org/projects/htmlparser
3
// Copyright (C) 2004 Somik Raha
4
//
5
// Revision Control Information
6
//
7
// $Source: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/utilTests/NodeListTest.java,v $
8
// $Author: derrickoswald $
9
// $Date: 2004/05/24 16:18:34 $
10
// $Revision: 1.27 $
11
//
12
// This library is free software; you can redistribute it and/or
13
// modify it under the terms of the GNU Lesser General Public
14
// License as published by the Free Software Foundation; either
15
// version 2.1 of the License, or (at your option) any later version.
16
//
17
// This library is distributed in the hope that it will be useful,
18
// but WITHOUT ANY WARRANTY; without even the implied warranty of
19
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20
// Lesser General Public License for more details.
21
//
22
// You should have received a copy of the GNU Lesser General Public
23
// License along with this library; if not, write to the Free Software
24
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
//
26

27 package org.htmlparser.tests.utilTests;
28
29 import org.htmlparser.Node;
30 import org.htmlparser.nodes.AbstractNode;
31 import org.htmlparser.tests.ParserTestCase;
32 import org.htmlparser.util.NodeList;
33 import org.htmlparser.util.SimpleNodeIterator;
34 import org.htmlparser.visitors.NodeVisitor;
35
36 public class NodeListTest extends ParserTestCase {
37
38     static
39     {
40         System.setProperty ("org.htmlparser.tests.utilTests.NodeListTest", "NodeListTest");
41     }
42
43     private NodeList nodeList;
44     private Node[] testNodes;
45
46     public NodeListTest(String JavaDoc name) {
47         super(name);
48     }
49
50     protected void setUp() {
51         nodeList = new NodeList();
52     }
53
54     public void testAddOneItem() {
55         Node node = createHTMLNodeObject();
56         nodeList.add(node);
57         assertEquals("Vector Size",1,nodeList.size());
58         assertTrue("First Element",node==nodeList.elementAt(0));
59     }
60
61     public void testAddTwoItems() {
62         Node node1 = createHTMLNodeObject();
63         Node node2 = createHTMLNodeObject();
64         nodeList.add(node1);
65         nodeList.add(node2);
66         assertEquals("Vector Size",2,nodeList.size());
67         assertTrue("First Element",node1==nodeList.elementAt(0));
68         assertTrue("Second Element",node2==nodeList.elementAt(1));
69     }
70
71     public void testAddTenItems() {
72         createTestDataAndPutInVector(10);
73         assertTestDataCouldBeExtractedFromVector(10);
74     }
75
76     public void testAddElevenItems() {
77         createTestDataAndPutInVector(11);
78         assertTestDataCouldBeExtractedFromVector(11);
79     }
80
81     public void testAddThirtyItems() {
82         createTestDataAndPutInVector(30);
83         assertTestDataCouldBeExtractedFromVector(30);
84         assertEquals("Number of Adjustments",1,nodeList.getNumberOfAdjustments());
85     }
86
87     public void testAddThirtyOneItems() {
88         createTestDataAndPutInVector(31);
89         assertTestDataCouldBeExtractedFromVector(31);
90         assertEquals("Number of Adjustments",2,nodeList.getNumberOfAdjustments());
91     }
92
93     public void testAddFiftyItems() {
94         createTestDataAndPutInVector(50);
95         assertTestDataCouldBeExtractedFromVector(50);
96         assertEquals("Number of Adjustments",2,nodeList.getNumberOfAdjustments());
97     }
98
99     public void testAddFiftyOneItems() {
100         createTestDataAndPutInVector(51);
101         assertTestDataCouldBeExtractedFromVector(51);
102         assertEquals("Number of Adjustments",2,nodeList.getNumberOfAdjustments());
103     }
104
105     public void testAddTwoHundredItems() {
106         createTestDataAndPutInVector(200);
107         assertEquals("Number of Adjustments",4,nodeList.getNumberOfAdjustments());
108     }
109
110     public void testElements() throws Exception JavaDoc {
111         createTestDataAndPutInVector(11);
112         Node [] resultNodes = new Node[11];
113         int i = 0;
114         for (SimpleNodeIterator e = nodeList.elements();e.hasMoreNodes();) {
115             resultNodes[i] = e.nextNode();
116             assertTrue("Node "+i+" did not match",testNodes[i]==resultNodes[i]);
117             i++;
118         }
119
120     }
121
122     private Node createHTMLNodeObject() {
123         Node node = new AbstractNode(null,10,20) {
124             public void accept(NodeVisitor visitor) {
125             }
126
127             public String JavaDoc toHtml() {
128                 return null;
129             }
130
131             public String JavaDoc toPlainTextString() {
132                 return null;
133             }
134
135             public String JavaDoc toString() {
136                 return "";
137             }
138         };
139         return node;
140     }
141
142     private void createTestDataAndPutInVector(int nodeCount) {
143         testNodes = new Node[nodeCount];
144         for (int i=0;i<nodeCount;i++) {
145             testNodes[i]= createHTMLNodeObject();
146             nodeList.add(testNodes[i]);
147         }
148     }
149
150     private void assertTestDataCouldBeExtractedFromVector(int nodeCount) {
151         for (int i=0;i<nodeCount;i++) {
152             assertTrue("Element "+i+" did not match",testNodes[i]==nodeList.elementAt(i));
153         }
154     }
155
156     public void testToNodeArray() {
157         createTestDataAndPutInVector(387);
158         Node nodes [] = nodeList.toNodeArray();
159         assertEquals("Length of array",387,nodes.length);
160         for (int i=0;i<nodes.length;i++)
161             assertNotNull("node "+i+" should not be null",nodes[i]);
162     }
163
164     public void testRemove() {
165         Node node1 = createHTMLNodeObject();
166         Node node2 = createHTMLNodeObject();
167         nodeList.add(node1);
168         nodeList.add(node2);
169         assertEquals("Vector Size",2,nodeList.size());
170         assertTrue("First Element",node1==nodeList.elementAt(0));
171         assertTrue("Second Element",node2==nodeList.elementAt(1));
172         nodeList.remove(1);
173         assertEquals("List Size",1,nodeList.size());
174         assertTrue("First Element",node1==nodeList.elementAt(0));
175     }
176
177     public void testRemoveAll() {
178         Node node1 = createHTMLNodeObject();
179         Node node2 = createHTMLNodeObject();
180         nodeList.add(node1);
181         nodeList.add(node2);
182         assertEquals("Vector Size",2,nodeList.size());
183         assertTrue("First Element",node1==nodeList.elementAt(0));
184         assertTrue("Second Element",node2==nodeList.elementAt(1));
185         nodeList.removeAll();
186         assertEquals("List Size",0,nodeList.size());
187         assertTrue("First Element",null==nodeList.elementAt(0));
188         assertTrue("Second Element",null==nodeList.elementAt(1));
189     }
190 }
191
Popular Tags