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

Skip to content

Commit 1db073d

Browse files
committed
reworked assert_result to be a subclass of ut_object (new base class)
examples need to be checked
1 parent 955dcc5 commit 1db073d

17 files changed

Lines changed: 117 additions & 83 deletions

source/install.sql

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
1+
@@types/ut_execution_result.tps
2+
@@types/ut_object.tps
3+
@@types/ut_objects_list.tps
4+
@@types/ut_composite_object.tps
15
@@types/ut_test_call_params.tps
26
@@types/ut_assert_result.tps
3-
@@types/ut_assert_list.tps
7+
--@@types/ut_assert_list.tps
48
@@ut_metadata.pks
59
@@ut_assert.pks
6-
@@types/ut_execution_result.tps
710
@@types/ut_suite_reporter.tps
811
@@types/ut_reporters_list.tps
912
@@types/ut_composite_reporter.tps
1013
@@types/ut_test_object.tps
11-
@@types/ut_test_objects_list.tps
14+
1215
@@types/ut_test.tps
1316
@@types/ut_test_suite.tps
1417
@@types/ut_reporter_decorator.tps
@@ -17,6 +20,7 @@
1720
@@ut_utils.pkb
1821
@@types/ut_assert_result.tpb
1922
@@types/ut_execution_result.tpb
23+
@@types/ut_composite_object.tpb
2024
@@types/ut_test.tpb
2125
@@types/ut_test_suite.tpb
2226
@@types/ut_test_call_params.tpb

source/types/ut_assert_result.tpb

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
11
create or replace type body ut_assert_result is
2-
2+
3+
constructor function ut_assert_result(a_result varchar2, a_message varchar2, a_name varchar2 default null)
4+
return self as result is
5+
begin
6+
self.name := a_name;
7+
self.object_type := 0;
8+
self.result := a_result;
9+
self.message := a_message;
10+
return;
11+
end ut_assert_result;
12+
313
member function result_to_char(self in ut_assert_result) return varchar2 is
414
begin
515
return ut_utils.test_result_to_char(result);
616
end;
7-
17+
818
end;
919
/

source/types/ut_assert_result.tps

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
create or replace type ut_assert_result as object
1+
create or replace type ut_assert_result force under ut_object
22
(
33
result integer(1),
44
message varchar2(4000 char),
55

6+
constructor function ut_assert_result(a_result varchar2, a_message varchar2, a_name varchar2 default null)
7+
return self as result,
8+
69
member function result_to_char(self in ut_assert_result) return varchar2
710
)
811
not final

source/types/ut_composite_reporter.tpb

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,34 @@ create or replace type body ut_composite_reporter is
2222

2323
end;
2424

25-
overriding member procedure begin_suite(self in out nocopy ut_composite_reporter, a_suite_name in varchar2) is
25+
overriding member procedure begin_suite(self in out nocopy ut_composite_reporter, a_suite ut_object) is
2626
begin
2727
for i in 1 .. self.reporters.count loop
28-
self.reporters(i).begin_suite(a_suite_name => a_suite_name);
28+
self.reporters(i).begin_suite(a_suite => a_suite);
2929
end loop;
3030
end;
31-
overriding member procedure begin_test(self in out nocopy ut_composite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params) is
31+
overriding member procedure begin_test(self in out nocopy ut_composite_reporter, a_test ut_object) is
3232
begin
3333
for i in 1 .. self.reporters.count loop
34-
self.reporters(i).begin_test(a_test_name => a_test_name, a_test_call_params => a_test_call_params);
34+
self.reporters(i).begin_test(a_test => a_test);
3535
end loop;
3636
end;
37-
overriding member procedure end_test(self in out nocopy ut_composite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params, a_execution_result in ut_execution_result, a_assert_list in ut_assert_list) is
37+
overriding member procedure on_assert(self in out nocopy ut_composite_reporter, an_assert ut_object) is
3838
begin
3939
for i in 1 .. self.reporters.count loop
40-
self.reporters(i).end_test(a_test_name => a_test_name
41-
,a_test_call_params => a_test_call_params
42-
,a_execution_result => a_execution_result
43-
,a_assert_list => a_assert_list);
40+
self.reporters(i).on_assert(an_assert => an_assert);
4441
end loop;
4542
end;
46-
overriding member procedure end_suite(self in out nocopy ut_composite_reporter, a_suite_name in varchar2, a_suite_execution_result in ut_execution_result) is
43+
overriding member procedure end_test(self in out nocopy ut_composite_reporter, a_test ut_object) is
4744
begin
4845
for i in 1 .. self.reporters.count loop
49-
self.reporters(i).end_suite(a_suite_name => a_suite_name, a_suite_execution_result => a_suite_execution_result);
46+
self.reporters(i).end_test(a_test => a_test);
47+
end loop;
48+
end;
49+
overriding member procedure end_suite(self in out nocopy ut_composite_reporter, a_suite ut_object) is
50+
begin
51+
for i in 1 .. self.reporters.count loop
52+
self.reporters(i).end_suite(a_suite => a_suite);
5053
end loop;
5154
end;
5255

