Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f35b433

Browse files
authored
Merge pull request #46 from Pazus/reporter-hooks
Reporter hooks
2 parents ce2d771 + 066ba98 commit f35b433

24 files changed

Lines changed: 404 additions & 159 deletions

examples/RunExampleTestSuiteWithCustomDBMSOutputReporter.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,6 @@ end;
4242

4343

4444
--FIXME this drop is causing issues when executing script several times within single session
45-
--drop type ut_custom_reporter;
45+
drop type ut_custom_reporter;
4646
drop package ut_exampletest;
4747
drop package ut_exampletest2;

examples/RunExampleTestThroughBaseClass.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ set echo off
99

1010
declare
1111
simple_test ut_test;
12-
reporter ut_suite_reporter;
12+
reporter ut_reporter;
1313
begin
1414

1515
simple_test := ut_test(a_object_name => 'ut_exampletest'

examples/ut_custom_reporter.tpb

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ create or replace type body ut_custom_reporter is
22

33
constructor function ut_custom_reporter(a_tab_size integer default 4) return self as result is
44
begin
5-
self.name := $$plsql_unit;
6-
self.lvl := 0;
5+
self.name := $$plsql_unit;
6+
self.lvl := 0;
77
self.tab_size := a_tab_size;
88
return;
99
end;
1010

1111
member function tab(self in ut_custom_reporter) return varchar2 is
12-
tab_str varchar2(255);
12+
tab_str varchar2(255);
1313
begin
14-
tab_str := rpad(' ', lvl * tab_size);
14+
tab_str := rpad(' ', lvl * tab_size);
1515
return tab_str;
1616
end tab;
1717

@@ -20,36 +20,36 @@ create or replace type body ut_custom_reporter is
2020
(self as ut_dbms_output_suite_reporter).print(tab || msg);
2121
end print;
2222

23-
overriding member procedure begin_suite(self in out nocopy ut_custom_reporter, a_suite ut_object) as
23+
overriding member procedure before_suite(self in out nocopy ut_custom_reporter, a_suite ut_object) as
2424
begin
25-
(self as ut_dbms_output_suite_reporter).begin_suite(a_suite);
25+
(self as ut_dbms_output_suite_reporter).before_suite(a_suite);
2626
lvl := lvl + 1;
2727
end;
2828

29-
overriding member procedure begin_test(self in out nocopy ut_custom_reporter, a_test ut_object) as
29+
overriding member procedure before_test(self in out nocopy ut_custom_reporter, a_test ut_object) as
3030
begin
31-
(self as ut_dbms_output_suite_reporter).begin_test(a_test);
31+
(self as ut_dbms_output_suite_reporter).before_test(a_test);
3232
lvl := lvl + 1;
3333
end;
34-
35-
overriding member procedure on_assert(self in out nocopy ut_custom_reporter, a_assert ut_object) is
36-
begin
37-
lvl := lvl + 1;
38-
(self as ut_dbms_output_suite_reporter).on_assert(a_assert);
34+
35+
overriding member procedure on_assert_process(self in out nocopy ut_custom_reporter, a_assert ut_object) is
36+
begin
37+
lvl := lvl + 1;
38+
(self as ut_dbms_output_suite_reporter).on_assert_process(a_assert);
3939
lvl := lvl - 1;
40-
end;
40+
end;
4141

42-
overriding member procedure end_test(self in out nocopy ut_custom_reporter, a_test ut_object) as
42+
overriding member procedure after_test(self in out nocopy ut_custom_reporter, a_test ut_object) as
4343
begin
4444
lvl := lvl - 1;
45-
(self as ut_dbms_output_suite_reporter).end_test(a_test);
45+
(self as ut_dbms_output_suite_reporter).after_test(a_test);
4646
end;
4747

48-
overriding member procedure end_suite(self in out nocopy ut_custom_reporter, a_suite ut_object) as
48+
overriding member procedure after_suite(self in out nocopy ut_custom_reporter, a_suite ut_object) as
4949
begin
5050
lvl := lvl - 1;
51-
(self as ut_dbms_output_suite_reporter).end_suite(a_suite);
51+
(self as ut_dbms_output_suite_reporter).after_suite(a_suite);
5252
end;
53-
53+
5454
end;
5555
/

examples/ut_custom_reporter.tps

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ create or replace type ut_custom_reporter under ut_dbms_output_suite_reporter
77
constructor function ut_custom_reporter(a_tab_size integer default 4) return self as result,
88
member function tab(self in ut_custom_reporter) return varchar2,
99
overriding member procedure print(msg varchar2),
10-
overriding member procedure begin_suite(self in out nocopy ut_custom_reporter, a_suite ut_object),
11-
overriding member procedure begin_test(self in out nocopy ut_custom_reporter, a_test ut_object),
12-
overriding member procedure on_assert(self in out nocopy ut_custom_reporter, a_assert ut_object),
13-
overriding member procedure end_test(self in out nocopy ut_custom_reporter, a_test ut_object),
14-
overriding member procedure end_suite(self in out nocopy ut_custom_reporter, a_suite ut_object)
10+
overriding member procedure before_suite(self in out nocopy ut_custom_reporter, a_suite ut_object),
11+
overriding member procedure before_test(self in out nocopy ut_custom_reporter, a_test ut_object),
12+
overriding member procedure on_assert_process(self in out nocopy ut_custom_reporter, a_assert ut_object),
13+
overriding member procedure after_test(self in out nocopy ut_custom_reporter, a_test ut_object),
14+
overriding member procedure after_suite(self in out nocopy ut_custom_reporter, a_suite ut_object)
1515
)
1616
not final
1717
/

