11create or replace package body test_realtime_reporter as
22
3- g_xml_reports test_xmltype_list := test_xmltype_list ();
3+ g_xml_reports test_event_list := test_event_list ();
44
55 procedure create_test_suites_and_run is
66 pragma autonomous_transaction;
@@ -102,33 +102,17 @@ create or replace package body test_realtime_reporter as
102102
103103 <<run_report_and_cache_result>>
104104 declare
105- l_clob clob ;
105+ l_reporter ut3.ut_realtime_reporter := ut3.ut_realtime_reporter() ;
106106 begin
107- g_xml_reports.delete;
108- <<report_lines>>
109- for r in (
110- with
111- base as (
112- select sum(case when column_value like '<?xml%' then 1 else 0 end) over(order by rownum) group_no,
113- rownum as rn,
114- column_value as line
115- from table(ut3.ut.run('ut3_tester:realtime_reporting', ut3.ut_realtime_reporter()))
116- )
117- select group_no,
118- lead(group_no, 1, -1) over (order by rn) as next_group_no,
119- rn,
120- line
121- from base
122- order by rn
123- ) loop
124- ut3.ut_utils.append_to_clob(l_clob, r.line);
125- ut3.ut_utils.append_to_clob(l_clob, chr(10));
126- if r.group_no != r.next_group_no then
127- g_xml_reports.extend;
128- g_xml_reports(g_xml_reports.count) := xmltype(l_clob);
129- l_clob := null;
130- end if;
131- end loop report_lines;
107+ -- produce
108+ ut3.ut_runner.run(
109+ a_paths => ut3.ut_varchar2_list(':realtime_reporting'),
110+ a_reporters => ut3.ut_reporters(l_reporter)
111+ );
112+ -- consume
113+ select test_event_object(item_type, xmltype(text))
114+ bulk collect into g_xml_reports
115+ from table(ut3.ut_output_table_buffer(l_reporter.output_buffer.output_id).get_lines());
132116 end run_report_and_cache_result;
133117 end create_test_suites_and_run;
134118
@@ -137,8 +121,8 @@ create or replace package body test_realtime_reporter as
137121 l_expected sys_refcursor;
138122 begin
139123 open l_actual for
140- select t.column_value .extract('/event/@type').getstringval() as event_type,
141- t.column_value .extract('/event/suite/@id|/event/test/@id').getstringval() as item_id
124+ select t.event_doc .extract('/event/@type').getstringval() as event_type,
125+ t.event_doc .extract('/event/suite/@id|/event/test/@id').getstringval() as item_id
142126 from table(g_xml_reports) t;
143127 open l_expected for
144128 select 'pre-run' as event_type, null as item_id from dual union all
@@ -174,22 +158,22 @@ create or replace package body test_realtime_reporter as
174158 l_actual integer;
175159 l_expected integer := 7;
176160 begin
177- select t.column_value .extract('/event/totalNumberOfTests/text()').getnumberval()
161+ select t.event_doc .extract('/event/totalNumberOfTests/text()').getnumberval()
178162 into l_actual
179163 from table(g_xml_reports) t
180- where t.column_value.extract('/event/@type').getstringval() = 'pre-run';
164+ where t.event_type = 'pre-run';
181165 end total_number_of_tests;
182166
183167 procedure escaped_characters is
184168 l_actual varchar2(32767);
185169 l_expected varchar2(20) := 'suite <A>';
186170 begin
187- select t.column_value .extract(
171+ select t.event_doc .extract(
188172 '//suite[@id="realtime_reporting.check_realtime_reporting1"]/description/text()'
189173 ).getstringval()
190174 into l_actual
191175 from table(g_xml_reports) t
192- where t.column_value.extract('/event/@type').getstringval() = 'pre-run';
176+ where t.event_type = 'pre-run';
193177 ut.expect(l_actual).to_equal(l_expected);
194178 end escaped_characters;
195179
@@ -198,13 +182,13 @@ create or replace package body test_realtime_reporter as
198182 l_expected sys_refcursor;
199183 begin
200184 open l_actual for
201- select t.column_value .extract('//test/testNumber/text()')
185+ select t.event_doc .extract('//test/testNumber/text()')
202186 .getnumberval() as test_number,
203- t.column_value .extract('//test/totalNumberOfTests/text()')
187+ t.event_doc .extract('//test/totalNumberOfTests/text()')
204188 .getnumberval() as total_number_of_tests
205189 from table(g_xml_reports) t
206- where t.column_value.extract('/event/@type').getstringval() = 'pre-test'
207- and t.column_value .extract('//test/@id').getstringval() is not null;
190+ where t.event_type = 'pre-test'
191+ and t.event_doc .extract('//test/@id').getstringval() is not null;
208192 open l_expected for
209193 select level as test_number,
210194 7 as total_number_of_tests
@@ -218,21 +202,21 @@ create or replace package body test_realtime_reporter as
218202 l_expected sys_refcursor;
219203 begin
220204 open l_actual for
221- select t.column_value .extract('//test/testNumber/text()')
205+ select t.event_doc .extract('//test/testNumber/text()')
222206 .getnumberval() as test_number,
223- t.column_value .extract('//test/totalNumberOfTests/text()')
207+ t.event_doc .extract('//test/totalNumberOfTests/text()')
224208 .getnumberval() as total_number_of_tests
225209 from table(g_xml_reports) t
226- where t.column_value.extract('/event/@type').getstringval() = 'post-test'
227- and t.column_value .extract('//test/@id').getstringval() is not null
228- and t.column_value .extract('//test/startTime/text()').getstringval() is not null
229- and t.column_value .extract('//test/endTime/text()').getstringval() is not null
230- and t.column_value .extract('//test/executionTime/text()').getnumberval() is not null
231- and t.column_value .extract('//test/counter/disabled/text()').getnumberval() is not null
232- and t.column_value .extract('//test/counter/success/text()').getnumberval() is not null
233- and t.column_value .extract('//test/counter/failure/text()').getnumberval() is not null
234- and t.column_value .extract('//test/counter/error/text()').getnumberval() is not null
235- and t.column_value .extract('//test/counter/warning/text()').getnumberval() is not null;
210+ where t.event_type = 'post-test'
211+ and t.event_doc .extract('//test/@id').getstringval() is not null
212+ and t.event_doc .extract('//test/startTime/text()').getstringval() is not null
213+ and t.event_doc .extract('//test/endTime/text()').getstringval() is not null
214+ and t.event_doc .extract('//test/executionTime/text()').getnumberval() is not null
215+ and t.event_doc .extract('//test/counter/disabled/text()').getnumberval() is not null
216+ and t.event_doc .extract('//test/counter/success/text()').getnumberval() is not null
217+ and t.event_doc .extract('//test/counter/failure/text()').getnumberval() is not null
218+ and t.event_doc .extract('//test/counter/error/text()').getnumberval() is not null
219+ and t.event_doc .extract('//test/counter/warning/text()').getnumberval() is not null;
236220 open l_expected for
237221 select level as test_number,
238222 7 as total_number_of_tests
@@ -245,12 +229,12 @@ create or replace package body test_realtime_reporter as
245229 l_actual varchar2(32767);
246230 l_expected varchar2(80) := '<![CDATA[Actual: 1 (number) was expected to equal: 2 (number) ]]>';
247231 begin
248- select t.column_value .extract(
232+ select t.event_doc .extract(
249233 '/event/test/failedExpectations/expectation[1]/message/text()'
250234 ).getstringval()
251235 into l_actual
252236 from table(g_xml_reports) t
253- where t.column_value .extract('/event[@type="post-test"]/test/@id').getstringval()
237+ where t.event_doc .extract('/event[@type="post-test"]/test/@id').getstringval()
254238 = 'realtime_reporting.check_realtime_reporting1.test context.test_2_nok';
255239 ut.expect(l_actual).to_equal(l_expected);
256240 end single_failed_message;
@@ -264,11 +248,11 @@ create or replace package body test_realtime_reporter as
264248 from table(g_xml_reports) t,
265249 xmltable(
266250 '/event/test/failedExpectations/expectation'
267- passing t.column_value
251+ passing t.event_doc
268252 columns message clob path 'message',
269253 caller clob path 'caller'
270254 ) x
271- where t.column_value .extract('/event[@type="post-test"]/test/@id').getstringval()
255+ where t.event_doc .extract('/event[@type="post-test"]/test/@id').getstringval()
272256 = 'realtime_reporting.check_realtime_reporting2.test_4_nok'
273257 and x.message is not null
274258 and x.caller is not null;
@@ -280,10 +264,10 @@ create or replace package body test_realtime_reporter as
280264 l_expected_list ut3.ut_varchar2_list;
281265 l_expected clob;
282266 begin
283- select t.column_value .extract('//event/test/serverOutput/text()').getstringval()
267+ select t.event_doc .extract('//event/test/serverOutput/text()').getstringval()
284268 into l_actual
285269 from table(g_xml_reports) t
286- where t.column_value .extract('/event[@type="post-test"]/test/@id').getstringval()
270+ where t.event_doc .extract('/event[@type="post-test"]/test/@id').getstringval()
287271 = 'realtime_reporting.check_realtime_reporting3.test_7_with_serveroutput';
288272 ut3.ut_utils.append_to_list(l_expected_list, '<![CDATA[before test 7');
289273 ut3.ut_utils.append_to_list(l_expected_list, 'after test 7');
@@ -297,10 +281,10 @@ create or replace package body test_realtime_reporter as
297281 l_expected_list ut3.ut_varchar2_list;
298282 l_expected clob;
299283 begin
300- select t.column_value .extract('//event/suite/serverOutput/text()').getstringval()
284+ select t.event_doc .extract('//event/suite/serverOutput/text()').getstringval()
301285 into l_actual
302286 from table(g_xml_reports) t
303- where t.column_value .extract('/event[@type="post-suite"]/suite/@id').getstringval()
287+ where t.event_doc .extract('/event[@type="post-suite"]/suite/@id').getstringval()
304288 = 'realtime_reporting.check_realtime_reporting3';
305289 ut3.ut_utils.append_to_list(l_expected_list, '<![CDATA[Now, a no_data_found exception is raised');
306290 ut3.ut_utils.append_to_list(l_expected_list, 'dbms_output and error stack is reported for this suite.');
@@ -315,10 +299,10 @@ create or replace package body test_realtime_reporter as
315299 l_expected_list ut3.ut_varchar2_list;
316300 l_expected clob;
317301 begin
318- select t.column_value .extract('//event/test/errorStack/text()').getstringval()
302+ select t.event_doc .extract('//event/test/errorStack/text()').getstringval()
319303 into l_actual
320304 from table(g_xml_reports) t
321- where t.column_value .extract('/event[@type="post-test"]/test/@id').getstringval()
305+ where t.event_doc .extract('/event[@type="post-test"]/test/@id').getstringval()
322306 = 'realtime_reporting.check_realtime_reporting3.test_6_with_runtime_error';
323307 ut3.ut_utils.append_to_list(l_expected_list, '<![CDATA[ORA-00942: table or view does not exist');
324308 ut3.ut_utils.append_to_list(l_expected_list, 'ORA-06512: at "%.CHECK_REALTIME_REPORTING3", line 5');
@@ -332,10 +316,10 @@ create or replace package body test_realtime_reporter as
332316 l_expected_list ut3.ut_varchar2_list;
333317 l_expected clob;
334318 begin
335- select t.column_value .extract('//event/suite/errorStack/text()').getstringval()
319+ select t.event_doc .extract('//event/suite/errorStack/text()').getstringval()
336320 into l_actual
337321 from table(g_xml_reports) t
338- where t.column_value .extract('/event[@type="post-suite"]/suite/@id').getstringval()
322+ where t.event_doc .extract('/event[@type="post-suite"]/suite/@id').getstringval()
339323 = 'realtime_reporting.check_realtime_reporting3';
340324 ut3.ut_utils.append_to_list(l_expected_list, '<![CDATA[ORA-01403: no data found');
341325 ut3.ut_utils.append_to_list(l_expected_list, 'ORA-06512: at "%.CHECK_REALTIME_REPORTING3", line 21');
0 commit comments