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

Skip to content

Commit ca24ff0

Browse files
committed
introduced ut_suite_item_base type to invert dependency of ut_listener_interface
1 parent b2adb7f commit ca24ff0

15 files changed

Lines changed: 90 additions & 84 deletions

source/core/types/ut_execution_listener.tpb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@ create or replace type body ut_execution_listener is
66
return;
77
end;
88

9-
overriding member procedure fire_before_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item) is
9+
overriding member procedure fire_before_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item_base) is
1010
begin
1111
self.fire_event('before', a_event_name, a_item);
1212
end;
1313

14-
overriding member procedure fire_after_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item) is
14+
overriding member procedure fire_after_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item_base) is
1515
begin
1616
self.fire_event('after', a_event_name, a_item);
1717
end;
1818

19-
overriding member procedure fire_event(self in out nocopy ut_execution_listener, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item) is
19+
overriding member procedure fire_event(self in out nocopy ut_execution_listener, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item_base) is
2020
l_method varchar2(250) := a_event_timing||'_calling_'||a_event_name;
2121
l_reporter ut_reporter;
2222
l_call_stmt varchar2(32767 byte);

source/core/types/ut_execution_listener.tps

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ create or replace type ut_execution_listener under ut_listener_interface
22
(
33
reporters ut_reporters,
44
constructor function ut_execution_listener(self in out nocopy ut_execution_listener, a_reporters ut_reporters) return self as result,
5-
overriding member procedure fire_before_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item),
6-
overriding member procedure fire_after_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item),
7-
overriding member procedure fire_event(self in out nocopy ut_execution_listener, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item)
5+
overriding member procedure fire_before_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item_base),
6+
overriding member procedure fire_after_event(self in out nocopy ut_execution_listener, a_event_name varchar2, a_item ut_suite_item_base),
7+
overriding member procedure fire_event(self in out nocopy ut_execution_listener, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item_base)
88
)
99
/
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
create or replace type ut_listener_interface as object
22
(
33
name varchar2(250),
4-
member procedure fire_before_event(self in out nocopy ut_listener_interface, a_event_name varchar2, a_item ut_suite_item),
5-
member procedure fire_after_event(self in out nocopy ut_listener_interface, a_event_name varchar2, a_item ut_suite_item),
6-
member procedure fire_event(self in out nocopy ut_listener_interface, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item)
4+
member procedure fire_before_event(self in out nocopy ut_listener_interface, a_event_name varchar2, a_item ut_suite_item_base),
5+
member procedure fire_after_event(self in out nocopy ut_listener_interface, a_event_name varchar2, a_item ut_suite_item_base),
6+
member procedure fire_event(self in out nocopy ut_listener_interface, a_event_timing varchar2, a_event_name varchar2, a_item ut_suite_item_base)
77
) not final not instantiable
88
/

source/core/types/ut_run.tpb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ create or replace type body ut_run as
66
return;
77
end;
88

9-
member procedure do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_listener_interface) is
9+
overriding member procedure do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_listener_interface) is
1010
l_completed_without_errors boolean;
1111
begin
1212
l_completed_without_errors := self.do_execute(a_listener);
1313
end;
1414

15-
member function do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_listener_interface) return boolean is
15+
overriding member function do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_listener_interface) return boolean is
1616
l_suite_object ut_suite;
1717
l_completed_without_errors boolean;
1818
begin
@@ -23,9 +23,7 @@ create or replace type body ut_run as
2323
self.start_time := current_timestamp;
2424

2525
for i in 1 .. self.items.count loop
26-
l_suite_object := treat(self.items(i) as ut_suite);
2726
l_completed_without_errors := l_suite_object.do_execute(a_listener);
28-
self.items(i) := l_suite_object;
2927
end loop;
3028

3129
self.calc_execution_result;

