1 4 package org.oddjob.script; 5 6 import java.io.ByteArrayInputStream ; 7 import java.util.Date ; 8 import java.util.Map ; 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 20 public class ScriptJobTest extends TestCase { 21 22 public void test1() { 23 24 String 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 (xml.getBytes())); 32 oj.run(); 33 } 34 35 public void test2() { 36 37 String 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 (xml.getBytes())); 48 oj.run(); 49 } 50 51 public void testSettingOutput() { 52 53 String 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 (xml.getBytes())); 64 oj.run(); 65 66 ScriptJob sc = (ScriptJob) oj.lookup("s"); 67 Map results = (Map ) sc.getBeans("results"); 68 assertEquals("apple", results.get("fruit")); 69 } 70 71 public void testResult() { 72 73 String 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 (xml.getBytes())); 85 oj.run(); 86 87 assertEquals(JobState.NOT_COMPLETE, oj.lastJobStateEvent().getJobState()); 88 } 89 90 public void testSettingVariables() { 91 92 String 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 (xml.getBytes())); 108 oj.run(); 109 110 assertEquals(JobState.COMPLETE, oj.lastJobStateEvent().getJobState()); 111 VariablesJob v= (VariablesJob) oj.lookup("v"); 112 113 Object result = IntrospectionHelper.valueFor(v.get("today")); 114 115 assertEquals(Date .class, result.getClass()); 116 117 System.out.println(v.get("yyyymmdd_today")); 118 } 119 120 } 121 | Popular Tags |