@@ -27,111 +27,6 @@ public class DynamicTestRunnerStatementTest {
2727 private TestRunnerOptions options ;
2828 private Object [] expectedFileMapping ;
2929
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-
13530 @ BeforeEach
13631 void initParameters () throws SQLException {
13732 expectedFileMapping = new Object []{new FileMapping ("someFile" , "owner" , "object" , "PACKAGE" )};
@@ -290,7 +185,7 @@ void version_3_1_8_parameters() throws SQLException {
290185
291186 @ Test
292187 void version_3_1_13_parameters () throws SQLException {
293- initTestRunnerStatementForVersion (Version .V3_1_11 );
188+ initTestRunnerStatementForVersion (Version .V3_1_13 );
294189
295190 checkBaseParameters ();
296191 checkFailOnError (true );
@@ -299,4 +194,121 @@ void version_3_1_13_parameters() throws SQLException {
299194 checkTags (true );
300195 checkExpr (true );
301196 }
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+ }
302314}
0 commit comments