source/core/types/ut_run.tps

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ create or replace type ut_run under ut_suite_item (
44
*/
55
items ut_suite_items,
66
constructor function ut_run( self in out nocopy ut_run, a_items ut_suite_items ) return self as result,
7-
member function do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_listener_interface) return boolean,
8-
member procedure do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_listener_interface),
7+
overriding member function do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_listener_interface) return boolean,
8+
overriding member procedure do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_listener_interface),
99
member procedure calc_execution_result(self in out nocopy ut_run)
1010
)
11-
/
11+
/

source/core/types/ut_suite.tpb

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,15 @@ create or replace type body ut_suite as
4747
self.items(self.items.last) := a_item;
4848
end;
4949

50-
member procedure do_execute(self in out nocopy ut_suite, a_listener in out nocopy ut_listener_interface) is
50+
overriding member procedure do_execute(self in out nocopy ut_suite, a_listener in out nocopy ut_listener_interface) is
5151
l_completed_without_errors boolean;
5252
begin
5353
l_completed_without_errors := self.do_execute(a_listener);
5454
end;
5555

56-
member function do_execute(self in out nocopy ut_suite, a_listener in out nocopy ut_listener_interface) return boolean is
57-
l_test_object ut_test;
58-
l_suite_object ut_suite;
59-
l_suite_savepoint varchar2(30);
60-
l_item_savepoint varchar2(30);
56+
overriding member function do_execute(self in out nocopy ut_suite, a_listener in out nocopy ut_listener_interface) return boolean is
57+
l_suite_savepoint varchar2(30 char);
58+
l_item_savepoint varchar2(30 char);
6159
l_completed_without_errors boolean;
6260
begin
6361
ut_utils.debug_log('ut_suite.execute');
@@ -87,16 +85,9 @@ create or replace type body ut_suite as
8785
l_completed_without_errors := self.before_each.do_execute(self, a_listener);
8886
end if;
8987

88+
-- execute the item (test or suite)
9089
if l_completed_without_errors then
91-
if self.items(i) is of (ut_suite) then
92-
l_suite_object := treat(self.items(i) as ut_suite);
93-
l_completed_without_errors := l_suite_object.do_execute(a_listener);
94-
self.items(i) := l_suite_object;
95-
elsif self.items(i) is of (ut_test) then
96-
l_test_object := treat(self.items(i) as ut_test);
97-
l_completed_without_errors := l_test_object.do_execute(a_listener);
98-
self.items(i) := l_test_object;
99-
end if;
90+
l_completed_without_errors := self.items(i).do_execute(a_listener);
10091
end if;
10192

10293
--after each

source/core/types/ut_suite.tps

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ create or replace type ut_suite under ut_suite_item (
3434
*/
3535
member function item_index(a_name varchar2) return pls_integer,
3636
member procedure add_item(self in out nocopy ut_suite, a_item ut_suite_item),
37-
member function do_execute(self in out nocopy ut_suite, a_listener in out nocopy ut_listener_interface) return boolean,
38-
member procedure do_execute(self in out nocopy ut_suite, a_listener in out nocopy ut_listener_interface),
37+
overriding member function do_execute(self in out nocopy ut_suite, a_listener in out nocopy ut_listener_interface) return boolean,
38+
overriding member procedure do_execute(self in out nocopy ut_suite, a_listener in out nocopy ut_listener_interface),
3939
member procedure calc_execution_result(self in out nocopy ut_suite)
4040
)
41-
/
41+
/

source/core/types/ut_suite_item.tpb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ create or replace type body ut_suite_item as
1414
self.ignore_flag := ut_utils.boolean_to_int(a_ignore_flag);
1515
end;
1616

17-
member procedure set_ignore_flag( self in out nocopy ut_suite_item, a_ignore_flag boolean) is
17+
member procedure set_ignore_flag(self in out nocopy ut_suite_item, a_ignore_flag boolean) is
1818
begin
1919
self.ignore_flag := ut_utils.boolean_to_int(a_ignore_flag);
2020
end;
@@ -34,7 +34,7 @@ create or replace type body ut_suite_item as
3434
return l_savepoint;
3535
end;
3636

