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

Skip to content

Commit 8366919

Browse files
authored
Merge pull request #156 from Pazus/feature/suite_base_v2
Separate logical suites and real one
2 parents cb48b8b + fb4dbd6 commit 8366919

44 files changed

Lines changed: 297 additions & 230 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

examples/developer_examples/RunExampleComplexSuiteWithCustomReporter.sql

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ set echo off
1313
@@ut_custom_reporter.tpb
1414

1515
declare
16-
suite1 ut_suite;
17-
suite2 ut_suite;
18-
suite_complex ut_suite;
16+
suite1 ut_logical_suite;
17+
suite2 ut_logical_suite;
18+
suite_complex ut_logical_suite;
1919
listener ut_event_listener;
2020
begin
21-
suite1 := ut_suite(a_object_owner=>null, a_object_name => null, a_name => null, a_description => 'Test Suite 1');
21+
suite1 := ut_logical_suite(a_object_owner=>null, a_object_name => null, a_name => null, a_description => 'Test Suite 1', a_path => null);
2222

2323
suite1.add_item(
2424
ut_test(a_object_name => 'ut_exampletest'
@@ -28,7 +28,7 @@ begin
2828
,a_after_test_proc_name => 'tEardown')
2929
);
3030

31-
suite2 := ut_suite(a_object_owner=>null, a_object_name => null, a_name => null, a_description => 'Test Suite 2');
31+
suite2 := ut_logical_suite(a_object_owner=>null, a_object_name => null, a_name => null, a_description => 'Test Suite 2', a_path => null);
3232

3333
suite2.add_item(
3434
ut_test(
@@ -39,7 +39,7 @@ begin
3939
a_after_test_proc_name => 'TEARDOWN')
4040
);
4141

42-
suite_complex := ut_suite( a_object_owner=>null, a_object_name => null, a_name => null, a_description => 'Complex Test Suite');
42+
suite_complex := ut_logical_suite( a_object_owner=>null, a_object_name => null, a_name => null, a_description => 'Complex Test Suite', a_path => null);
4343
suite_complex.items := ut_suite_items(suite1, suite2);
4444

4545
-- provide a reporter to process results

examples/developer_examples/RunExampleTestAnnotationsParsingTimeHugePackage.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set echo off
66
@@tst_pkg_huge.pks
77

88
declare
9-
l_suite ut_suite;
9+
l_suite ut_logical_suite;
1010
begin
1111
l_suite := ut_suite_manager.config_package(a_owner_name => USER,a_object_name => 'TST_PKG_HUGE');
1212
end;

examples/developer_examples/RunExampleTestSuite.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ set echo off
1111
@@ut_exampletest2.pkb
1212

1313
declare
14-
suite ut_suite;
14+
suite ut_logical_suite;
1515
listener ut_event_listener := ut_event_listener(ut_reporters());
1616
test_item ut_test;
1717
assert ut_assert_result;
1818
begin
19-
suite := ut_suite(a_object_owner=>null, a_object_name => 'ut_exampletest', a_name => null, a_description => 'Test Suite Name');
19+
suite := ut_logical_suite(a_object_owner=>null, a_object_name => 'ut_exampletest', a_name => null, a_description => 'Test Suite Name',a_path => null);
2020

