10
10
**********************************************************************/
11
11
package com.btc.serviceidl.tests.testdata
12
12
13
- import java.util.Map
14
- import java.util.HashMap
15
- import java.util.Collections
16
- import java.nio.file.Paths
17
13
import com.google.common.io.Resources
18
- import java.nio.charset.Charset
19
- import java.util.jar.JarFile
14
+ import java.io.IOException
15
+ import java.net.URL
20
16
import java.net.URLDecoder
17
+ import java.nio.charset.Charset
21
18
import java.nio.charset.StandardCharsets
19
+ import java.nio.file.Paths
22
20
import java.util.ArrayList
23
- import java.net.URL
21
+ import java.util.HashMap
22
+ import java.util.Map
23
+ import java.util.jar.JarFile
24
+ import org.eclipse.core.runtime.FileLocator
24
25
25
26
class TestData
26
27
{
@@ -102,44 +103,54 @@ class TestData
102
103
{
103
104
val filenames = new ArrayList<URL > ();
104
105
105
- val url = Thread . currentThread(). getContextClassLoader(). getResource(directoryName);
106
- if (url !== null )
106
+ var url = Thread . currentThread(). getContextClassLoader(). getResource(directoryName);
107
+ if (url == = null )
108
+ throw new IOException (
109
+ " Thread.currentThread().getContextClassLoader().getResource(directoryName) returned null for directoryName == " +
110
+ directoryName)
111
+
112
+ if (url. getProtocol(). equals(" bundleresource" ))
113
+ {
114
+ url = FileLocator . toFileURL(url)
115
+ }
116
+
117
+ if (url. getProtocol(). equals(" file" ))
107
118
{
108
- if (url. getProtocol(). equals(" file" ))
119
+ val file = Paths . get(url. toURI()). toFile();
120
+ if (file !== null )
109
121
{
110
- val file = Paths . get(url . toURI()) . toFile ();
111
- if (file !== null )
122
+ val files = file . listFiles ();
123
+ if (files !== null )
112
124
{
113
- val files = file. listFiles();
114
- if (files !== null )
125
+ for (filename : files)
115
126
{
116
- for (filename : files)
117
- {
118
- filenames. add(filename. toURI. toURL);
119
- }
127
+ filenames. add(filename. toURI. toURL);
120
128
}
121
129
}
122
130
}
123
- else if (url. getProtocol(). equals(" jar" ))
131
+ }
132
+ else if (url. getProtocol(). equals(" jar" ))
133
+ {
134
+ val dirname = directoryName + " /" ;
135
+ val path = url. getPath();
136
+ val jarPath = path. substring(5 , path. indexOf(" !" ));
137
+ // TODO this should use try-with-resources
138
+ val jar = new JarFile (URLDecoder . decode(jarPath, StandardCharsets . UTF_8. name()))
139
+ val entries = jar. entries();
140
+ while (entries. hasMoreElements())
124
141
{
125
- val dirname = directoryName + " /" ;
126
- val path = url. getPath();
127
- val jarPath = path. substring(5 , path. indexOf(" !" ));
128
- // TODO this should use try-with-resources
129
- val jar = new JarFile (URLDecoder . decode(jarPath, StandardCharsets . UTF_8. name()))
130
- val entries = jar. entries();
131
- while (entries. hasMoreElements())
142
+ val entry = entries. nextElement();
143
+ val name = entry. getName();
144
+ if (name. startsWith(dirname) && ! dirname. equals(name))
132
145
{
133
- val entry = entries. nextElement();
134
- val name = entry. getName();
135
- if (name. startsWith(dirname) && ! dirname. equals(name))
136
- {
137
- val resource = Thread . currentThread(). getContextClassLoader(). getResource(name);
138
- filenames. add(resource);
139
- }
146
+ val resource = Thread . currentThread(). getContextClassLoader(). getResource(name);
147
+ filenames. add(resource);
140
148
}
141
149
}
142
150
}
151
+ else
152
+ throw new IOException (" Unknown protocol in URL: " + url)
153
+
143
154
return filenames;
144
155
}
145
156
@@ -153,6 +164,9 @@ class TestData
153
164
getFilenamesForDirnameFromClassPath(" com/btc/serviceidl/tests/testdata/good_ext/" )
154
165
]. flatten
155
166
167
+ if (testCaseFiles. empty)
168
+ throw new Exception (" No good test cases found, something is wrong!" )
169
+
156
170
val resultMap = new HashMap<String , CharSequence >
157
171
for (testCaseFile : testCaseFiles)
158
172
{
0 commit comments