@@ -27,111 +27,6 @@ public class DynamicTestRunnerStatementTest {
27
27
private TestRunnerOptions options ;
28
28
private Object [] expectedFileMapping ;
29
29
30
- private OracleConnection getMockedOracleConnection (Object [] expectedFileMapping ) throws SQLException {
31
- OracleConnection oracleConnection = mock (OracleConnection .class );
32
- when (oracleConnection .unwrap (OracleConnection .class ))
33
- .thenReturn (oracleConnection );
34
- mockFileMapper (oracleConnection , expectedFileMapping );
35
- return oracleConnection ;
36
- }
37
-
38
- private void mockFileMapper (OracleConnection mockedOracleConnection , Object [] expectedFileMapping ) throws SQLException {
39
- Array fileMapperArray = mock (Array .class );
40
- CallableStatement fileMapperStatement = mock (CallableStatement .class );
41
-
42
- when (fileMapperArray .getArray ())
43
- .thenReturn (expectedFileMapping );
44
- when (fileMapperStatement .getArray (1 ))
45
- .thenReturn (fileMapperArray );
46
- when (
47
- mockedOracleConnection .prepareCall (argThat (
48
- a -> a .startsWith ("BEGIN ? := ut_file_mapper.build_file_mappings(" ))
49
- ))
50
- .thenReturn (fileMapperStatement );
51
- }
52
-
53
- private Matcher <String > doesOrDoesNotContainString (String string , boolean shouldBeThere ) {
54
- return (shouldBeThere )
55
- ? containsString (string )
56
- : not (containsString (string ));
57
- }
58
-
59
- private VerificationMode doesOrDoesNotGetCalled (boolean shouldBeThere ) {
60
- return (shouldBeThere )
61
- ? times (1 )
62
- : never ();
63
- }
64
-
65
- private void initTestRunnerStatementForVersion (Version version ) throws SQLException {
66
- testRunnerStatement = DynamicTestRunnerStatement
67
- .forVersion (version , oracleConnection , options , callableStatement );
68
- }
69
-
70
- private void checkBaseParameters () throws SQLException {
71
- assertThat (testRunnerStatement .getSql (), containsString ("a_paths => ?" ));
72
- verify (callableStatement ).setArray (1 , null );
73
- verify (oracleConnection ).createOracleArray (CustomTypes .UT_VARCHAR2_LIST , options .pathList .toArray ());
74
-
75
- assertThat (testRunnerStatement .getSql (), containsString ("a_reporters => ?" ));
76
- verify (callableStatement ).setArray (2 , null );
77
- verify (oracleConnection ).createOracleArray (CustomTypes .UT_REPORTERS , options .reporterList .toArray ());
78
-
79
- assertThat (testRunnerStatement .getSql (), containsString ("a_color_console => (case ? when 1 then true else false end)" ));
80
- verify (callableStatement ).setInt (3 , 0 );
81
-
82
- assertThat (testRunnerStatement .getSql (), containsString ("a_coverage_schemes => ?" ));
83
- verify (callableStatement ).setArray (4 , null );
84
- verify (oracleConnection ).createOracleArray (CustomTypes .UT_VARCHAR2_LIST , options .coverageSchemes .toArray ());
85
-
86
- assertThat (testRunnerStatement .getSql (), containsString ("a_source_file_mappings => ?" ));
87
- verify (callableStatement ).setArray (5 , null );
88
-
89
- assertThat (testRunnerStatement .getSql (), containsString ("a_test_file_mappings => ?" ));
90
- verify (callableStatement ).setArray (6 , null );
91
- verify (oracleConnection , times (2 )).createOracleArray (CustomTypes .UT_FILE_MAPPINGS , expectedFileMapping );
92
-
93
- assertThat (testRunnerStatement .getSql (), containsString ("a_include_objects => ?" ));
94
- verify (callableStatement ).setArray (7 , null );
95
- verify (oracleConnection ).createOracleArray (CustomTypes .UT_VARCHAR2_LIST , options .includeObjects .toArray ());
96
-
97
- assertThat (testRunnerStatement .getSql (), containsString ("a_exclude_objects => ?" ));
98
- verify (callableStatement ).setArray (8 , null );
99
- verify (oracleConnection ).createOracleArray (CustomTypes .UT_VARCHAR2_LIST , options .includeObjects .toArray ());
100
- }
101
-
102
- private void checkFailOnError (boolean shouldBeThere ) throws SQLException {
103
- assertThat (testRunnerStatement .getSql (), doesOrDoesNotContainString ("a_fail_on_errors => (case ? when 1 then true else false end)" , shouldBeThere ));
104
- verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setInt (9 , 1 );
105
- }
106
-
107
- private void checkClientCharacterSet (boolean shouldBeThere ) throws SQLException {
108
- assertThat (testRunnerStatement .getSql (), doesOrDoesNotContainString ("a_client_character_set => ?" , shouldBeThere ));
109
- verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (10 , "UTF8" );
110
- }
111
-
112
- private void checkRandomTestOrder (boolean shouldBeThere ) throws SQLException {
113
- assertThat (testRunnerStatement .getSql (), doesOrDoesNotContainString ("a_random_test_order => (case ? when 1 then true else false end)" , shouldBeThere ));
114
- verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setInt (11 , 1 );
115
- assertThat (testRunnerStatement .getSql (), doesOrDoesNotContainString ("a_random_test_order_seed => ?" , shouldBeThere ));
116
- verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setInt (12 , 123 );
117
- }
118
-
119
- private void checkTags (boolean shouldBeThere ) throws SQLException {
120
- assertThat (testRunnerStatement .getSql (), doesOrDoesNotContainString ("a_tags => ?" , shouldBeThere ));
121
- verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (13 , "WIP,long_running" );
122
- }
123
-
124
- private void checkExpr (boolean shouldBeThere ) throws SQLException {
125
- assertThat (testRunnerStatement .getSql (), doesOrDoesNotContainString ("a_include_schema_expr => ?" , shouldBeThere ));
126
- verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (14 , "a_*" );
127
- assertThat (testRunnerStatement .getSql (), doesOrDoesNotContainString ("a_include_object_expr => ?" , shouldBeThere ));
128
- verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (15 , "a_*" );
129
- assertThat (testRunnerStatement .getSql (), doesOrDoesNotContainString ("a_exclude_schema_expr => ?" , shouldBeThere ));
130
- verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (16 , "ut3:*_package*" );
131
- assertThat (testRunnerStatement .getSql (), doesOrDoesNotContainString ("a_exclude_object_expr => ?" , shouldBeThere ));
132
- verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (17 , "ut3:*_package*" );
133
- }
134
-
135
30
@ BeforeEach
136
31
void initParameters () throws SQLException {
137
32
expectedFileMapping = new Object []{new FileMapping ("someFile" , "owner" , "object" , "PACKAGE" )};
@@ -290,7 +185,7 @@ void version_3_1_8_parameters() throws SQLException {
290
185
291
186
@ Test
292
187
void version_3_1_13_parameters () throws SQLException {
293
- initTestRunnerStatementForVersion (Version .V3_1_11 );
188
+ initTestRunnerStatementForVersion (Version .V3_1_13 );
294
189
295
190
checkBaseParameters ();
296
191
checkFailOnError (true );
@@ -299,4 +194,121 @@ void version_3_1_13_parameters() throws SQLException {
299
194
checkTags (true );
300
195
checkExpr (true );
301
196
}
197
+
198
+ private OracleConnection getMockedOracleConnection (Object [] expectedFileMapping ) throws SQLException {
199
+ OracleConnection oracleConnection = mock (OracleConnection .class );
200
+ when (oracleConnection .unwrap (OracleConnection .class ))
201
+ .thenReturn (oracleConnection );
202
+ mockFileMapper (oracleConnection , expectedFileMapping );
203
+ return oracleConnection ;
204
+ }
205
+
206
+ private void mockFileMapper (OracleConnection mockedOracleConnection , Object [] expectedFileMapping ) throws SQLException {
207
+ Array fileMapperArray = mock (Array .class );
208
+ CallableStatement fileMapperStatement = mock (CallableStatement .class );
209
+
210
+ when (fileMapperArray .getArray ())
211
+ .thenReturn (expectedFileMapping );
212
+ when (fileMapperStatement .getArray (1 ))
213
+ .thenReturn (fileMapperArray );
214
+ when (
215
+ mockedOracleConnection .prepareCall (argThat (
216
+ a -> a .startsWith ("BEGIN ? := ut_file_mapper.build_file_mappings(" ))
217
+ ))
218
+ .thenReturn (fileMapperStatement );
219
+ }
220
+
221
+ private Matcher <String > doesOrDoesNotContainString (String string , boolean shouldBeThere ) {
222
+ return (shouldBeThere )
223
+ ? containsString (string )
224
+ : not (containsString (string ));
225
+ }
226
+
227
+ private VerificationMode doesOrDoesNotGetCalled (boolean shouldBeThere ) {
228
+ return (shouldBeThere )
229
+ ? times (1 )
230
+ : never ();
231
+ }
232
+
233
+ private void initTestRunnerStatementForVersion (Version version ) throws SQLException {
234
+ testRunnerStatement = DynamicTestRunnerStatement
235
+ .forVersion (version , oracleConnection , options , callableStatement );
236
+ }
237
+
238
+ private void checkBaseParameters () throws SQLException {
239
+ String sql = testRunnerStatement .getSql ();
240
+
241
+ assertThat (sql , containsString ("a_paths => ?" ));
242
+ verify (callableStatement ).setArray (1 , null );
243
+ verify (oracleConnection ).createOracleArray (CustomTypes .UT_VARCHAR2_LIST , options .pathList .toArray ());
244
+
245
+ assertThat (sql , containsString ("a_reporters => ?" ));
246
+ verify (callableStatement ).setArray (2 , null );
247
+ verify (oracleConnection ).createOracleArray (CustomTypes .UT_REPORTERS , options .reporterList .toArray ());
248
+
249
+ assertThat (sql , containsString ("a_color_console => (case ? when 1 then true else false end)" ));
250
+ verify (callableStatement ).setInt (3 , 0 );
251
+
252
+ assertThat (sql , containsString ("a_coverage_schemes => ?" ));
253
+ verify (callableStatement ).setArray (4 , null );
254
+ verify (oracleConnection ).createOracleArray (CustomTypes .UT_VARCHAR2_LIST , options .coverageSchemes .toArray ());
255
+
256
+ assertThat (sql , containsString ("a_source_file_mappings => ?" ));
257
+ verify (callableStatement ).setArray (5 , null );
258
+
259
+ assertThat (sql , containsString ("a_test_file_mappings => ?" ));
260
+ verify (callableStatement ).setArray (6 , null );
261
+ verify (oracleConnection , times (2 )).createOracleArray (CustomTypes .UT_FILE_MAPPINGS , expectedFileMapping );
262
+
263
+ assertThat (sql , containsString ("a_include_objects => ?" ));
264
+ verify (callableStatement ).setArray (7 , null );
265
+ verify (oracleConnection ).createOracleArray (CustomTypes .UT_VARCHAR2_LIST , options .includeObjects .toArray ());
266
+
267
+ assertThat (sql , containsString ("a_exclude_objects => ?" ));
268
+ verify (callableStatement ).setArray (8 , null );
269
+ verify (oracleConnection ).createOracleArray (CustomTypes .UT_VARCHAR2_LIST , options .includeObjects .toArray ());
270
+ }
271
+
272
+ private void checkFailOnError (boolean shouldBeThere ) throws SQLException {
273
+ String sql = testRunnerStatement .getSql ();
274
+
275
+ assertThat (sql , doesOrDoesNotContainString ("a_fail_on_errors => (case ? when 1 then true else false end)" , shouldBeThere ));
276
+ verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setInt (9 , 1 );
277
+ }
278
+
279
+ private void checkClientCharacterSet (boolean shouldBeThere ) throws SQLException {
280
+ String sql = testRunnerStatement .getSql ();
281
+
282
+ assertThat (sql , doesOrDoesNotContainString ("a_client_character_set => ?" , shouldBeThere ));
283
+ verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (10 , "UTF8" );
284
+ }
285
+
286
+ private void checkRandomTestOrder (boolean shouldBeThere ) throws SQLException {
287
+ String sql = testRunnerStatement .getSql ();
288
+
289
+ assertThat (sql , doesOrDoesNotContainString ("a_random_test_order => (case ? when 1 then true else false end)" , shouldBeThere ));
290
+ verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setInt (11 , 1 );
291
+ assertThat (sql , doesOrDoesNotContainString ("a_random_test_order_seed => ?" , shouldBeThere ));
292
+ verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setInt (12 , 123 );
293
+ }
294
+
295
+ private void checkTags (boolean shouldBeThere ) throws SQLException {
296
+ String sql = testRunnerStatement .getSql ();
297
+
298
+ assertThat (sql , doesOrDoesNotContainString ("a_tags => ?" , shouldBeThere ));
299
+ verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (13 , "WIP,long_running" );
300
+ }
301
+
302
+ private void checkExpr (boolean shouldBeThere ) throws SQLException {
303
+ String sql = testRunnerStatement .getSql ();
304
+
305
+ assertThat (sql , doesOrDoesNotContainString ("a_include_schema_expr => ?" , shouldBeThere ));
306
+ verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (14 , "a_*" );
307
+ assertThat (sql , doesOrDoesNotContainString ("a_include_object_expr => ?" , shouldBeThere ));
308
+ verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (15 , "a_*" );
309
+ assertThat (sql , doesOrDoesNotContainString ("a_exclude_schema_expr => ?" , shouldBeThere ));
310
+ verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (16 , "ut3:*_package*" );
311
+ assertThat (sql , doesOrDoesNotContainString ("a_exclude_object_expr => ?" , shouldBeThere ));
312
+ verify (callableStatement , doesOrDoesNotGetCalled (shouldBeThere )).setString (17 , "ut3:*_package*" );
313
+ }
302
314
}
0 commit comments