2121
suite.add_item(
2222
ut_test(a_object_name => 'ut_exampletest'

examples/developer_examples/RunExampleTestSuiteWithCompositeReporter.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ set echo off
1212

1313
PROMPT Runs test report using composite reporter
1414
declare
15-
suite ut_suite;
15+
suite ut_logical_suite;
1616
listener ut_event_listener;
1717
begin
18-
suite := ut_suite(a_object_owner=>null, a_object_name => 'ut_exampletest', a_name => null, a_description => 'Test Suite Name');
18+
suite := ut_logical_suite(a_object_owner=>null, a_object_name => 'ut_exampletest', a_name => null, a_description => 'Test Suite Name',a_path => null);
1919

2020
suite.add_item(
2121
ut_test(a_object_name => 'ut_exampletest'

examples/developer_examples/RunExampleTestSuiteWithCustomReporter.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ set echo off
1414
@@ut_custom_reporter.tpb
1515

1616
declare
17-
suite ut_suite;
17+
suite ut_logical_suite;
1818
listener ut_event_listener;
1919
begin
2020
-- Install ut_custom_reporter first from example folder
2121

22-
suite := ut_suite(a_object_owner=>null, a_object_name => 'ut_exampletest', a_name => null, a_description => 'Test Suite Name');
22+
suite := ut_logical_suite(a_object_owner=>null, a_object_name => 'ut_exampletest', a_name => null, a_description => 'Test Suite Name',a_path => null);
2323

2424
suite.add_item(
2525
ut_test(a_object_name => 'ut_exampletest'

examples/developer_examples/ut_custom_reporter.tpb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ create or replace type body ut_custom_reporter is
2222
(self as ut_documentation_reporter).print_text(tab || a_text);
2323
end;
2424

25-
overriding member procedure before_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite) as
25+
overriding member procedure before_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_logical_suite) as
2626
begin
2727
(self as ut_documentation_reporter).before_calling_suite(a_suite);
2828
lvl := lvl + 1;
@@ -40,7 +40,7 @@ create or replace type body ut_custom_reporter is
4040
(self as ut_documentation_reporter).after_calling_test(a_test);
4141
end;
4242

43-
overriding member procedure after_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite) as
43+
overriding member procedure after_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_logical_suite) as
4444
begin
4545
lvl := lvl - 1;
4646
(self as ut_documentation_reporter).after_calling_suite(a_suite);

examples/developer_examples/ut_custom_reporter.tps

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ create or replace type ut_custom_reporter under ut_documentation_reporter
66
constructor function ut_custom_reporter(a_tab_size integer default 4, a_output ut_output default ut_output_dbms_output() ) return self as result,
77
overriding member function tab(self in ut_custom_reporter) return varchar2,
88
overriding member procedure print_text(a_text varchar2),
9-
overriding member procedure before_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite),
9+
overriding member procedure before_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_logical_suite),
1010
overriding member procedure before_calling_test(self in out nocopy ut_custom_reporter, a_test ut_test),
1111
overriding member procedure after_calling_test(self in out nocopy ut_custom_reporter, a_test ut_test),
12-
overriding member procedure after_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_suite)
12+
overriding member procedure after_calling_suite(self in out nocopy ut_custom_reporter, a_suite ut_logical_suite)
1313
)
1414
not final
1515
/

source/api/ut_runner.pkb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ create or replace package body ut_runner is
55
procedure run(a_paths ut_varchar2_list, a_reporters ut_reporters) is
66
l_items_to_run ut_run;
77
l_listener ut_event_listener;
8-
l_current_suite ut_suite;
8+
l_current_suite ut_logical_suite;
99
begin
1010
if a_reporters is null or a_reporters.count = 0 then
1111
l_listener := ut_event_listener(ut_reporters(ut_documentation_reporter()));

