|
1 | 1 | create or replace package body test_teamcity_reporter as |
2 | 2 |
|
| 3 | + procedure create_a_test_package is |
| 4 | + pragma autonomous_transaction; |
| 5 | + begin |
| 6 | + execute immediate q'[create or replace package check_escape_special_chars is |
| 7 | + --%suite(A suite with 'quote') |
| 8 | + |
| 9 | + --%test(A test with 'quote') |
| 10 | + procedure test_do_stuff; |
| 11 | + |
| 12 | + end;]'; |
| 13 | + execute immediate q'[create or replace package body check_escape_special_chars is |
| 14 | + procedure test_do_stuff is |
| 15 | + begin |
| 16 | + ut3.ut.expect(' [ ' || chr(13) || chr(10) || ' ] ' ).to_be_null; |
| 17 | + end; |
| 18 | + |
| 19 | + end;]'; |
| 20 | + |
| 21 | + execute immediate q'[create or replace package check_trims_long_output is |
| 22 | + --%suite |
| 23 | + |
| 24 | + --%test |
| 25 | + procedure long_output; |
| 26 | + end;]'; |
| 27 | + execute immediate q'[create or replace package body check_trims_long_output is |
| 28 | + procedure long_output is |
| 29 | + begin |
| 30 | + ut3.ut.expect(rpad('aVarchar',4000,'a')).to_be_null; |
| 31 | + end; |
| 32 | + end;]'; |
| 33 | + |
| 34 | + end; |
| 35 | + |
| 36 | + |
3 | 37 | procedure report_produces_expected_out is |
4 | 38 | l_output_data ut3.ut_varchar2_list; |
5 | 39 | l_output clob; |
@@ -48,5 +82,50 @@ create or replace package body test_teamcity_reporter as |
48 | 82 | ut.expect(ut3.ut_utils.table_to_clob(l_output_data)).to_be_like(l_expected); |
49 | 83 | end; |
50 | 84 |
|
| 85 | + procedure escape_special_chars is |
| 86 | + l_output_data ut3.ut_varchar2_list; |
| 87 | + l_output clob; |
| 88 | + l_expected varchar2(32767); |
| 89 | + begin |
| 90 | + l_expected := q'{%##teamcity[testSuiteStarted timestamp='%' name='A suite with |'quote|''] |
| 91 | +%##teamcity[testStarted timestamp='%' captureStandardOutput='true' name='ut3_tester.check_escape_special_chars.test_do_stuff'] |
| 92 | +%##teamcity[testFailed timestamp='%' details='Actual: (varchar2)|n |' |[ |r|n |] |'|nwas expected to be null' name='ut3_tester.check_escape_special_chars.test_do_stuff'] |
| 93 | +%##teamcity[testFinished timestamp='%' duration='%' name='ut3_tester.check_escape_special_chars.test_do_stuff'] |
| 94 | +%##teamcity[testSuiteFinished timestamp='%' name='A suite with |'quote|'']}'; |
| 95 | + --act |
| 96 | + select * |
| 97 | + bulk collect into l_output_data |
| 98 | + from table(ut3.ut.run('check_escape_special_chars',ut3.ut_teamcity_reporter())); |
| 99 | + |
| 100 | + --assert |
| 101 | + ut.expect(ut3.ut_utils.table_to_clob(l_output_data)).to_be_like(l_expected); |
| 102 | + end; |
| 103 | + |
| 104 | + procedure trims_long_output is |
| 105 | + l_output_data ut3.ut_varchar2_list; |
| 106 | + l_output clob; |
| 107 | + l_expected varchar2(32767); |
| 108 | + begin |
| 109 | + l_expected := q'{%##teamcity[testSuiteStarted timestamp='%' name='check_trims_long_output'] |
| 110 | +%##teamcity[testStarted timestamp='%' captureStandardOutput='true' name='ut3_tester.check_trims_long_output.long_output'] |
| 111 | +%##teamcity[testFailed timestamp='%' details='Actual: (varchar2)|n |'aVarcharaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa|[...|]' name='ut3_tester.check_trims_long_output.long_output'] |
| 112 | +%##teamcity[testFinished timestamp='%' duration='%' name='ut3_tester.check_trims_long_output.long_output'] |
| 113 | +%##teamcity[testSuiteFinished timestamp='%' name='check_trims_long_output']}'; |
| 114 | + --act |
| 115 | + select * |
| 116 | + bulk collect into l_output_data |
| 117 | + from table(ut3.ut.run('check_trims_long_output',ut3.ut_teamcity_reporter())); |
| 118 | + |
| 119 | + --assert |
| 120 | + ut.expect(ut3.ut_utils.table_to_clob(l_output_data)).to_be_like(l_expected); |
| 121 | + end; |
| 122 | + |
| 123 | + procedure remove_test_package is |
| 124 | + pragma autonomous_transaction; |
| 125 | + begin |
| 126 | + execute immediate 'drop package check_escape_special_chars'; |
| 127 | + execute immediate 'drop package check_trims_long_output'; |
| 128 | + end; |
| 129 | + |
51 | 130 | end; |
52 | 131 | / |
0 commit comments