1 16 package scriptella.jdbc; 17 18 import junit.framework.TestCase; 19 import scriptella.expression.Expression; 20 import scriptella.spi.MockDriverContext; 21 import scriptella.spi.MockParametersCallbacks; 22 23 import java.net.MalformedURLException ; 24 import java.net.URL ; 25 26 32 public class ParametersParserTest extends TestCase { 33 36 public void testValid() throws MalformedURLException { 37 38 final MockDriverContext dc = new MockDriverContext(); 39 ParametersParser p = new ParametersParser(dc); 40 41 String expr = "file 'myfile'"; 42 Lobs.UrlBlob actual = (Lobs.UrlBlob) p.evaluate(expr, MockParametersCallbacks.UNSUPPORTED); 43 URL expected = dc.resolve("myfile"); 44 assertEquals(expected, actual.getUrl()); 45 expr = "file 'http'+'://127.0.0.1/'+name"; 46 actual = (Lobs.UrlBlob) p.evaluate(expr, MockParametersCallbacks.SIMPLE); 47 expected = new URL ("http://127.0.0.1/*name*"); 48 assertEquals(expected, actual.getUrl()); 49 } 50 51 54 public void testInvalid() throws MalformedURLException { 55 56 final MockDriverContext dc = new MockDriverContext(); 57 ParametersParser p = new ParametersParser(dc); 58 59 try { 60 p.evaluate("file myfile'", MockParametersCallbacks.UNSUPPORTED); 61 fail("illegal file reference"); 62 } catch (Expression.ParseException e) { 63 } 65 try { 67 p.evaluate("file + 'text'", MockParametersCallbacks.NULL); 68 } catch (Expression.EvaluationException e) { 69 assertTrue(e.getCause() instanceof NullPointerException ); 70 } 71 final Object o = p.evaluate("file + var", MockParametersCallbacks.SIMPLE); 73 assertEquals("*file**var*",o); 74 75 76 77 78 79 80 } 81 82 } 83 | Popular Tags |