KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nanocontainer > script > groovy > GroovyCompilationExceptionTestCase


1 package org.nanocontainer.script.groovy;
2
3 import java.io.CharArrayWriter JavaDoc;
4 import java.io.PrintWriter JavaDoc;
5 import java.io.Reader JavaDoc;
6 import java.io.StringReader JavaDoc;
7
8 import org.nanocontainer.script.AbstractScriptedContainerBuilderTestCase;
9 import org.picocontainer.PicoContainer;
10
11 /**
12  *
13  * @author Michael Rimov
14  */

15 public class GroovyCompilationExceptionTestCase extends AbstractScriptedContainerBuilderTestCase {
16
17
18     public void testGroovyCompilationExceptionContainsOriginalReasonInStackTrace() {
19         //Bogus script where imports are not kosher.
20
Reader JavaDoc script = new StringReader JavaDoc("" +
21             "def unresolvedVariable = new TestBean()\n" +
22             "");
23
24         try {
25             buildContainer(script, null, "Some Assembly Scope");
26         } catch (GroovyCompilationException ex) {
27             CharArrayWriter JavaDoc outputArray = new CharArrayWriter JavaDoc();
28             PrintWriter JavaDoc output = new PrintWriter JavaDoc(outputArray);
29             ex.printStackTrace(output);
30             String JavaDoc resultingString = outputArray.toString();
31             //System.out.println(resultingString);
32

33             assertTrue(resultingString.indexOf("Caused by") > -1);
34
35             //This may change from version to version. Is there a better way for verification? -MR
36
assertTrue(resultingString.indexOf("unable to resolve class TestBean") > -1);
37         }
38     }
39
40     private PicoContainer buildContainer(Reader JavaDoc script, PicoContainer parent, Object JavaDoc scope) {
41         return buildContainer(new GroovyContainerBuilder(script, getClass().getClassLoader()), parent, scope);
42     }
43
44
45 }
46
Popular Tags