Source code: com/eireneh/util/ZTestUtil.java
1
2 package com.eireneh.util;
3
4 import java.io.*;
5 import java.util.*;
6
7 import com.eireneh.util.event.*;
8 import com.eireneh.swing.*;
9 import com.eireneh.mail.*;
10
11 /**
12 * Attepmted 100% code coverage testing.
13 *
14 * <table border='1' cellPadding='3' cellSpacing='0' width="100%">
15 * <tr><td bgColor='white'class='TableRowColor'><font size='-7'>
16 * Distribution Licence:<br />
17 * Project B is free software; you can redistribute it
18 * and/or modify it under the terms of the GNU General Public License,
19 * version 2 as published by the Free Software Foundation.<br />
20 * This program is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 * General Public License for more details.<br />
24 * The License is available on the internet
25 * <a href='http://www.gnu.org/copyleft/gpl.html'>here</a>, by writing to
26 * <i>Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
27 * MA 02111-1307, USA</i>, Or locally at the Licence link below.<br />
28 * The copyright to this program is held by it's authors.
29 * </font></td></tr></table>
30 * @see <a href='http://www.eireneh.com/servlets/Web'>Project B Home</a>
31 * @see docs.Licence
32 * @author Joe Walker
33 */
34 public class ZTestUtil extends TestBase
35 {
36 /**
37 * A basic are we OK type test, for the Passage package.
38 */
39 public void test(PrintWriter out, boolean fatal)
40 {
41 logPackageStart(out, fatal, ZTestUtil.class);
42
43 testThreadUtil();
44 testStringUtil();
45 testHelpDesk();
46
47 logPackageStop();
48 }
49
50 /**
51 * Test the Strongs class.
52 */
53 public static void testOptions()
54 {
55 try
56 {
57 log("Options.nothing()");
58 test(true);
59 }
60 catch (Exception ex)
61 {
62 fail(ex);
63 }
64 }
65
66 /**
67 * Test the ThreadUtil class.
68 */
69 public static void testThreadUtil()
70 {
71 try
72 {
73 log("ThreadUtil.nothing()");
74
75 String NEWLINE = System.getProperty("line.separator", "\r\n");
76
77 ThreadGroup root = ThreadUtil.findRoot();
78 if (root.getParent() != null)
79 throw new Exception("ThreadGroup findRoot() gave non-root return");
80
81 String[] result = ThreadUtil.getListing();
82 String result2 = StringUtil.cat(result, NEWLINE);
83 }
84 catch (Exception ex)
85 {
86 fail(ex);
87 }
88 }
89
90 /**
91 * Test the StringUtil class.
92 */
93 public static void testHelpDesk()
94 {
95 try
96 {
97 /*
98 boolean file = FileCaptureListener.getHelpDeskListener();
99 boolean log = LogCaptureListener.getHelpDeskListener();
100 boolean soi = StdOutCaptureListener.getHelpDeskInformListener();
101 boolean sol = StdOutCaptureListener.getHelpDeskLogListener();
102 boolean shelf = ExceptionShelf.getHelpDeskListener();
103 boolean mail = MailCaptureListener.getHelpDeskListener();
104 String fdest = FileCaptureListener.getDefaultOutputFilename();
105 String from = MailCaptureListener.getMailFromAddr();
106 String server = MailCaptureListener.getMailServer();
107 String to = MailCaptureListener.getMailToAddr();
108
109 FileCaptureListener.setHelpDeskListener(true);
110 LogCaptureListener.setHelpDeskListener(true);
111 StdOutCaptureListener.setHelpDeskInformListener(true);
112 StdOutCaptureListener.setHelpDeskLogListener(true);
113 MailCaptureListener.setHelpDeskListener(true);
114 FileCaptureListener.setDefaultOutputFilename("test.log");
115 from = MailCaptureListener.getMailFromAddr("joe@eireneh.com");
116 server = MailCaptureListener.getMailServer("mail");
117 to = MailCaptureListener.getMailToAddr("joe@eireneh.com");
118
119 String source = "source";
120 Class stat = ZTestUtil.class;
121
122 log("HelpDesk.log*()");
123 log.fine("Debug Message");
124 log.info("Info Message");
125 log.warning("Warn Message");
126 log.warning("Error Message");
127 log.severe("Emerg Message");
128 log.logException(new Exception("Exception Message"));
129 log.fine("Debug Message");
130 log.info("Info Message");
131 log.warning("Warn Message");
132 log.warning("Error Message");
133 log.severe("Emerg Message");
134 log.logException(new Exception("Exception Message"));
135
136 FileCaptureListener.setHelpDeskListener(file);
137 LogCaptureListener.setHelpDeskListener(log);
138 StdOutCaptureListener.setHelpDeskInformListener(soi);
139 StdOutCaptureListener.setHelpDeskLogListener(sol);
140 MailCaptureListener.setHelpDeskListener(true);
141 FileCaptureListener.setDefaultOutputFilename("test.log");
142 from = MailCaptureListener.getMailFromAddr("joe@eireneh.com");
143 server = MailCaptureListener.getMailServer("mail");
144 to = MailCaptureListener.getMailToAddr("joe@eireneh.com");
145
146 FileCaptureListener.setDefaultOutputFilename(fdest);
147 */
148 }
149 catch (Exception ex)
150 {
151 fail(ex);
152 }
153 }
154
155 /**
156 * Test the StringUtil class.
157 */
158 public static void testStringUtil()
159 {
160 try
161 {
162 String answer = "";
163
164 log("StringUtil.nullIfBlank()");
165 test(null, StringUtil.nullIfBlank(""));
166 test(null, StringUtil.nullIfBlank(null));
167 test("fred", StringUtil.nullIfBlank("fred"));
168 test(" ", StringUtil.nullIfBlank(" "));
169 test("0", StringUtil.nullIfBlank("0"));
170 test("\u0000", StringUtil.nullIfBlank("\u0000"));
171 test("\u00000", StringUtil.nullIfBlank("\u00000"));
172
173 log("StringUtil.blankIfNull()");
174 test("", StringUtil.blankIfNull(""));
175 test("", StringUtil.blankIfNull(null));
176 test("fred", StringUtil.blankIfNull("fred"));
177 test(" ", StringUtil.blankIfNull(" "));
178 test("0", StringUtil.blankIfNull("0"));
179 test("\u0000", StringUtil.blankIfNull("\u0000"));
180 test("\u00000", StringUtil.blankIfNull("\u00000"));
181
182 log("StringUtil.tokenize()");
183 test(StringUtil.cat(StringUtil.tokenize("a b c d e f"), "-"), "a-b-c-d-e-f");
184 test(StringUtil.cat(StringUtil.tokenize("a-b-c-d-e-f", "-"), "="), "a=b=c=d=e=f");
185 test(StringUtil.cat(StringUtil.tokenize("a-b-c-'d-e-'-f", "-", "\"'"), "=") ,"a=b=c=d-e-=f");
186
187 log("StringUtil.removeChar()");
188 test(StringUtil.removeChar("a=b=c=d=e=f", '='), "abcdef");
189 test(StringUtil.removeChars("a=b=c-d-e-f", "=-"), "abcdef");
190
191 log("StringUtil.cat()");
192 test(StringUtil.cat(StringUtil.tokenize("a b c d e"), "-"), "a-b-c-d-e");
193 test(StringUtil.cat(StringUtil.tokenize("a b c d e"), 2, "-"), "c-d-e");
194 test(StringUtil.cat(StringUtil.tokenize("a b c d e"), 2, 3, "-"), "c-d");
195
196 log("StringUtil.chop()");
197 test(StringUtil.chop("123(456)789", "(", ")"), "123789");
198 test(StringUtil.chop("(123456)789", "(", ")"), "789");
199 test(StringUtil.chop("123(456789)", "(", ")"), "123");
200 test(StringUtil.chop("(123456789)", "(", ")"), "");
201 test(StringUtil.chop("123()456789", "(", ")"), "123456789");
202 test(StringUtil.chop("()123456789()", "(", ")"), "123456789");
203 test(StringUtil.chop("()123456789()", "(", ")"), "123456789");
204 test(StringUtil.chop("()()123456789()()", "(", ")"), "123456789");
205 test(StringUtil.chop("()()1234()56789()()", "(", ")"), "123456789");
206 test(StringUtil.chop("(123)(123)1234(123)(123)56789(123)(123)", "(", ")"), "123456789");
207 try{ StringUtil.chop("12(34(56)78)9", "(", ")"); fail(); }
208 catch (IllegalArgumentException ex) { }
209 try{ StringUtil.chop("12(3456789", "(", ")"); fail(); }
210 catch (IllegalArgumentException ex) { }
211 try{ StringUtil.chop("12)3456789", "(", ")"); fail(); }
212 catch (IllegalArgumentException ex) { }
213 try{ StringUtil.chop("12(3)4(56789", "(", ")"); fail(); }
214 catch (IllegalArgumentException ex) { }
215 try{ StringUtil.chop("12(3)4)56789", "(", ")"); fail(); }
216 catch (IllegalArgumentException ex) { }
217
218 log("StringUtil.read()");
219 PipedReader in = new PipedReader();
220 PipedWriter pout = new PipedWriter(in);
221 PrintWriter out = new PrintWriter(pout, true);
222 out.println("a b c d e");
223 out.println("f g h i j");
224 out.close();
225 pout.close();
226 test(StringUtil.read(in), "a b c d e"+StringUtil.getNewline()+"f g h i j"+StringUtil.getNewline());
227
228 log("StringUtil.getStringArray(Vector)");
229 Vector vec = new Vector();
230 vec.addElement("a b c d e");
231 vec.addElement("f g h i j");
232 test(StringUtil.cat(StringUtil.getStringArray(vec), "*"), "a b c d e*f g h i j");
233
234 log("StringUtil.getStringArray(Object[])");
235 Object[] objs = new Object[] { "a b c d e", "f g h i j"};
236 test(StringUtil.cat(StringUtil.getStringArray(objs), "*"), "a b c d e*f g h i j");
237
238 log("StringUtil.chain()");
239 test(StringUtil.chain(3, "-"), "---");
240 test(StringUtil.chain(15, "-oO0Oo-"), "-oO0Oo--oO0Oo--");
241
242 log("StringUtil.chain()");
243 test(StringUtil.countInstancesOf("-oO0Oo-", 'o'), 2);
244
245 log("StringUtil.parseInt()");
246 test(StringUtil.parseInt("0", -1), 0);
247 test(StringUtil.parseInt("Hello", -1), -1);
248 test(StringUtil.parseInt("-1", 0), -1);
249
250 log("StringUtil.setLength()");
251 test(StringUtil.setLength("12345", 5), "12345");
252
253 log("StringUtil.swap()");
254 test(StringUtil.swap("a12645", "6", "3"), "a12345");
255 test(StringUtil.swap("b12665", "66", "34"), "b12345");
256 test(StringUtil.swap("c1265", "6", "34"), "c12345");
257 test(StringUtil.swap("d126645", "66", "3"), "d12345");
258 test(StringUtil.swap("e1264512645", "6", "3"), "e1234512345");
259 test(StringUtil.swap("f1266512665", "66", "34"), "f1234512345");
260 test(StringUtil.swap("g12651265", "6", "34"), "g1234512345");
261 test(StringUtil.swap("h126645126645", "66", "3"), "h1234512345");
262
263 log("StringUtil.getInitials(String)");
264 test(StringUtil.getInitials("Church of England"), "CoE");
265 test(StringUtil.getInitials("Java DataBase Connectivity"), "JDC");
266 test(StringUtil.getInitials(""), "");
267
268 log("StringUtil.getCapitals(String)");
269 test(StringUtil.getCapitals("Church of England"), "CE");
270 test(StringUtil.getCapitals("Java DataBase Connectivity"), "JDBC");
271 test(StringUtil.getCapitals(""), "");
272
273 log("StringUtil.createTitle()");
274 test(StringUtil.createTitle("OneTwo"), "One Two");
275 test(StringUtil.createTitle("one_two"), "One Two");
276 test(StringUtil.createTitle("ONeTWo"), "ONe TWo");
277 test(StringUtil.createTitle("One_Two"), "One Two");
278 test(StringUtil.createTitle("One _Two"), "One Two");
279 test(StringUtil.createTitle("one _Two"), "One Two");
280
281 log("StringUtil.createJavaName()");
282 test(StringUtil.createJavaName("one _Two"), "OneTwo");
283 test(StringUtil.createJavaName("one_two"), "OneTwo");
284 test(StringUtil.createJavaName("onetwo"), "Onetwo");
285 test(StringUtil.createJavaName("ONetwo"), "ONetwo");
286
287 log("StringUtil.fileNameToJavaPackage()");
288 test(StringUtil.fileNameToJavaPackage("C:\\src\\java\\lang\\Object.class", "C:\\src"), "java.lang.Object");
289 test(StringUtil.fileNameToJavaPackage("C:\\src\\fred\\Bing.class", "C:\\src"), "fred.Bing");
290 test(StringUtil.fileNameToJavaPackage("C:\\fred\\Bing.class", "nonesense"), "fred.Bing");
291 test(StringUtil.fileNameToJavaPackage("C:\\src\\fred\\Bing.java", "C:\\src"), "fred.Bing");
292
293 log("StringUtil.fileNameToJavaPackage()");
294 test(StringUtil.fileNameToJavaPackage("C:\\src\\fred\\Bing.java", "C:\\src\\"), "fred.Bing");
295 test(StringUtil.fileNameToJavaPackage("C:\\src\\fred\\Bing.java", "c:\\src\\"), "fred.Bing");
296 test(StringUtil.fileNameToJavaPackage("C:\\src\\fred\\Bing.java", "C:\\src\\;.;d:\\fred"), "fred.Bing");
297 test(StringUtil.fileNameToJavaPackage("C:\\src\\fred\\Bing.java", ".;C:\\src\\;.;d:\\fred"), "fred.Bing");
298 test(StringUtil.fileNameToJavaPackage("C:\\src\\fred\\Bing.java", ".;c:\\jdk\\lib\\classes.zip;C:\\src\\;.;d:\\fred"), "fred.Bing");
299
300 log("StringUtil.toHex(byte)");
301 test(StringUtil.toHexChar((byte) 0), '0');
302 test(StringUtil.toHexChar((byte) 4), '4');
303 test(StringUtil.toHexChar((byte) 9), '9');
304 test(StringUtil.toHexChar((byte) 10), 'a');
305 test(StringUtil.toHexChar((byte) 15), 'f');
306 test(StringUtil.toHexChar((byte) 16), '0');
307 test(StringUtil.toHexChar((byte) 31), 'f');
308 test(StringUtil.toHexChar((byte) 32), '0');
309
310 log("StringUtil.toHex(int)");
311 test(StringUtil.toHexString(0), "0000");
312 test(StringUtil.toHexString(4), "0004");
313 test(StringUtil.toHexString(9), "0009");
314 test(StringUtil.toHexString(10), "000a");
315 test(StringUtil.toHexString(15), "000f");
316 test(StringUtil.toHexString(16), "0010");
317 test(StringUtil.toHexString(31), "001f");
318 test(StringUtil.toHexString(32), "0020");
319 }
320 catch (Exception ex)
321 {
322 fail(ex);
323 }
324 }
325 }