37-
member procedure rollback_to_savepoint( self in ut_suite_item, a_savepoint varchar2) is
37+
member procedure rollback_to_savepoint(self in ut_suite_item, a_savepoint varchar2) is
3838
begin
3939
if self.rollback_type = ut_utils.gc_rollback_auto and a_savepoint is not null then
4040
execute immediate 'rollback to ' || a_savepoint;
@@ -47,4 +47,4 @@ create or replace type body ut_suite_item as
4747
end;
4848

4949
end;
50-
/
50+
/
Lines changed: 9 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,17 @@
1-
create or replace type ut_suite_item as object (
2-
/**
3-
* owner of the database object (package)
4-
*/
5-
object_owner varchar2(4000),
6-
/**
7-
* name of the database object (package)
8-
*/
9-
object_name varchar2(4000),
10-
/**
11-
* Name of the object (suite, sub-suite, test)
12-
*/
13-
name varchar2(4000),
14-
/**
15-
* Description fo the suite item (as given by the annotation)
16-
*/
17-
description varchar2(4000),
1+
create or replace type ut_suite_item under ut_suite_item_base (
182

19-
/**
20-
* Full path of the invocation of the item (including the items name itself)
21-
*/
22-
path varchar2(4000),
23-
/**
24-
* The type of the rollback behavior
25-
*/
26-
rollback_type integer(1),
27-
/**
28-
* Indicates if the test is to be ignored by execution
29-
*/
30-
ignore_flag integer(1),
31-
--execution result fields
32-
start_time timestamp with time zone,
33-
end_time timestamp with time zone,
34-
result integer(1),
353
member procedure init(
364
self in out nocopy ut_suite_item, a_object_owner varchar2, a_object_name varchar2, a_name varchar2,
375
a_description varchar2, a_path varchar2, a_rollback_type integer, a_ignore_flag boolean),
38-
member procedure set_ignore_flag( self in out nocopy ut_suite_item, a_ignore_flag boolean),
6+
member procedure set_ignore_flag(self in out nocopy ut_suite_item, a_ignore_flag boolean),
397
member function get_ignore_flag return boolean,
408
member function create_savepoint_if_needed return varchar2,
41-
member procedure rollback_to_savepoint( self in ut_suite_item, a_savepoint varchar2),
42-
member function execution_time return number
9+
member procedure rollback_to_savepoint(self in ut_suite_item, a_savepoint varchar2),
10+
member function execution_time return number,
11+
12+
not instantiable member function do_execute(self in out nocopy ut_suite_item, a_listener in out nocopy ut_listener_interface) return boolean,
13+
not instantiable member procedure do_execute(self in out nocopy ut_suite_item, a_listener in out nocopy ut_listener_interface)
14+
4315
)
4416
not final not instantiable
45-
/
17+
/
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
create or replace type ut_suite_item_base as object (
2+
3+
/**
4+
* Object type is a pre-declaration to be referenced by ut_listener_interface
5+
* The true abstract type is ut_suite_item
6+
*/
7+
8+
/**
9+
* owner of the database object (package)
10+
*/
11+
object_owner varchar2(4000 byte),
12+
/**
13+
* name of the database object (package)
14+
*/
15+
object_name varchar2(4000 byte),
16+
/**
17+
* Name of the object (suite, sub-suite, test)
18+
*/
19+
name varchar2(4000 byte),
20+
/**
21+
* Description fo the suite item (as given by the annotation)
22+
*/
23+
description varchar2(4000 byte),
24+
25+
/**
26+
* Full path of the invocation of the item (including the items name itself)
27+
*/
28+
path varchar2(4000 byte),
29+
/**
30+
* The type of the rollback behavior
31+
*/
32+
rollback_type integer(1),
33+
/**
34+
* Indicates if the test is to be ignored by execution
35+
*/
36+
ignore_flag integer(1),
37+
--execution result fields
38+
start_time timestamp with time zone,
39+
end_time timestamp with time zone,
40+
result integer(1)
41+
42+
)
43+
not final not instantiable
44+
/

0 commit comments

Comments
 (0)