1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 package org.codehaus.groovy.bsf;
47
48 import java.io.File;
49 import java.util.List;
50
51 import junit.framework.TestCase;
52
53 import org.apache.bsf.BSFManager;
54 import org.codehaus.groovy.runtime.DefaultGroovyMethods;
55
56 /***
57 * Tests the BSF integration
58 *
59 * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
60 * @version $Revision: 1.6 $
61 */
62 public class BSFTest extends TestCase {
63
64 protected BSFManager manager;
65
66 protected void setUp() throws Exception {
67
68 BSFManager.registerScriptingEngine("groovy", GroovyEngine.class.getName(), new String[] { "groovy", "gy" });
69
70 manager = new BSFManager();
71 }
72
73 public void testExec() throws Exception {
74 manager.exec(
75 "groovy",
76 "Test1.groovy",
77 0,
78 0,
79 "println('testing Exec'); assert bsf != null : 'should have a bsf variable'");
80 }
81
82 public void testBracketName() throws Exception {
83 manager.exec(
84 "groovy",
85 "Test1<groovy>",
86 0,
87 0,
88 "println('testing Exec'); assert bsf != null : 'should have a bsf variable'");
89 }
90
91 public void testEval() throws Exception {
92 Object answer = manager.eval("groovy", "Test1.groovy", 0, 0, "println('testing Eval')\n return [1, 2, 3]");
93
94 assertTrue("Should return a list: " + answer, answer instanceof List);
95 List list = (List) answer;
96 assertEquals("List should be of right size", 3, list.size());
97
98 System.out.println("The eval returned the value: " + list);
99 }
100
101 public void testTwoEvalsWithSameName() throws Exception {
102 Object answer = manager.eval("groovy", "Test1.groovy", 0, 0, "println('first line')\n return 'cheese'");
103 assertEquals("cheese", answer);
104
105 answer = manager.eval("groovy", "Test1.groovy", 0, 0, "println('second line')\n return 'gromit'");
106 assertEquals("gromit", answer);
107 }
108
109 public void testExecBug() throws Exception {
110 for (int i = 0; i < 10; i++) {
111 manager.exec("groovy", "Test1.groovy", 0, 0, "println('testing Exec')");
112
113 manager.exec("groovy", "Test1.groovy", 0, 0, "println('testing Exec')");
114 }
115 }
116
117 public void testBsfVariables() throws Exception {
118 Object answer =
119 manager.eval(
120 "groovy",
121 "Test1.groovy",
122 0,
123 0,
124 "println('testing variables')\n assert this.bsf != null\n return this.bsf");
125 assertTrue("Should have an answer", answer != null);
126 }
127
128 public void testVariables() throws Exception {
129 manager.registerBean("x", new Integer(4));
130
131 Object answer =
132 manager.eval(
133 "groovy",
134 "Test1.groovy",
135 0,
136 0,
137 "valueOfX = this.bsf.lookupBean('x'); assert valueOfX == 4; valueOfX + 1");
138 assertEquals("Incorrect return", new Integer(5), answer);
139 }
140
141 public void testExecFile() throws Exception {
142 execScript("src/test/groovy/script/MapFromList.groovy");
143 execScript("src/test/groovy/script/AtomTestScript.groovy");
144 }
145
146 protected void execScript(String fileName) throws Exception {
147 System.out.println("Executing script: " + fileName);
148 manager.exec("groovy", fileName, 0, 0, DefaultGroovyMethods.getText(new File(fileName)));
149 }
150 }