source/core/types/ut_event_listener.tpb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ create or replace type body ut_event_listener is
2525
when ut_utils.gc_run then
2626
self.reporters(i).before_calling_run(treat(a_item as ut_run));
2727
when ut_utils.gc_suite then
28-
self.reporters(i).before_calling_suite(treat(a_item as ut_suite));
28+
self.reporters(i).before_calling_suite(treat(a_item as ut_logical_suite));
2929
when ut_utils.gc_before_all then
30-
self.reporters(i).before_calling_before_all(treat(a_item as ut_suite));
30+
self.reporters(i).before_calling_before_all(treat(a_item as ut_logical_suite));
3131
when ut_utils.gc_before_each then
32-
self.reporters(i).before_calling_before_each(treat(a_item as ut_suite));
32+
self.reporters(i).before_calling_before_each(treat(a_item as ut_logical_suite));
3333
when ut_utils.gc_test then
3434
self.reporters(i).before_calling_test(treat(a_item as ut_test));
3535
when ut_utils.gc_before_test then
@@ -39,9 +39,9 @@ create or replace type body ut_event_listener is
3939
when ut_utils.gc_after_test then
4040
self.reporters(i).before_calling_after_test(treat(a_item as ut_test));
4141
when ut_utils.gc_after_each then
42-
self.reporters(i).before_calling_after_each(treat(a_item as ut_suite));
42+
self.reporters(i).before_calling_after_each(treat(a_item as ut_logical_suite));
4343
when ut_utils.gc_after_all then
44-
self.reporters(i).before_calling_after_all(treat(a_item as ut_suite));
44+
self.reporters(i).before_calling_after_all(treat(a_item as ut_logical_suite));
4545
else
4646
raise_application_error(ut_utils.gc_invalid_rep_event_name,'Inavlid reporting event name - '|| nvl(a_event_name,'NULL'));
4747
end case;
@@ -50,11 +50,11 @@ create or replace type body ut_event_listener is
5050
when ut_utils.gc_run then
5151
self.reporters(i).after_calling_run(treat(a_item as ut_run));
5252
when ut_utils.gc_suite then
53-
self.reporters(i).after_calling_suite(treat(a_item as ut_suite));
53+
self.reporters(i).after_calling_suite(treat(a_item as ut_logical_suite));
5454
when ut_utils.gc_before_all then
55-
self.reporters(i).after_calling_before_all(treat(a_item as ut_suite));
55+
self.reporters(i).after_calling_before_all(treat(a_item as ut_logical_suite));
5656
when ut_utils.gc_before_each then
57-
self.reporters(i).after_calling_before_each(treat(a_item as ut_suite));
57+
self.reporters(i).after_calling_before_each(treat(a_item as ut_logical_suite));
5858
when ut_utils.gc_test then
5959
self.reporters(i).after_calling_test(treat(a_item as ut_test));
6060
when ut_utils.gc_before_test then
@@ -64,9 +64,9 @@ create or replace type body ut_event_listener is
6464
when ut_utils.gc_after_test then
6565
self.reporters(i).after_calling_after_test(treat(a_item as ut_test));
6666
when ut_utils.gc_after_each then
67-
self.reporters(i).after_calling_after_each(treat(a_item as ut_suite));
67+
self.reporters(i).after_calling_after_each(treat(a_item as ut_logical_suite));
6868
when ut_utils.gc_after_all then
69-
self.reporters(i).after_calling_after_all(treat(a_item as ut_suite));
69+
self.reporters(i).after_calling_after_all(treat(a_item as ut_logical_suite));
7070
else
7171
raise_application_error(ut_utils.gc_invalid_rep_event_name,'Inavlid reporting event name - '|| nvl(a_event_name,'NULL'));
7272
end case;
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
create or replace type body ut_logical_suite as
2+
3+
constructor function ut_logical_suite(
4+
self in out nocopy ut_logical_suite,a_object_owner varchar2, a_object_name varchar2, a_name varchar2, a_description varchar2 := null, a_path varchar2
5+
) return self as result is
6+
begin
7+
self.self_type := $$plsql_unit;
8+
self.init(a_object_owner, a_object_name, a_name, a_description, a_path, ut_utils.gc_rollback_auto, false);
9+
self.items := ut_suite_items();
10+
return;
11+
end;
12+
13+
member function is_valid return boolean is
14+
begin
15+
return true;
16+
end;
17+
18+
member function item_index(a_name varchar2) return pls_integer is
19+
l_item_index pls_integer := self.items.first;
20+
c_lowered_name constant varchar2(4000 char) := lower(trim(a_name));
21+
l_result pls_integer;
22+
begin
23+
while l_item_index is not null loop
24+
if self.items(l_item_index).name = c_lowered_name then
25+
l_result := l_item_index;
26+
exit;
27+
end if;
28+
l_item_index := self.items.next(l_item_index);
29+
end loop;
30+
return l_result;
31+
end item_index;
32+
33+
member procedure add_item(self in out nocopy ut_logical_suite, a_item ut_suite_item) is
34+
begin
35+
self.items.extend;
36+
self.items(self.items.last) := a_item;
37+
end;
38+
39+
overriding member procedure do_execute(self in out nocopy ut_logical_suite, a_listener in out nocopy ut_event_listener_base) is
40+
l_completed_without_errors boolean;
41+
begin
42+
l_completed_without_errors := self.do_execute(a_listener);
43+
end;
44+
45+
overriding member function do_execute(self in out nocopy ut_logical_suite, a_listener in out nocopy ut_event_listener_base) return boolean is
46+
l_suite_savepoint varchar2(30);
47+
l_item_savepoint varchar2(30);
48+
l_completed_without_errors boolean;
49+
begin
50+
ut_utils.debug_log('ut_logical_suite.execute');
51+
52+
if self.get_ignore_flag() then
53+
self.result := ut_utils.tr_ignore;
54+
ut_utils.debug_log('ut_logical_suite.execute - ignored');
55+
else
56+
a_listener.fire_before_event(ut_utils.gc_suite,self);
57+
58+
self.start_time := current_timestamp;
59+
60+
for i in 1 .. self.items.count loop
61+
-- execute the item (test or suite)
62+
self.items(i).do_execute(a_listener);
63+
64+
end loop;
65+
66+
self.calc_execution_result();
67+
68+
self.end_time := current_timestamp;
69+
70+
a_listener.fire_after_event(ut_utils.gc_suite,self);
71+
end if;
72+
73+
return l_completed_without_errors;
74+
end;
75+
76+
overriding member procedure calc_execution_result(self in out nocopy ut_logical_suite) is
77+
l_result integer(1);
78+
begin
79+
if self.items is not null and self.items.count > 0 then
80+
for i in 1 .. self.items.count loop
81+
self.results_count.sum_counter_values( self.items(i).results_count );
82+
end loop;
83+
l_result := self.results_count.result_status();
84+
else
85+
--if suite is empty then it's successful (no errors)
86+
l_result := ut_utils.tr_success;
87+
end if;
88+
89+
self.result := l_result;
90+
end;
91+
92+
end;
93+
/

0 commit comments

Comments
 (0)