source/install.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ prompt Installing utplsql framework
88
@@types/ut_executable.tps
99
@@types/ut_assert_result.tps
1010
@@ut_assert.pks
11-
@@types/ut_suite_reporter.tps
11+
@@types/ut_reporter.tps
1212
@@types/ut_reporters_list.tps
1313
@@types/ut_composite_reporter.tps
1414
@@types/ut_test_object.tps
@@ -22,7 +22,7 @@ prompt Installing utplsql framework
2222

2323
@@ut_utils.pkb
2424
@@types/ut_assert_result.tpb
25-
@@types/ut_suite_reporter.tpb
25+
@@types/ut_reporter.tpb
2626
@@types/ut_object.tpb
2727
@@types/ut_composite_object.tpb
2828
@@types/ut_test.tpb

source/types/ut_composite_reporter.tpb

Lines changed: 120 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ create or replace type body ut_composite_reporter is
88
return;
99
end;
1010

11-
member procedure add_reporter(self in out nocopy ut_composite_reporter, a_reporter ut_suite_reporter) is
11+
member procedure add_reporter(self in out nocopy ut_composite_reporter, a_reporter ut_reporter) is
1212
begin
1313
self.reporters.extend(1);
1414
self.reporters(self.reporters.last) := a_reporter;
@@ -23,34 +23,143 @@ create or replace type body ut_composite_reporter is
2323

2424
end;
2525

