KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > h2 > test > unit > TestSampleApps


1 /*
2  * Copyright 2004-2006 H2 Group. Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).
3  * Initial Developer: H2 Group
4  */

5 package org.h2.test.unit;
6
7 import java.io.ByteArrayOutputStream JavaDoc;
8 import java.io.PrintStream JavaDoc;
9 import java.lang.reflect.Method JavaDoc;
10
11 import org.h2.test.TestBase;
12 import org.h2.tools.DeleteDbFiles;
13 import org.h2.util.StringUtils;
14
15 public class TestSampleApps extends TestBase {
16
17     public void test() throws Exception JavaDoc {
18         testApp(org.h2.samples.Compact.class, null, "Compacting...\nDone.");
19         testApp(org.h2.samples.CsvSample.class, null,
20                 "NAME: Bob Meier\n"
21                 + "EMAIL: bob.meier@abcde.fgh\n"
22                 +"PHONE: +41123456789\n\n"
23                 +"NAME: John Jones\n"
24                 +"EMAIL: johnjones@abcde.fgh\n"
25                 +"PHONE: +41976543210\n");
26         testApp(org.h2.samples.Function.class, null,
27                 "2 is prime\n3 is prime\n5 is prime\n7 is prime\n11 is prime\n13 is prime\n17 is prime\n19 is prime");
28         testApp(org.h2.samples.SecurePassword.class, null, "Hello");
29         // TODO test ShowProgress (percent numbers are hardware specific)
30
// TODO test ShutdownServer (server needs to be started in a separater process)
31
testApp(org.h2.samples.TriggerSample.class, null, "The sum is 20.00");
32         
33         // tools
34
testApp(org.h2.tools.ChangePassword.class, new String JavaDoc[]{"-?"}, "java org.h2.tools.ChangePassword [-dir <dir>] "
35                 + "[-db <database>] [-cipher <cipher>] [-decrypt <pwd>] [-encrypt <pwd>] [-quiet]");
36         testApp(org.h2.tools.ChangePassword.class, null, "java org.h2.tools.ChangePassword [-dir <dir>] "
37                 + "[-db <database>] [-cipher <cipher>] [-decrypt <pwd>] [-encrypt <pwd>] [-quiet]");
38         testApp(org.h2.tools.DeleteDbFiles.class, new String JavaDoc[]{"-?"}, "java org.h2.tools.DeleteDbFiles [-dir <dir>] [-db <database>] [-quiet]");
39     }
40
41     private void testApp(Class JavaDoc clazz, String JavaDoc[] args, String JavaDoc expected) throws Exception JavaDoc {
42         DeleteDbFiles.execute("data", "test", true);
43         Method JavaDoc m = clazz.getMethod("main", new Class JavaDoc[]{String JavaDoc[].class});
44         PrintStream JavaDoc oldOut = System.out, oldErr = System.err;
45         ByteArrayOutputStream JavaDoc buff = new ByteArrayOutputStream JavaDoc();
46         PrintStream JavaDoc out = new PrintStream JavaDoc(buff, false, "UTF-8");
47         System.setOut(out);
48         System.setErr(out);
49         try {
50             m.invoke(null, new Object JavaDoc[]{args});
51         } catch(Throwable JavaDoc e) {
52             TestBase.logError("error", e);
53         }
54         out.flush();
55         System.setOut(oldOut);
56         System.setErr(oldErr);
57         String JavaDoc s = new String JavaDoc(buff.toByteArray(), "UTF-8");
58         s = StringUtils.replaceAll(s, "\r\n", "\n");
59         check(s.trim(), expected.trim());
60     }
61 }
62
Popular Tags