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

Skip to content

Commit 318b9ef

Browse files
committed
Added test for floating --%disabled annotation.
Separated skipping tests and suites from executing them.
1 parent d03037f commit 318b9ef

11 files changed

Lines changed: 87 additions & 30 deletions

File tree

source/core/types/ut_logical_suite.tpb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,18 @@ create or replace type body ut_logical_suite as
5252
self.items(self.items.last) := a_item;
5353
end;
5454

55+
overriding member procedure mark_as_skipped(self in out nocopy ut_logical_suite, a_listener in out nocopy ut_event_listener_base) is
56+
begin
57+
a_listener.fire_before_event(ut_utils.gc_suite,self);
58+
self.start_time := current_timestamp;
59+
for i in 1 .. self.items.count loop
60+
self.items(i).mark_as_skipped(a_listener);
61+
end loop;
62+
self.end_time := self.start_time;
63+
a_listener.fire_after_event(ut_utils.gc_suite,self);
64+
self.calc_execution_result();
65+
end;
66+
5567
overriding member function do_execute(self in out nocopy ut_logical_suite, a_listener in out nocopy ut_event_listener_base) return boolean is
5668
l_suite_savepoint varchar2(30);
5769
l_item_savepoint varchar2(30);

source/core/types/ut_logical_suite.tps

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ create or replace type ut_logical_suite under ut_suite_item (
3030
*/
3131
member function item_index(a_name varchar2) return pls_integer,
3232
member procedure add_item(self in out nocopy ut_logical_suite, a_item ut_suite_item),
33+
overriding member procedure mark_as_skipped(self in out nocopy ut_logical_suite, a_listener in out nocopy ut_event_listener_base),
3334
overriding member function do_execute(self in out nocopy ut_logical_suite, a_listener in out nocopy ut_event_listener_base) return boolean,
3435
overriding member procedure calc_execution_result(self in out nocopy ut_logical_suite),
3536
overriding member procedure mark_as_errored(self in out nocopy ut_logical_suite, a_listener in out nocopy ut_event_listener_base, a_error_stack_trace varchar2),

source/core/types/ut_run.tpb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,17 @@ create or replace type body ut_run as
4747
return;
4848
end;
4949

50+
overriding member procedure mark_as_skipped(self in out nocopy ut_run, a_listener in out nocopy ut_event_listener_base) is
51+
begin
52+
null;
53+
end;
54+
5055
overriding member function do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_event_listener_base) return boolean is
5156
l_completed_without_errors boolean;
5257
begin
5358
ut_utils.debug_log('ut_run.execute');
5459

5560
a_listener.fire_before_event(ut_utils.gc_run, self);
56-
5761
self.start_time := current_timestamp;
5862

5963
-- clear anything that might stay in the session's cache

source/core/types/ut_run.tps

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ create or replace type ut_run under ut_suite_item (
3333
a_project_file_mappings ut_file_mappings := null,
3434
a_test_file_mappings ut_file_mappings := null
3535
) return self as result,
36+
overriding member procedure mark_as_skipped(self in out nocopy ut_run, a_listener in out nocopy ut_event_listener_base),
3637
overriding member function do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_event_listener_base) return boolean,
3738
overriding member procedure calc_execution_result(self in out nocopy ut_run),
3839
overriding member procedure mark_as_errored(self in out nocopy ut_run, a_listener in out nocopy ut_event_listener_base, a_error_stack_trace varchar2),

source/core/types/ut_suite.tpb

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,11 @@ create or replace type body ut_suite as
5454

5555
ut_utils.set_action(self.object_name);
5656

57-
a_listener.fire_before_event(ut_utils.gc_suite,self);
58-
59-
self.start_time := current_timestamp;
60-
6157
if self.get_disabled_flag() then
62-
for i in 1 .. self.items.count loop
63-
self.items(i).do_execute(a_listener);
64-
end loop;
65-
ut_utils.debug_log('ut_suite.execute - disabled');
58+
self.mark_as_skipped(a_listener);
6659
else
67-
60+
a_listener.fire_before_event(ut_utils.gc_suite,self);
61+
self.start_time := current_timestamp;
6862
if self.is_valid() then
6963

7064
l_suite_savepoint := self.create_savepoint_if_needed();
@@ -90,10 +84,10 @@ create or replace type body ut_suite as
9084
else
9185
propagate_error(ut_utils.table_to_clob(self.get_error_stack_traces()));
9286
end if;
87+
self.calc_execution_result();
88+
self.end_time := current_timestamp;
89+
a_listener.fire_after_event(ut_utils.gc_suite,self);
9390
end if;
94-
self.calc_execution_result();
95-
self.end_time := current_timestamp;
96-
a_listener.fire_after_event(ut_utils.gc_suite,self);
9791

9892
ut_utils.set_action(null);
9993

source/core/types/ut_suite.tps

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ create or replace type ut_suite under ut_logical_suite (
3232
a_after_all_proc_name varchar2 := null
3333
) return self as result,
3434
overriding member function is_valid(self in out nocopy ut_suite) return boolean,
35-
/**
36-
* Finds the item in the suite by it's name and returns the item index
37-
*/
3835
overriding member function do_execute(self in out nocopy ut_suite , a_listener in out nocopy ut_event_listener_base) return boolean,
3936
overriding member function get_error_stack_traces(self ut_suite) return ut_varchar2_list,
4037
overriding member function get_serveroutputs return clob