26-
overriding member procedure begin_suite(self in out nocopy ut_composite_reporter, a_suite ut_object) is
26+
overriding member procedure before_run(self in out nocopy ut_composite_reporter, a_suites in ut_objects_list) is
2727
begin
2828
for i in 1 .. self.reporters.count loop
29-
self.reporters(i).begin_suite(a_suite => a_suite);
29+
self.reporters(i).before_run(a_suites => a_suites);
3030
end loop;
3131
end;
32-
overriding member procedure begin_test(self in out nocopy ut_composite_reporter, a_test ut_object) is
32+
overriding member procedure after_run(self in out nocopy ut_composite_reporter, a_suites in ut_objects_list) is
3333
begin
3434
for i in 1 .. self.reporters.count loop
35-
self.reporters(i).begin_test(a_test => a_test);
35+
self.reporters(i).after_run(a_suites => a_suites);
3636
end loop;
3737
end;
38-
overriding member procedure on_assert(self in out nocopy ut_composite_reporter, a_assert ut_object) is
38+
39+
-- suite hooks
40+
overriding member procedure before_suite(self in out nocopy ut_composite_reporter, a_suite in ut_object) is
41+
begin
42+
for i in 1 .. self.reporters.count loop
43+
self.reporters(i).before_suite(a_suite => a_suite);
44+
end loop;
45+
end;
46+
47+
overriding member procedure before_suite_setup(self in out nocopy ut_composite_reporter, a_suite in ut_object) is
48+
begin
49+
for i in 1 .. self.reporters.count loop
50+
self.reporters(i).before_suite_setup(a_suite => a_suite);
51+
end loop;
52+
end;
53+
overriding member procedure after_suite_setup(self in out nocopy ut_composite_reporter, a_suite in ut_object) is
54+
begin
55+
for i in 1 .. self.reporters.count loop
56+
self.reporters(i).after_suite_setup(a_suite => a_suite);
57+
end loop;
58+
end;
59+
60+
overriding member procedure before_suite_item(self in out nocopy ut_composite_reporter, a_suite in ut_object, a_item_index pls_integer) is
61+
begin
62+
for i in 1 .. self.reporters.count loop
63+
self.reporters(i).before_suite_item(a_suite => a_suite, a_item_index => a_item_index);
64+
end loop;
65+
end;
66+
overriding member procedure after_suite_item(self in out nocopy ut_composite_reporter, a_suite in ut_object, a_item_index pls_integer) is
3967
begin
4068
for i in 1 .. self.reporters.count loop
41-
self.reporters(i).on_assert(a_assert => a_assert);
69+
self.reporters(i).after_suite_item(a_suite => a_suite, a_item_index => a_item_index);
4270
end loop;
4371
end;
44-
overriding member procedure end_test(self in out nocopy ut_composite_reporter, a_test ut_object) is
72+
73+
overriding member procedure before_suite_teardown(self in out nocopy ut_composite_reporter, a_suite in ut_object) is
74+
begin
75+
for i in 1 .. self.reporters.count loop
76+
self.reporters(i).before_suite_teardown(a_suite => a_suite);
77+
end loop;
78+
end;
79+
overriding member procedure after_suite_teardown(self in out nocopy ut_composite_reporter, a_suite in ut_object) is
80+
begin
81+
for i in 1 .. self.reporters.count loop
82+
self.reporters(i).after_suite_teardown(a_suite => a_suite);
83+
end loop;
84+
end;
85+
86+
overriding member procedure after_suite(self in out nocopy ut_composite_reporter, a_suite in ut_object) is
4587
begin
4688
for i in 1 .. self.reporters.count loop
47-
self.reporters(i).end_test(a_test => a_test);
89+
self.reporters(i).after_suite(a_suite => a_suite);
4890
end loop;
4991
end;
50-
overriding member procedure end_suite(self in out nocopy ut_composite_reporter, a_suite ut_object) is
92+
93+
-- test hooks
94+
overriding member procedure before_test(self in out nocopy ut_composite_reporter, a_test in ut_object) is
95+
begin
96+
for i in 1 .. self.reporters.count loop
97+
self.reporters(i).before_test(a_test => a_test);
98+
end loop;
99+
end;
100+
101+
overriding member procedure before_test_setup(self in out nocopy ut_composite_reporter, a_test in ut_object) is
102+
begin
103+
for i in 1 .. self.reporters.count loop
104+
self.reporters(i).before_test_setup(a_test => a_test);
105+
end loop;
106+
end;
107+
overriding member procedure after_test_setup(self in out nocopy ut_composite_reporter, a_test in ut_object) is
108+
begin
109+
for i in 1 .. self.reporters.count loop
110+
self.reporters(i).after_test_setup(a_test => a_test);
111+
end loop;
112+
end;
113+
114+
overriding member procedure before_test_execute(self in out nocopy ut_composite_reporter, a_test in ut_object) is
115+
begin
116+
for i in 1 .. self.reporters.count loop
117+
self.reporters(i).before_test_execute(a_test => a_test);
118+
end loop;
119+
end;
120+
overriding member procedure after_test_execute(self in out nocopy ut_composite_reporter, a_test in ut_object) is
121+
begin
122+
for i in 1 .. self.reporters.count loop
123+
self.reporters(i).after_test_execute(a_test => a_test);
124+
end loop;
125+
end;
126+
127+
overriding member procedure before_test_teardown(self in out nocopy ut_composite_reporter, a_test in ut_object) is
128+
begin
129+
for i in 1 .. self.reporters.count loop
130+
self.reporters(i).before_test_teardown(a_test => a_test);
131+
end loop;
132+
end;
133+
overriding member procedure after_test_teardown(self in out nocopy ut_composite_reporter, a_test in ut_object) is
134+
begin
135+
for i in 1 .. self.reporters.count loop
136+
self.reporters(i).after_test_teardown(a_test => a_test);
137+
end loop;
138+
end;
139+
140+
overriding member procedure before_asserts_process(self in out nocopy ut_composite_reporter, a_test in ut_object) is
141+
begin
142+
for i in 1 .. self.reporters.count loop
143+
self.reporters(i).before_asserts_process(a_test => a_test);
144+
end loop;
145+
end;
146+
overriding member procedure on_assert_process(self in out nocopy ut_composite_reporter, a_assert in ut_object) is
147+
begin
148+
for i in 1 .. self.reporters.count loop
149+
self.reporters(i).on_assert_process(a_assert => a_assert);
150+
end loop;
151+
end;
152+
overriding member procedure after_asserts_process(self in out nocopy ut_composite_reporter, a_test in ut_object) is
153+
begin
154+
for i in 1 .. self.reporters.count loop
155+
self.reporters(i).after_asserts_process(a_test => a_test);
156+
end loop;
157+
end;
158+
159+
overriding member procedure after_test(self in out nocopy ut_composite_reporter, a_test in ut_object) is
51160
begin
52161
for i in 1 .. self.reporters.count loop
53-
self.reporters(i).end_suite(a_suite => a_suite);
162+
self.reporters(i).after_test(a_test => a_test);
54163
end loop;
55164
end;
56165