source/types/ut_composite_reporter.tps

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ create or replace type ut_composite_reporter under ut_suite_reporter
77
member procedure add_reporter(self in out nocopy ut_composite_reporter, a_reporter ut_suite_reporter),
88
member procedure remove_reporter(self in out nocopy ut_composite_reporter, an_index pls_integer),
99

10-
overriding member procedure begin_suite(self in out nocopy ut_composite_reporter, a_suite_name in varchar2),
11-
overriding member procedure begin_test(self in out nocopy ut_composite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params),
12-
overriding member procedure end_test(self in out nocopy ut_composite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params, a_execution_result in ut_execution_result, a_assert_list in ut_assert_list),
13-
overriding member procedure end_suite(self in out nocopy ut_composite_reporter, a_suite_name in varchar2, a_suite_execution_result in ut_execution_result)
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, an_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)
1415

1516
)
1617
not final

source/types/ut_dbms_output_suite_reporter.tpb

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ create or replace type body ut_dbms_output_suite_reporter is
22

33
static function c_dashed_line return varchar2 is
44
begin
5-
return lpad('-',80,'-');
5+
return lpad('-', 80, '-');
66
end;
77

88
constructor function ut_dbms_output_suite_reporter return self as result is
@@ -16,36 +16,46 @@ 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_name in varchar2) as
19+
overriding member procedure begin_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);
22-
print('suite "' || a_suite_name || '" started.');
22+
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_name in varchar2, a_suite_execution_result in ut_execution_result) as
25+
overriding member procedure end_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);
29-
print('suite "' || a_suite_name || '" ended.');
29+
print('suite "' || a_suite.name || '" ended.');
3030
print(ut_dbms_output_suite_reporter.c_dashed_line);
3131
end;
3232

33-
overriding member procedure begin_test(self in out nocopy ut_dbms_output_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params) as
33+
overriding member procedure on_assert(self in out nocopy ut_dbms_output_suite_reporter, an_assert ut_object) as
34+
begin
35+
--todo: report total suite result here with pretty message
36+
null;
37+
end;
38+
39+
overriding member procedure begin_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object) as
40+
test ut_test := treat(a_test as ut_test);
3441
begin
3542
print(ut_dbms_output_suite_reporter.c_dashed_line);
36-
if a_test_name is not null then
37-
print('test ' || a_test_name || ' (' ||a_test_call_params.form_name || ')');
43+
if a_test.name is not null then
44+
print('test ' || test.name || ' (' || test.test.form_name || ')');
3845
else
39-
print('test ' || a_test_call_params.form_name);
46+
print('test ' || test.test.form_name);
4047
end if;
4148
end;
4249

43-
overriding member procedure end_test(self in out nocopy ut_dbms_output_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params, a_execution_result in ut_execution_result, a_assert_list in ut_assert_list) as
50+
overriding member procedure end_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object) as
51+
test ut_test := treat(a_test as ut_test);
52+
assert ut_assert_result;
4453
begin
45-
print('result: ' || a_execution_result.result_to_char);
54+
print('result: ' || test.execution_result.result_to_char);
4655
print('asserts');
47-
for i in a_assert_list.first .. a_assert_list.last loop
48-
print('assert ' || i || ' ' || a_assert_list(i).result_to_char || ' message: ' || a_assert_list(i).message);
56+
for i in test.items.first .. test.items.last loop
57+
assert := treat(test.items(i) as ut_assert_result);
58+
print('assert ' || i || ' ' || assert.result_to_char || ' message: ' || assert.message);
4959
end loop;
5060
end;
5161

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
create or replace type ut_dbms_output_suite_reporter force under ut_suite_reporter
22
(
33

4+
constructor function ut_dbms_output_suite_reporter return self as result,
45

5-
constructor function ut_dbms_output_suite_reporter
6-
return self as result,
6+
static function c_dashed_line return varchar2,
7+
member procedure print(msg varchar2),
78

8-
static function c_dashed_line return varchar2,
9-
member procedure print(msg varchar2),
10-
11-
overriding member procedure begin_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite_name in varchar2),
12-
overriding member procedure begin_test(self in out nocopy ut_dbms_output_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params),
13-
overriding member procedure end_test(self in out nocopy ut_dbms_output_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params, a_execution_result in ut_execution_result, a_assert_list in ut_assert_list),
14-
overriding member procedure end_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite_name in varchar2, a_suite_execution_result in ut_execution_result)
9+
overriding member procedure begin_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object),
10+
overriding member procedure begin_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object),
11+
overriding member procedure on_assert(self in out nocopy ut_dbms_output_suite_reporter, an_assert ut_object),
12+
overriding member procedure end_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object),
13+
overriding member procedure end_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object)
1514

