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

Skip to content

Commit 9caa870

Browse files
committed
introduced warning concept
1 parent ff26e36 commit 9caa870

8 files changed

Lines changed: 46 additions & 12 deletions

source/core/types/ut_event_listener.tpb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,13 @@ create or replace type body ut_event_listener is
8888
end if;
8989
end loop;
9090

91+
end fire_event;
92+
93+
overriding member procedure save_warning(self in out nocopy ut_event_listener, a_item ut_suite_item_base, a_message varchar2) is
94+
begin
95+
for i in 1..self.reporters.count loop
96+
self.reporters(i).save_warning(a_item, a_message);
97+
end loop;
9198
end;
9299

93100
end;

source/core/types/ut_event_listener.tps

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ create or replace type ut_event_listener under ut_event_listener_base(
1919
constructor function ut_event_listener(self in out nocopy ut_event_listener, a_reporters ut_reporters) return self as result,
2020
overriding member procedure fire_before_event(self in out nocopy ut_event_listener, a_event_name varchar2, a_item ut_suite_item_base),
2121
overriding member procedure fire_after_event(self in out nocopy ut_event_listener, a_event_name varchar2, a_item ut_suite_item_base),
22-
overriding member procedure fire_event(self in out nocopy ut_event_listener, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item_base)
22+
overriding member procedure fire_event(self in out nocopy ut_event_listener, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item_base),
23+
overriding member procedure save_warning(self in out nocopy ut_event_listener, a_item ut_suite_item_base, a_message varchar2)
2324
)
2425
/

source/core/types/ut_event_listener_base.tps

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
create or replace type ut_event_listener_base as object(
1+
create or replace type ut_event_listener_base as object(
22
/*
33
utPLSQL - Version X.X.X.X
44
Copyright 2016 - 2017 utPLSQL Project
@@ -18,6 +18,7 @@ create or replace type ut_event_listener_base as object(
1818
name varchar2(250),
1919
member procedure fire_before_event(self in out nocopy ut_event_listener_base, a_event_name varchar2, a_item ut_suite_item_base),
2020
member procedure fire_after_event(self in out nocopy ut_event_listener_base, a_event_name varchar2, a_item ut_suite_item_base),
21-
member procedure fire_event(self in out nocopy ut_event_listener_base, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item_base)
21+
member procedure fire_event(self in out nocopy ut_event_listener_base, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item_base),
22+
member procedure save_warning(self in out nocopy ut_event_listener_base,a_item ut_suite_item_base, a_message varchar2)
2223
) not final not instantiable
2324
/

source/core/types/ut_reporter_base.tpb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ create or replace type body ut_reporter_base is
2121
self.self_type := a_self_type;
2222
self.reporter_id := sys_guid();
2323
self.start_date := sysdate();
24+
self.warnings := ut_varchar2_list();
2425
return;
2526
end;
2627

@@ -131,5 +132,11 @@ create or replace type body ut_reporter_base is
131132
begin
132133
ut_output_buffer.close(self);
133134
end;
135+
136+
member procedure save_warning(self in out nocopy ut_reporter_base, a_item ut_suite_item_base, a_message varchar2) is
137+
begin
138+
self.warnings.extend;
139+
self.warnings(self.warnings.last) := a_message;
140+
end;
134141
end;
135142
/

source/core/types/ut_reporter_base.tps

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ create or replace type ut_reporter_base force authid current_user as object(
1818
self_type varchar2(250),
1919
reporter_id raw(32),
2020
start_date date,
21+
warnings ut_varchar2_list,
2122
final member procedure init(self in out nocopy ut_reporter_base, a_self_type varchar2),
2223
final member function get_reporter_id(self in out nocopy ut_reporter_base) return raw,
2324

@@ -59,7 +60,9 @@ create or replace type ut_reporter_base force authid current_user as object(
5960
member procedure after_calling_suite(self in out nocopy ut_reporter_base, a_suite in ut_logical_suite),
6061

6162
-- run hooks continued
62-
member procedure after_calling_run (self in out nocopy ut_reporter_base, a_run in ut_run)
63+
member procedure after_calling_run (self in out nocopy ut_reporter_base, a_run in ut_run),
64+
65+
member procedure save_warning(self in out nocopy ut_reporter_base, a_item ut_suite_item_base, a_message varchar2)
6366

6467
)
6568
not final not instantiable

source/core/types/ut_suite.tpb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ create or replace type body ut_suite as
9595
l_completed_without_errors := self.after_each.do_execute(self, a_listener);
9696

9797
if not l_completed_without_errors then
98-
self.items(i).fail(a_listener, 'Aftereach procedure failed:'||chr(10)||ut_assert_processor.get_asserts_results()(1).error_message);
98+
a_listener.save_warning(self,'Aftereach procedure failed:'||chr(10)||ut_assert_processor.get_asserts_results()(1).error_message);
99+
--self.items(i).fail(a_listener, 'Aftereach procedure failed:'||chr(10)||ut_assert_processor.get_asserts_results()(1).error_message);
99100
end if;
100101

101102
else
@@ -110,7 +111,7 @@ create or replace type body ut_suite as
110111

111112
l_suite_step_without_errors := self.after_all.do_execute(self, a_listener);
112113
if not l_suite_step_without_errors then
113-
do_fail('Afterall procedure failed: '||chr(10));
114+
a_listener.save_warning(self, 'Afterall procedure failed: '||chr(10)||ut_assert_processor.get_asserts_results()(1).error_message);
114115
end if;
115116
else
116117
do_fail('Beforeall procedure failed: '||chr(10));

source/core/types/ut_test.tpb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ create or replace type body ut_test as
6363
l_completed_without_errors := self.before_test.do_execute(self, a_listener);
6464

6565
if l_completed_without_errors then
66-
l_completed_without_errors := self.item.do_execute(self, a_listener);
67-
end if;
68-
69-
if l_completed_without_errors then
70-
l_completed_without_errors := self.after_test.do_execute(self, a_listener);
66+
-- execute the test
67+
self.item.do_execute(self, a_listener);
68+
69+
-- perform cleanup regardless of the test failure
70+
self.after_test.do_execute(self, a_listener);
7171
end if;
7272

7373
self.rollback_to_savepoint(l_savepoint);

source/reporters/ut_documentation_reporter.tpb

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,15 +116,29 @@ create or replace type body ut_documentation_reporter is
116116
end loop;
117117
end if;
118118
end;
119+
120+
procedure print_warnings is
121+
begin
122+
if self.warnings is not null and self.warnings.count>0 then
123+
self.print_text( 'Warnings:' );
124+
self.print_text( ' ' );
125+
for i in 1 .. self.warnings.count loop
126+
self.print_text(self.warnings(i));
127+
self.print_text(' ');
128+
end loop;
129+
end if;
130+
end;
119131

120132
begin
121133
print_failures_details(a_run);
134+
print_warnings();
122135
self.print_text( 'Finished in '||a_run.execution_time||' seconds' );
123136
l_summary_text :=
124137
a_run.results_count.total_count || ' tests, '
125138
||a_run.results_count.failure_count||' failed, '
126139
||a_run.results_count.errored_count||' errored, '
127-
||a_run.results_count.ignored_count||' ignored';
140+
||a_run.results_count.ignored_count||' ignored.'||
141+
case when self.warnings.count>0 then ' '||self.warnings.count||' warning(s)' end;
128142
if a_run.results_count.failure_count > 0 then
129143
self.print_red_text(l_summary_text);
130144
else

0 commit comments

Comments
 (0)