@@ -17,18 +17,58 @@ create or replace type body ut_event_listener is
1717 end;
1818
1919 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) is
20- l_method varchar2(250) := a_event_timing||'_calling_'||a_event_name;
21- l_call_stmt varchar2(32767 byte);
2220 begin
23- l_call_stmt :=
24- 'declare' ||
25- ' v_reporter ut_reporter_base := :a_reporter; ' ||
26- 'begin' ||
27- ' v_reporter.'||l_method||'( treat( :a_item as '||a_item.self_type||')); ' ||
28- ' :a_reporter := v_reporter; ' ||
29- 'end;';
3021 for i in 1..self.reporters.count loop
31- execute immediate l_call_stmt using in out self.reporters(i), in treat(a_item as ut_suite_item);
22+ case a_event_timing
23+ when 'before' then
24+ case a_event_name
25+ when ut_utils.gc_run then
26+ self.reporters(i).before_calling_run(treat(a_item as ut_run));
27+ when ut_utils.gc_suite then
28+ self.reporters(i).before_calling_suite(treat(a_item as ut_suite));
29+ when ut_utils.gc_before_all then
30+ self.reporters(i).before_calling_before_all(treat(a_item as ut_suite));
31+ when ut_utils.gc_before_each then
32+ self.reporters(i).before_calling_before_each(treat(a_item as ut_suite));
33+ when ut_utils.gc_test then
34+ self.reporters(i).before_calling_test(treat(a_item as ut_test));
35+ when ut_utils.gc_before_test then
36+ self.reporters(i).before_calling_before_test(treat(a_item as ut_test));
37+ when ut_utils.gc_after_test then
38+ self.reporters(i).before_calling_after_test(treat(a_item as ut_test));
39+ when ut_utils.gc_after_each then
40+ self.reporters(i).before_calling_after_each(treat(a_item as ut_suite));
41+ when ut_utils.gc_after_all then
42+ self.reporters(i).before_calling_after_all(treat(a_item as ut_suite));
43+ else
44+ raise_application_error(ut_utils.gc_invalid_rep_event_name,'Inavlid reporting event name - '|| nvl(a_event_name,'NULL'));
45+ end case;
46+ when 'after' then
47+ case a_event_name
48+ when ut_utils.gc_run then
49+ self.reporters(i).after_calling_run(treat(a_item as ut_run));
50+ when ut_utils.gc_suite then
51+ self.reporters(i).after_calling_suite(treat(a_item as ut_suite));
52+ when ut_utils.gc_before_all then
53+ self.reporters(i).after_calling_before_all(treat(a_item as ut_suite));
54+ when ut_utils.gc_before_each then
55+ self.reporters(i).after_calling_before_each(treat(a_item as ut_suite));
56+ when ut_utils.gc_test then
57+ self.reporters(i).after_calling_test(treat(a_item as ut_test));
58+ when ut_utils.gc_before_test then
59+ self.reporters(i).after_calling_before_test(treat(a_item as ut_test));
60+ when ut_utils.gc_after_test then
61+ self.reporters(i).after_calling_after_test(treat(a_item as ut_test));
62+ when ut_utils.gc_after_each then
63+ self.reporters(i).after_calling_after_each(treat(a_item as ut_suite));
64+ when ut_utils.gc_after_all then
65+ self.reporters(i).after_calling_after_all(treat(a_item as ut_suite));
66+ else
67+ raise_application_error(ut_utils.gc_invalid_rep_event_name,'Inavlid reporting event name - '|| nvl(a_event_name,'NULL'));
68+ end case;
69+ else
70+ raise_application_error(ut_utils.gc_invalid_rep_event_time,'Inavlid reporting event time - '|| nvl(a_event_timing,'NULL'));
71+ end case;
3272 end loop;
3373
3474 end;
0 commit comments