16-
) not final
15+
)
16+
not final
1717
/

source/types/ut_suite_reporter.tps

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ create or replace type ut_suite_reporter force as object
22
(
33
name varchar2(250 char),
44

5-
not instantiable member procedure begin_suite(self in out nocopy ut_suite_reporter, a_suite_name in varchar2),
6-
not instantiable member procedure begin_test(self in out nocopy ut_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params),
7-
not instantiable member procedure end_test(self in out nocopy ut_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params, a_execution_result in ut_execution_result, a_assert_list in ut_assert_list),
8-
not instantiable member procedure end_suite(self in out nocopy ut_suite_reporter, a_suite_name in varchar2, a_suite_execution_result in ut_execution_result)
5+
not instantiable member procedure begin_suite(self in out nocopy ut_suite_reporter, a_suite in ut_object),
6+
not instantiable member procedure begin_test(self in out nocopy ut_suite_reporter, a_test in ut_object),
7+
not instantiable member procedure on_assert(self in out nocopy ut_suite_reporter, an_assert in ut_object),
8+
not instantiable member procedure end_test(self in out nocopy ut_suite_reporter, a_test in ut_object),
9+
not instantiable member procedure end_suite(self in out nocopy ut_suite_reporter, a_suite in ut_object)
910

1011
)
1112
not instantiable not final

source/types/ut_test.tpb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ create or replace type body ut_test is
44
return self as result is
55
begin
66
self.name := a_test_name;
7+
self.object_type := 1;
78
self.test := ut_test_call_params(object_name => trim(a_object_name)
89
,procedure_name => trim(a_test_procedure)
910
,owner_name => trim(a_owner_name));
@@ -40,7 +41,7 @@ create or replace type body ut_test is
4041
reporter ut_suite_reporter := a_reporter;
4142
begin
4243
if reporter is not null then
43-
reporter.begin_test(a_test_name => self.name, a_test_call_params => self.test);
44+
reporter.begin_test(self);
4445
end if;
4546

4647
begin
@@ -70,7 +71,7 @@ create or replace type body ut_test is
7071

7172
self.execution_result.end_time := current_timestamp;
7273

73-
ut_assert.process_asserts(self.assert_results, self.execution_result.result);
74+
ut_assert.process_asserts(self.items);
7475

7576
exception
7677
when others then
@@ -86,14 +87,13 @@ create or replace type body ut_test is
8687
ut_assert.report_error(sqlerrm(sqlcode) || ' ' || dbms_utility.format_error_stack);
8788
ut_assert.report_error(sqlerrm(sqlcode) || ' ' || dbms_utility.format_error_backtrace);
8889
self.execution_result.end_time := current_timestamp;
89-
ut_assert.process_asserts(self.assert_results, self.execution_result.result);
90+
ut_assert.process_asserts(self.items);
9091
end;
92+
93+
self.calc_execution_result;
9194

9295
if reporter is not null then
93-
reporter.end_test(a_test_name => self.name
94-
,a_test_call_params => self.test
95-
,a_execution_result => self.execution_result
96-
,a_assert_list => self.assert_results);
96+
reporter.end_test(self);
9797
end if;
9898
return reporter;
9999
end;

source/types/ut_test.tps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ create or replace type ut_test force under ut_test_object
33
setup ut_test_call_params,
44
test ut_test_call_params,
55
teardown ut_test_call_params,
6-
assert_results ut_assert_list,
6+
--assert_results ut_assert_list,
77

88
constructor function ut_test(a_object_name varchar2, a_test_procedure varchar2, a_test_name in varchar2 default null, a_owner_name varchar2 default null, a_setup_procedure varchar2 default null, a_teardown_procedure varchar2 default null)
99
return self as result,

0 commit comments

Comments
 (0)