KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > scriptella > tools > launcher > EtlLauncherTest


1 /*
2  * Copyright 2006-2007 The Scriptella Project Team.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package scriptella.tools.launcher;
17
18 import scriptella.DBTestCase;
19 import scriptella.util.IOUtils;
20
21 import javax.management.MBeanServer JavaDoc;
22 import javax.management.MalformedObjectNameException JavaDoc;
23 import javax.management.ObjectName JavaDoc;
24 import java.io.File JavaDoc;
25 import java.io.FileNotFoundException JavaDoc;
26 import java.lang.management.ManagementFactory JavaDoc;
27 import java.net.MalformedURLException JavaDoc;
28 import java.net.URL JavaDoc;
29 import java.util.ArrayList JavaDoc;
30 import java.util.Collections JavaDoc;
31 import java.util.List JavaDoc;
32 import java.util.concurrent.Callable JavaDoc;
33
34 /**
35  * Tests for {@link EtlLauncher}.
36  *
37  * @author Fyodor Kupolov
38  * @version 1.0
39  */

40 public class EtlLauncherTest extends DBTestCase {
41
42     public void testLaunch() {
43         final List JavaDoc<String JavaDoc> files = new ArrayList JavaDoc<String JavaDoc>();
44
45         EtlLauncher etlLauncher = new EtlLauncher() {
46             @Override JavaDoc
47             protected boolean isFile(File JavaDoc file) {
48                 return file.getName().indexOf("_nofile_")<0;
49             }
50
51             @Override JavaDoc
52             public void execute(final File JavaDoc file) {
53                 files.add(file.getName());
54             }
55         };
56         assertEquals(EtlLauncher.ErrorCode.OK, etlLauncher.launch(new String JavaDoc[]{"-v"}));
57         assertEquals(EtlLauncher.ErrorCode.UNRECOGNIZED_OPTION, etlLauncher.launch(new String JavaDoc[]{"-nosuchproperty"}));
58         assertEquals(EtlLauncher.ErrorCode.OK, etlLauncher.launch(new String JavaDoc[]{"-h"}));
59         assertEquals(EtlLauncher.ErrorCode.OK, etlLauncher.launch(new String JavaDoc[]{}));
60         assertEquals(1, files.size());
61         assertEquals("etl.xml", files.get(0));
62         files.clear();
63         assertEquals(EtlLauncher.ErrorCode.FILE_NOT_FOUND, etlLauncher.launch(new String JavaDoc[]{"_nofile_", "etl.xml"}));
64         assertEquals(0, files.size());
65     }
66
67     public void testNoEtlFile() {
68         EtlLauncher etlLauncher = new EtlLauncher() {
69             @Override JavaDoc
70             protected boolean isFile(File JavaDoc file) {
71                 return false;
72             }
73         };
74         assertEquals(EtlLauncher.ErrorCode.FILE_NOT_FOUND, etlLauncher.launch(new String JavaDoc[] {}));
75
76
77     }
78
79     public void testFile() {
80         EtlLauncher launcher = new EtlLauncher();
81         assertEquals(EtlLauncher.ErrorCode.OK, launcher.launch(new String JavaDoc[] {"tools/src/test/scriptella/tools/launcher/EtlLauncherTest"}));
82     }
83
84     /**
85      * Tests if JMX monitoring is enabled during execution.
86      */

87     public void testJmx() throws FileNotFoundException JavaDoc, MalformedURLException JavaDoc, MalformedObjectNameException JavaDoc {
88         final EtlLauncher launcher = new EtlLauncher();
89         final String JavaDoc fileName = "tools/src/test/scriptella/tools/launcher/EtlLauncherTestJmx";
90         URL JavaDoc u = IOUtils.toUrl(launcher.resolveFile(null, fileName));
91         final ObjectName JavaDoc mbeanName = new ObjectName JavaDoc("scriptella:type=etl,url=" + ObjectName.quote(u.toString()));
92         final MBeanServer JavaDoc srv = ManagementFactory.getPlatformMBeanServer();
93         Callable JavaDoc r = new Callable JavaDoc() {
94             public String JavaDoc call() throws Exception JavaDoc {
95                 try {
96                     final Number JavaDoc n = (Number JavaDoc) srv.getAttribute(
97                             mbeanName,
98                             "ExecutedStatementsCount");
99                     assertEquals(2, n.intValue());
100                 } catch (Exception JavaDoc e) {
101                     fail(e.getMessage());
102                 }
103                 //Check if cancellation is working
104
srv.invoke(mbeanName, "cancel",null, null);
105                 return "";
106             }
107         };
108         launcher.setProperties(Collections.singletonMap("callback", r));
109
110         assertEquals(EtlLauncher.ErrorCode.FAILED, launcher.launch(new String JavaDoc[] {fileName}));
111         assertFalse(srv.isRegistered(mbeanName));
112     }
113
114
115 }
116
Popular Tags