source/types/ut_composite_reporter.tps

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,47 @@
1-
create or replace type ut_composite_reporter under ut_suite_reporter
1+
create or replace type ut_composite_reporter under ut_reporter
22
(
33
reporters ut_reporters_list,
44

55
constructor function ut_composite_reporter(a_reporters ut_reporters_list default ut_reporters_list())
66
return self as result,
7-
member procedure add_reporter(self in out nocopy ut_composite_reporter, a_reporter ut_suite_reporter),
7+
member procedure add_reporter(self in out nocopy ut_composite_reporter, a_reporter ut_reporter),
88
member procedure remove_reporter(self in out nocopy ut_composite_reporter, a_index pls_integer),
9+
10+
-- tese-run hooks
11+
overriding member procedure before_run(self in out nocopy ut_composite_reporter, a_suites in ut_objects_list),
12+
overriding member procedure after_run(self in out nocopy ut_composite_reporter, a_suites in ut_objects_list),
913

10-
overriding member procedure begin_suite(self in out nocopy ut_composite_reporter, a_suite in ut_object),
11-
overriding member procedure begin_test(self in out nocopy ut_composite_reporter, a_test ut_object),
12-
overriding member procedure on_assert(self in out nocopy ut_composite_reporter, a_assert ut_object),
13-
overriding member procedure end_test(self in out nocopy ut_composite_reporter, a_test ut_object),
14-
overriding member procedure end_suite(self in out nocopy ut_composite_reporter, a_suite ut_object)
14+
-- suite hooks
15+
overriding member procedure before_suite(self in out nocopy ut_composite_reporter, a_suite in ut_object),
16+
17+
overriding member procedure before_suite_setup(self in out nocopy ut_composite_reporter, a_suite in ut_object),
18+
overriding member procedure after_suite_setup(self in out nocopy ut_composite_reporter, a_suite in ut_object),
19+
20+
overriding member procedure before_suite_item(self in out nocopy ut_composite_reporter, a_suite in ut_object, a_item_index pls_integer),
21+
overriding member procedure after_suite_item(self in out nocopy ut_composite_reporter, a_suite in ut_object, a_item_index pls_integer),
22+
23+
overriding member procedure before_suite_teardown(self in out nocopy ut_composite_reporter, a_suite in ut_object),
24+
overriding member procedure after_suite_teardown(self in out nocopy ut_composite_reporter, a_suite in ut_object),
25+
26+
overriding member procedure after_suite(self in out nocopy ut_composite_reporter, a_suite in ut_object),
27+
28+
-- test hooks
29+
overriding member procedure before_test(self in out nocopy ut_composite_reporter, a_test in ut_object),
30+
31+
overriding member procedure before_test_setup(self in out nocopy ut_composite_reporter, a_test in ut_object),
32+
overriding member procedure after_test_setup(self in out nocopy ut_composite_reporter, a_test in ut_object),
33+
34+
overriding member procedure before_test_execute(self in out nocopy ut_composite_reporter, a_test in ut_object),
35+
overriding member procedure after_test_execute(self in out nocopy ut_composite_reporter, a_test in ut_object),
36+
37+
overriding member procedure before_test_teardown(self in out nocopy ut_composite_reporter, a_test in ut_object),
38+
overriding member procedure after_test_teardown(self in out nocopy ut_composite_reporter, a_test in ut_object),
39+
40+
overriding member procedure before_asserts_process(self in out nocopy ut_composite_reporter, a_test in ut_object),
41+
overriding member procedure on_assert_process(self in out nocopy ut_composite_reporter, a_assert in ut_object),
42+
overriding member procedure after_asserts_process(self in out nocopy ut_composite_reporter, a_test in ut_object),
43+
44+
overriding member procedure after_test(self in out nocopy ut_composite_reporter, a_test in ut_object)
1545

1646
)
1747
not final