source/core/types/ut_suite_item.tps

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ create or replace type ut_suite_item force under ut_suite_item_base (
2323
a_description varchar2, a_path varchar2, a_rollback_type integer, a_disabled_flag boolean),
2424
member procedure set_disabled_flag(self in out nocopy ut_suite_item, a_disabled_flag boolean),
2525
member function get_disabled_flag return boolean,
26+
not instantiable member procedure mark_as_skipped(self in out nocopy ut_suite_item, a_listener in out nocopy ut_event_listener_base),
2627
member function create_savepoint_if_needed return varchar2,
2728
member procedure rollback_to_savepoint(self in out nocopy ut_suite_item, a_savepoint varchar2),
2829
member function get_transaction_invalidators return ut_varchar2_list,

source/core/types/ut_test.tpb

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,22 +53,29 @@ create or replace type body ut_test as
5353
return l_is_valid;
5454
end;
5555

56+
overriding member procedure mark_as_skipped(self in out nocopy ut_test, a_listener in out nocopy ut_event_listener_base) is
57+
begin
58+
a_listener.fire_before_event(ut_utils.gc_test,self);
59+
self.start_time := current_timestamp;
60+
self.result := ut_utils.tr_disabled;
61+
ut_utils.debug_log('ut_test.execute - disabled');
62+
self.results_count.set_counter_values(self.result);
63+
self.end_time := self.start_time;
64+
a_listener.fire_after_event(ut_utils.gc_test,self);
65+
end;
66+
5667
overriding member function do_execute(self in out nocopy ut_test, a_listener in out nocopy ut_event_listener_base) return boolean is
5768
l_completed_without_errors boolean;
5869
l_savepoint varchar2(30);
5970
begin
6071

6172
ut_utils.debug_log('ut_test.execute');
6273

63-
a_listener.fire_before_event(ut_utils.gc_test,self);
64-
self.start_time := current_timestamp;
65-
6674
if self.get_disabled_flag() then
67-
self.result := ut_utils.tr_disabled;
68-
ut_utils.debug_log('ut_test.execute - disabled');
69-
self.results_count.set_counter_values(self.result);
70-
self.end_time := self.start_time;
75+
mark_as_skipped(a_listener);
7176
else
77+
a_listener.fire_before_event(ut_utils.gc_test,self);
78+
self.start_time := current_timestamp;
7279
if self.is_valid() then
7380

7481
l_savepoint := self.create_savepoint_if_needed();
@@ -94,8 +101,8 @@ create or replace type body ut_test as
94101

95102
self.calc_execution_result();
96103
self.end_time := current_timestamp;
104+
a_listener.fire_after_event(ut_utils.gc_test,self);
97105
end if;
98-
a_listener.fire_after_event(ut_utils.gc_test,self);
99106
return l_completed_without_errors;
100107
end;
101108

source/core/types/ut_test.tps

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ create or replace type ut_test under ut_suite_item (
5858
member function is_valid(self in out nocopy ut_test) return boolean,
5959
member procedure set_beforeeach(self in out nocopy ut_test, a_before_each_proc_name varchar2),
6060
member procedure set_aftereach(self in out nocopy ut_test, a_after_each_proc_name varchar2),
61+
overriding member procedure mark_as_skipped(self in out nocopy ut_test, a_listener in out nocopy ut_event_listener_base),
6162
overriding member function do_execute(self in out nocopy ut_test, a_listener in out nocopy ut_event_listener_base) return boolean,
6263
overriding member procedure calc_execution_result(self in out nocopy ut_test),
6364
overriding member procedure mark_as_errored(self in out nocopy ut_test, a_listener in out nocopy ut_event_listener_base, a_error_stack_trace varchar2),

test/ut_suite_manager/test_suite_manager.pkb

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1261,7 +1261,47 @@ end;';
12611261
begin
12621262
execute immediate 'drop package test_package_same_1';
12631263
execute immediate 'drop package test_package_same_1_a';
1264-
null;
1264+
end;
1265+
1266+
procedure setup_disabled_pck is
1267+
pragma autonomous_transaction;
1268+
begin
1269+
execute immediate q'[create or replace package test_disabled_floating as
1270+
--%suite
1271+
1272+
--%test
1273+
procedure test1;
1274+
1275+
--%disabled
1276+
1277+
--%test
1278+
procedure test2;
1279+
1280+
end;]';
1281+
end;
1282+
1283+
procedure clean_disabled_pck is
1284+
pragma autonomous_transaction;
1285+
begin
1286+
execute immediate 'drop package test_disabled_floating';
1287+
end;
1288+
1289+
procedure disable_suite_floating_annot is
1290+
l_objects_to_run ut3.ut_suite_items;
1291+
l_suite ut3.ut_suite;
1292+
begin
1293+
--Arrange
1294+
setup_disabled_pck;
1295+
--Act
1296+
l_objects_to_run := ut3.ut_suite_manager.configure_execution_by_path(ut3.ut_varchar2_list('test_disabled_floating'));
1297+
1298+
--Assert
1299+
ut.expect(l_objects_to_run.count).to_equal(1);
1300+
l_suite := treat(l_objects_to_run(1) as ut3.ut_suite);
1301+
ut.expect(l_suite.name).to_equal('test_disabled_floating');
1302+
ut.expect(l_suite.get_disabled_flag()).to_be_true();
1303+
1304+
clean_disabled_pck;
12651305
end;
12661306

12671307
end test_suite_manager;

0 commit comments

Comments
 (0)