KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > script > ScriptJobTest


1 /*
2  * (c) Rob Gordon 2005
3  */

4 package org.oddjob.script;
5
6 import java.io.ByteArrayInputStream JavaDoc;
7 import java.util.Date JavaDoc;
8 import java.util.Map JavaDoc;
9
10 import junit.framework.TestCase;
11
12 import org.oddjob.Oddjob;
13 import org.oddjob.arooa.reflect.IntrospectionHelper;
14 import org.oddjob.state.JobState;
15 import org.oddjob.values.VariablesJob;
16
17 /**
18  *
19  */

20 public class ScriptJobTest extends TestCase {
21
22     public void test1() {
23         
24         String JavaDoc xml = "<oddjob>" +
25           "<script id='s' language='groovy'>" +
26           "<text>println \"hello world\"</text>" +
27           "</script>" +
28         "</oddjob>";
29         
30         Oddjob oj = new Oddjob();
31         oj.setInput(new ByteArrayInputStream JavaDoc(xml.getBytes()));
32         oj.run();
33     }
34
35     public void test2() {
36         
37         String JavaDoc xml = "<oddjob>" +
38           "<script id='s' language='groovy'>" +
39           "<text>println fruit</text>" +
40           "<beans>" +
41             "<value name='fruit' value='apple'/>" +
42           "</beans>" +
43           "</script>" +
44         "</oddjob>";
45         
46         Oddjob oj = new Oddjob();
47         oj.setInput(new ByteArrayInputStream JavaDoc(xml.getBytes()));
48         oj.run();
49     }
50
51     public void testSettingOutput() {
52         
53         String JavaDoc xml = "<oddjob>" +
54           "<script id='s' language='groovy'>" +
55           "<text>results.fruit = \"apple\"</text>" +
56           "<beans>" +
57             "<map name='results'/>" +
58           "</beans>" +
59           "</script>" +
60         "</oddjob>";
61         
62         Oddjob oj = new Oddjob();
63         oj.setInput(new ByteArrayInputStream JavaDoc(xml.getBytes()));
64         oj.run();
65         
66         ScriptJob sc = (ScriptJob) oj.lookup("s");
67         Map JavaDoc results = (Map JavaDoc) sc.getBeans("results");
68         assertEquals("apple", results.get("fruit"));
69     }
70
71     public void testResult() {
72         
73         String JavaDoc xml = "<oddjob>" +
74           "<script id='s' language='groovy'>" +
75           "<text>println script.language\n" +
76           "script.result = -1</text>" +
77           "<beans>" +
78             "<value name='script' value='${s}'/>" +
79           "</beans>" +
80           "</script>" +
81         "</oddjob>";
82         
83         Oddjob oj = new Oddjob();
84         oj.setInput(new ByteArrayInputStream JavaDoc(xml.getBytes()));
85         oj.run();
86         
87         assertEquals(JobState.NOT_COMPLETE, oj.lastJobStateEvent().getJobState());
88     }
89     
90     public void testSettingVariables() {
91         
92         String JavaDoc xml = "<oddjob>" +
93           "<sequential>" +
94           "<script id='s' language='groovy'>" +
95           "<text>vars.today = new Date()</text>" +
96           "<beans>" +
97           " <value name='vars' value='${v}'/>" +
98           "</beans>" +
99           "</script>" +
100           "<variables id='v'>" +
101           " <format name='yyyymmdd_today' date='${v.today}' format='yyyyMMdd'/>" +
102           "</variables>" +
103           "</sequential>" +
104         "</oddjob>";
105         
106         Oddjob oj = new Oddjob();
107         oj.setInput(new ByteArrayInputStream JavaDoc(xml.getBytes()));
108         oj.run();
109         
110         assertEquals(JobState.COMPLETE, oj.lastJobStateEvent().getJobState());
111         VariablesJob v= (VariablesJob) oj.lookup("v");
112         
113         Object JavaDoc result = IntrospectionHelper.valueFor(v.get("today"));
114         
115         assertEquals(Date JavaDoc.class, result.getClass());
116         
117         System.out.println(v.get("yyyymmdd_today"));
118     }
119     
120 }
121
Popular Tags