|
1 | 1 | create or replace package body test_annot_throws_exception |
2 | 2 | is |
3 | | - procedure create_package is |
| 3 | + g_tests_results ut3.ut_varchar2_list; |
| 4 | + |
| 5 | + procedure recolect_tests_results is |
4 | 6 | pragma autonomous_transaction; |
5 | 7 |
|
6 | 8 | l_package_spec VARCHAR2(32737); |
7 | 9 | l_package_body VARCHAR2(32737); |
| 10 | + l_drop_statment VARCHAR2(32737); |
8 | 11 | begin |
9 | 12 | l_package_spec := ' |
10 | 13 | create package annotated_package_with_throws is |
11 | 14 | --%suite(Dummy package to test annotation throws) |
12 | 15 |
|
13 | | - --%test(Throws samme annoted exception) |
| 16 | + --%test(Throws same annoted exception) |
14 | 17 | --%throws(-20145) |
15 | 18 | procedure raised_same_exception; |
16 | 19 |
|
|
90 | 93 |
|
91 | 94 | execute immediate l_package_spec; |
92 | 95 | execute immediate l_package_body; |
93 | | - end; |
94 | | - |
95 | | - procedure drop_package is |
96 | | - pragma autonomous_transaction; |
97 | | - |
98 | | - l_drop_statment VARCHAR2(32737); |
99 | | - begin |
| 96 | + |
| 97 | + select * bulk collect into g_tests_results from table(ut3.ut.run(('annotated_package_with_throws'))); |
| 98 | + |
100 | 99 | l_drop_statment := 'drop package annotated_package_with_throws'; |
101 | 100 | execute immediate l_drop_statment; |
102 | 101 | end; |
103 | | - |
104 | | - function execution_test_result(a_procedure_test_name in varchar) return varchar2 is |
105 | | - l_result varchar2(32737); |
| 102 | + |
| 103 | + function test_result(a_test_results in ut3.ut_varchar2_list, a_procedure_name in varchar2) return varchar2 |
| 104 | + is |
| 105 | + l_test_result varchar2(200); |
| 106 | + l_index integer; |
| 107 | + l_regexp_failure varchar2(200) := '^[ ]*[0-9]+\) '||a_procedure_name||'$'; |
| 108 | + l_regexp_errored varchar2(200) := '^[ ]*ORA-[0-9]*:'; |
106 | 109 | begin |
107 | | - select column_value |
108 | | - into l_result |
109 | | - from table(ut3.ut.run('annotated_package_with_throws.'||a_procedure_test_name, ut3.ut_documentation_reporter())) |
110 | | - where regexp_like(column_value, '^([0-9]+) tests, [0-9]+ failed, [0-9]+ errored, [0-9]+ disabled, [0-9]+ warning\(s\)$'); |
111 | | - |
112 | | - return l_result; |
| 110 | + if a_test_results is not null then |
| 111 | + l_index := a_test_results.first; |
| 112 | + |
| 113 | + while(l_index is not null) loop |
| 114 | + if regexp_like(a_test_results(l_index), l_regexp_failure) then |
| 115 | + if regexp_like(a_test_results(l_index + 1), l_regexp_errored) then |
| 116 | + l_test_result := 'ERRORED'; |
| 117 | + exit; |
| 118 | + else |
| 119 | + l_test_result := 'FAILED'; |
| 120 | + exit; |
| 121 | + end if; |
| 122 | + end if; |
| 123 | + |
| 124 | + l_index := a_test_results.next(l_index); |
| 125 | + end loop; |
| 126 | + -- if nothing was found it returns SUCCESSFUL |
| 127 | + if l_test_result is null then |
| 128 | + l_test_result := 'SUCCESSFUL'; |
| 129 | + end if; |
| 130 | + end if; |
| 131 | + |
| 132 | + return l_test_result; |
113 | 133 | end; |
114 | 134 |
|
115 | 135 | procedure throws_same_annotated_except is |
116 | 136 | l_result VARCHAR2(32737); |
117 | 137 | begin |
118 | 138 | --Act |
119 | | - l_result := execution_test_result('raised_same_exception'); |
| 139 | + l_result := test_result(g_tests_results, 'raised_same_exception'); |
120 | 140 | --Assert |
121 | | - ut.expect(l_result).to_equal('1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)'); |
| 141 | + ut.expect(l_result).to_equal('SUCCESSFUL'); |
122 | 142 | end; |
123 | 143 |
|
124 | 144 | procedure throws_one_of_annotated_excpt is |
125 | 145 | l_result VARCHAR2(32737); |
126 | 146 | begin |
127 | 147 | --Act |
128 | | - l_result := execution_test_result('raised_one_listed_exception'); |
| 148 | + l_result := test_result(g_tests_results, 'raised_one_listed_exception'); |
129 | 149 | --Assert |
130 | | - ut.expect(l_result).to_equal('1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)'); |
| 150 | + ut.expect(l_result).to_equal('SUCCESSFUL'); |
131 | 151 | end; |
132 | 152 |
|
133 | 153 | procedure throws_diff_annotated_except is |
134 | 154 | l_result VARCHAR2(32737); |
135 | 155 | begin |
136 | 156 | --Act |
137 | | - l_result := execution_test_result('raised_diff_exception'); |
| 157 | + l_result := test_result(g_tests_results, 'raised_diff_exception'); |
138 | 158 | --Assert |
139 | | - ut.expect(l_result).to_equal('1 tests, 1 failed, 0 errored, 0 disabled, 0 warning(s)'); |
| 159 | + ut.expect(l_result).to_equal('FAILED'); |
140 | 160 | end; |
141 | 161 |
|
142 | 162 | procedure throws_empty is |
143 | 163 | l_result VARCHAR2(32737); |
144 | 164 | begin |
145 | 165 | --Act |
146 | | - l_result := execution_test_result('empty_throws'); |
| 166 | + l_result := test_result(g_tests_results, 'empty_throws'); |
147 | 167 | --Assert |
148 | | - ut.expect(l_result).to_equal('1 tests, 0 failed, 1 errored, 0 disabled, 0 warning(s)'); |
| 168 | + ut.expect(l_result).to_equal('ERRORED'); |
149 | 169 | end; |
150 | 170 |
|
151 | 171 | procedure bad_paramters_with_except is |
152 | 172 | l_result VARCHAR2(32737); |
153 | 173 | begin |
154 | 174 | --Act |
155 | | - l_result := execution_test_result('bad_paramters_with_except'); |
| 175 | + l_result := test_result(g_tests_results, 'bad_paramters_with_except'); |
156 | 176 | --Assert |
157 | | - ut.expect(l_result).to_equal('1 tests, 0 failed, 1 errored, 0 disabled, 0 warning(s)'); |
| 177 | + ut.expect(l_result).to_equal('ERRORED'); |
158 | 178 | end; |
159 | 179 |
|
160 | 180 | procedure bad_paramters_without_except is |
161 | 181 | l_result VARCHAR2(32737); |
162 | 182 | begin |
163 | 183 | --Act |
164 | | - l_result := execution_test_result('bad_paramters_without_except'); |
| 184 | + l_result := test_result(g_tests_results, 'bad_paramters_without_except'); |
165 | 185 | --Assert |
166 | | - ut.expect(l_result).to_equal('1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)'); |
| 186 | + ut.expect(l_result).to_equal('SUCCESSFUL'); |
167 | 187 | end; |
168 | 188 |
|
169 | 189 | procedure one_valid_exception_number is |
170 | 190 | l_result VARCHAR2(32737); |
171 | 191 | begin |
172 | 192 | --Act |
173 | | - l_result := execution_test_result('one_valid_exception_number'); |
| 193 | + l_result := test_result(g_tests_results, 'one_valid_exception_number'); |
174 | 194 | --Assert |
175 | | - ut.expect(l_result).to_equal('1 tests, 0 failed, 0 errored, 0 disabled, 0 warning(s)'); |
| 195 | + ut.expect(l_result).to_equal('SUCCESSFUL'); |
176 | 196 | end; |
177 | 197 |
|
178 | 198 | procedure nothing_thrown is |
179 | 199 | l_result VARCHAR2(32737); |
180 | 200 | begin |
181 | 201 | --Act |
182 | | - l_result := execution_test_result('nothing_thrown'); |
| 202 | + l_result := test_result(g_tests_results, 'nothing_thrown'); |
183 | 203 | --Assert |
184 | | - ut.expect(l_result).to_equal('1 tests, 1 failed, 0 errored, 0 disabled, 0 warning(s)'); |
| 204 | + ut.expect(l_result).to_equal('FAILED'); |
185 | 205 | end; |
186 | 206 | end; |
187 | 207 | / |
0 commit comments