source/types/ut_dbms_output_suite_reporter.tpb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,27 @@ create or replace type body ut_dbms_output_suite_reporter is
1616
dbms_output.put_line(msg);
1717
end print;
1818

19-
overriding member procedure begin_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object) as
19+
overriding member procedure before_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object) as
2020
begin
2121
print(ut_dbms_output_suite_reporter.c_dashed_line);
2222
print('suite "' || a_suite.name || '" started.');
2323
end;
2424

25-
overriding member procedure end_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object) as
25+
overriding member procedure after_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object) as
2626
begin
2727
--todo: report total suite result here with pretty message
2828
print(ut_dbms_output_suite_reporter.c_dashed_line);
2929
print('suite "' || a_suite.name || '" ended.');
3030
print(ut_dbms_output_suite_reporter.c_dashed_line);
3131
end;
3232

33-
overriding member procedure on_assert(self in out nocopy ut_dbms_output_suite_reporter, a_assert ut_object) as
33+
overriding member procedure on_assert_process(self in out nocopy ut_dbms_output_suite_reporter, a_assert ut_object) as
3434
begin
3535
--todo: report total suite result here with pretty message
3636
null;
3737
end;
3838

39-
overriding member procedure begin_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object) as
39+
overriding member procedure before_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object) as
4040
test ut_test := treat(a_test as ut_test);
4141
begin
4242
print(ut_dbms_output_suite_reporter.c_dashed_line);
@@ -47,7 +47,7 @@ create or replace type body ut_dbms_output_suite_reporter is
4747
end if;
4848
end;
4949

50-
overriding member procedure end_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object) as
50+
overriding member procedure after_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object) as
5151
test ut_test := treat(a_test as ut_test);
5252
assert ut_assert_result;
5353
begin

0 commit comments

Comments
 (0)