Mercurial > hg > monetdb-java
annotate tests/UrlTester.java @ 797:9f6fe96c0ead monetdbs
Arrange testing
author | Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com> |
---|---|
date | Thu, 07 Dec 2023 10:25:16 +0100 (17 months ago) |
parents | 9dea0795a926 |
children | 5aa19bbed0d6 |
rev | line source |
---|---|
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
1 import org.monetdb.mcl.net.*; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
2 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
3 import java.io.*; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
4 import java.net.URISyntaxException; |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
5 import java.util.ArrayList; |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
6 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
7 public class UrlTester { |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
8 final String filename; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
9 final int verbose; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
10 final BufferedReader reader; |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
11 int lineno = 0; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
12 int testCount = 0; |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
13 Target target = null; |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
14 Target.Validated validated = null; |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
15 |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
16 public UrlTester(String filename, BufferedReader reader, int verbose) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
17 this.filename = filename; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
18 this.verbose = verbose; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
19 this.reader = reader; |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
20 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
21 |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
22 public UrlTester(String filename, int verbose) throws IOException { |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
23 this.filename = filename; |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
24 this.verbose = verbose; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
25 this.reader = new BufferedReader(new FileReader(filename)); |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
26 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
27 |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
28 public static void main(String[] args) throws IOException { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
29 ArrayList<String> filenames = new ArrayList<>(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
30 int verbose = 0; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
31 for (String arg : args) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
32 switch (arg) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
33 case "-vvv": |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
34 verbose++; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
35 case "-vv": |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
36 verbose++; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
37 case "-v": |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
38 verbose++; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
39 break; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
40 case "-h": |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
41 case "--help": |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
42 exitUsage(null); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
43 break; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
44 default: |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
45 if (!arg.startsWith("-")) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
46 filenames.add(arg); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
47 } else { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
48 exitUsage("Unexpected argument: " + arg); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
49 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
50 break; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
51 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
52 } |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
53 |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
54 runUnitTests(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
55 |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
56 try { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
57 if (filenames.isEmpty()) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
58 runAllTests(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
59 } else { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
60 for (String filename : filenames) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
61 new UrlTester(filename, verbose).run(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
62 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
63 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
64 } catch (Failure e) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
65 System.err.println("Test failed: " + e.getMessage()); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
66 System.exit(1); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
67 } |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
68 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
69 |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
70 private static void exitUsage(String message) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
71 if (message != null) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
72 System.err.println(message); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
73 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
74 System.err.println("Usage: UrlTester OPTIONS [FILENAME..]"); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
75 System.err.println("Options:"); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
76 System.err.println(" -v Be more verbose"); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
77 System.err.println(" -h --help Show this help"); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
78 int status = message == null ? 0 : 1; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
79 System.exit(status); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
80 } |
792
9dea0795a926
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
791
diff
changeset
|
81 |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
82 public static UrlTester forResource(String resourceName, int verbose) throws FileNotFoundException { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
83 InputStream stream = UrlTester.class.getResourceAsStream(resourceName); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
84 if (stream == null) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
85 throw new FileNotFoundException("Resource " + resourceName); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
86 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
87 BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
88 return new UrlTester(resourceName, reader, verbose); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
89 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
90 |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
91 public static void runAllTests() throws IOException, Failure { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
92 runUnitTests(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
93 UrlTester.forResource("/tests.md", 0).run(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
94 UrlTester.forResource("/javaspecific.md", 0).run(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
95 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
96 |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
97 public static void runUnitTests() { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
98 testDefaults(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
99 testParameters(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
100 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
101 |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
102 private static void testDefaults() { |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
103 Target target = new Target(); |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
104 |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
105 for (Parameter parm : Parameter.values()) { |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
106 Object expected = parm.getDefault(); |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
107 if (expected == null) |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
108 continue; |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
109 Object actual = target.getObject(parm); |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
110 if (!expected.equals(actual)) { |
792
9dea0795a926
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
791
diff
changeset
|
111 throw new RuntimeException("Default for " + parm.name + " expected to be <" + expected + "> but is <" + actual + ">"); |
9dea0795a926
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
791
diff
changeset
|
112 } |
9dea0795a926
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
791
diff
changeset
|
113 } |
9dea0795a926
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
791
diff
changeset
|
114 } |
9dea0795a926
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
791
diff
changeset
|
115 |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
116 private static void testParameters() { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
117 for (Parameter parm : Parameter.values()) { |
792
9dea0795a926
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
791
diff
changeset
|
118 Parameter found = Parameter.forName(parm.name); |
9dea0795a926
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
791
diff
changeset
|
119 if (parm != found) { |
9dea0795a926
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
791
diff
changeset
|
120 String foundStr = found != null ? found.name : "null"; |
9dea0795a926
Understand so_timeout, treat_clob_as_varchar and treat_blob_as_binary
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
791
diff
changeset
|
121 throw new RuntimeException("Looking up <" + parm.name + ">, found <" + foundStr); |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
122 } |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
123 } |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
124 } |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
125 |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
126 public void run() throws Failure, IOException { |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
127 try { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
128 processFile(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
129 } catch (Failure e) { |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
130 if (e.getFilename() == null) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
131 e.setFilename(filename); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
132 e.setLineno(lineno); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
133 throw e; |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
134 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
135 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
136 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
137 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
138 private void processFile() throws IOException, Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
139 while (true) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
140 String line = reader.readLine(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
141 if (line == null) |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
142 break; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
143 lineno++; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
144 processLine(line); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
145 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
146 if (verbose >= 1) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
147 System.out.println(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
148 System.out.println("Ran " + testCount + " tests in " + lineno + " lines"); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
149 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
150 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
151 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
152 private void processLine(String line) throws Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
153 line = line.replaceFirst("\\s+$", ""); // remove trailing |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
154 if (target == null && line.equals("```test")) { |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
155 if (verbose >= 2) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
156 if (testCount > 0) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
157 System.out.println(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
158 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
159 System.out.println("\u25B6 " + filename + ":" + lineno); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
160 } |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
161 target = new Target(); |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
162 testCount++; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
163 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
164 } |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
165 if (target != null) { |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
166 if (line.equals("```")) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
167 stopProcessing(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
168 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
169 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
170 handleCommand(line); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
171 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
172 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
173 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
174 private void stopProcessing() { |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
175 target = null; |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
176 validated = null; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
177 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
178 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
179 private void handleCommand(String line) throws Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
180 if (verbose >= 3) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
181 System.out.println(line); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
182 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
183 if (line.isEmpty()) |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
184 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
185 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
186 String[] parts = line.split("\\s+", 2); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
187 String command = parts[0]; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
188 switch (command.toUpperCase()) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
189 case "ONLY": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
190 handleOnly(true, parts[1]); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
191 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
192 case "NOT": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
193 handleOnly(false, parts[1]); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
194 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
195 case "PARSE": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
196 handleParse(parts[1], null); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
197 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
198 case "ACCEPT": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
199 handleParse(parts[1], true); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
200 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
201 case "REJECT": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
202 handleParse(parts[1], false); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
203 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
204 case "SET": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
205 handleSet(parts[1]); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
206 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
207 case "EXPECT": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
208 handleExpect(parts[1]); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
209 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
210 default: |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
211 throw new Failure("Unexpected command: " + command); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
212 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
213 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
214 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
215 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
216 private void handleOnly(boolean mustBePresent, String rest) throws Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
217 boolean found = false; |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
218 for (String part : rest.split("\\s+")) { |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
219 if (part.equals("jdbc")) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
220 found = true; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
221 break; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
222 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
223 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
224 if (found != mustBePresent) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
225 // do not further process this block |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
226 stopProcessing(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
227 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
228 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
229 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
230 private int findEqualSign(String rest) throws Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
231 int index = rest.indexOf('='); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
232 if (index < -1) |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
233 throw new Failure("Expected to find a '='"); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
234 return index; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
235 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
236 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
237 private String splitKey(String rest) throws Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
238 int index = findEqualSign(rest); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
239 return rest.substring(0, index); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
240 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
241 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
242 private String splitValue(String rest) throws Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
243 int index = findEqualSign(rest); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
244 return rest.substring(index + 1); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
245 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
246 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
247 private void handleSet(String rest) throws Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
248 validated = null; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
249 String key = splitKey(rest); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
250 String value = splitValue(rest); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
251 |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
252 try { |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
253 target.setString(key, value); |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
254 } catch (ValidationError e) { |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
255 throw new Failure(e.getMessage()); |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
256 } |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
257 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
258 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
259 private void handleParse(String rest, Boolean shouldSucceed) throws Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
260 URISyntaxException parseError = null; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
261 ValidationError validationError = null; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
262 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
263 validated = null; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
264 try { |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
265 target.barrier(); |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
266 MonetUrlParser.parse(target, rest); |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
267 } catch (URISyntaxException e) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
268 parseError = e; |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
269 } catch (ValidationError e) { |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
270 validationError = e; |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
271 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
272 |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
273 if (parseError == null && validationError == null) { |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
274 try { |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
275 tryValidate(); |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
276 } catch (ValidationError e) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
277 validationError = e; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
278 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
279 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
280 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
281 if (shouldSucceed == Boolean.FALSE) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
282 if (parseError != null || validationError != null) |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
283 return; // happy |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
284 else |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
285 throw new Failure("URL unexpectedly parsed and validated"); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
286 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
287 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
288 if (parseError != null) |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
289 throw new Failure("Parse error: " + parseError); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
290 if (validationError != null && shouldSucceed == Boolean.TRUE) |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
291 throw new Failure("Validation error: " + validationError); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
292 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
293 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
294 private void handleExpect(String rest) throws Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
295 String key = splitKey(rest); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
296 String expectedString = splitValue(rest); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
297 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
298 Object actual = null; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
299 try { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
300 actual = extract(key); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
301 } catch (ValidationError e) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
302 throw new Failure(e.getMessage()); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
303 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
304 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
305 Object expected; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
306 try { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
307 if (actual instanceof Boolean) |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
308 expected = ParameterType.Bool.parse(key, expectedString); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
309 else if (actual instanceof Integer) |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
310 expected = ParameterType.Int.parse(key, expectedString); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
311 else |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
312 expected = expectedString; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
313 } catch (ValidationError e) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
314 String typ = actual.getClass().getName(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
315 throw new Failure("Cannot convert expected value <" + expectedString + "> to " + typ + ": " + e.getMessage()); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
316 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
317 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
318 if (actual.equals(expected)) |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
319 return; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
320 throw new Failure("Expected " + key + "=<" + expectedString + ">, found <" + actual + ">"); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
321 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
322 |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
323 private Target.Validated tryValidate() throws ValidationError { |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
324 if (validated == null) |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
325 validated = target.validate(); |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
326 return validated; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
327 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
328 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
329 private Object extract(String key) throws ValidationError, Failure { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
330 switch (key) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
331 case "valid": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
332 try { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
333 tryValidate(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
334 } catch (ValidationError e) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
335 return Boolean.FALSE; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
336 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
337 return Boolean.TRUE; |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
338 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
339 case "connect_scan": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
340 return tryValidate().connectScan(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
341 case "connect_port": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
342 return tryValidate().connectPort(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
343 case "connect_unix": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
344 return tryValidate().connectUnix(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
345 case "connect_tcp": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
346 return tryValidate().connectTcp(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
347 case "connect_tls_verify": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
348 switch (tryValidate().connectVerify()) { |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
349 case None: |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
350 return ""; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
351 case Cert: |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
352 return "cert"; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
353 case Hash: |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
354 return "hash"; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
355 case System: |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
356 return "system"; |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
357 default: |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
358 throw new IllegalStateException("unreachable"); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
359 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
360 case "connect_certhash_digits": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
361 return tryValidate().connectCertHashDigits(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
362 case "connect_binary": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
363 return tryValidate().connectBinary(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
364 case "connect_clientkey": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
365 return tryValidate().connectClientKey(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
366 case "connect_clientcert": |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
367 return tryValidate().connectClientCert(); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
368 |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
369 default: |
791
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
370 Parameter parm = Parameter.forName(key); |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
371 if (parm != null) |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
372 return target.getObject(parm); |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
373 else |
4de810c22328
Refactor
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
789
diff
changeset
|
374 throw new Failure("Unknown attribute: " + key); |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
375 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
376 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
377 |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
378 public static class Failure extends Exception { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
379 private String filename = null; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
380 private int lineno = -1; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
381 |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
382 public Failure(String message) { |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
383 super(message); |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
384 } |
797
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
385 |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
386 @Override |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
387 public String getMessage() { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
388 StringBuilder buffer = new StringBuilder(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
389 if (filename != null) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
390 buffer.append(filename).append(":"); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
391 if (lineno >= 0) |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
392 buffer.append(lineno).append(":"); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
393 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
394 buffer.append(super.getMessage()); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
395 return buffer.toString(); |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
396 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
397 |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
398 public String getFilename() { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
399 return filename; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
400 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
401 |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
402 public void setFilename(String filename) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
403 this.filename = filename; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
404 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
405 |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
406 public int getLineno() { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
407 return lineno; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
408 } |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
409 |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
410 public void setLineno(int lineno) { |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
411 this.lineno = lineno; |
9f6fe96c0ead
Arrange testing
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
792
diff
changeset
|
412 } |
789
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
413 } |
88c5b678e974
URL parser passes the tests.
Joeri van Ruth <joeri.van.ruth@monetdbsolutions.com>
parents:
diff
changeset
|
414 } |