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

Skip to content

Commit 5e5fea4

Browse files
tests improved
1 parent 9d5b915 commit 5e5fea4

2 files changed

Lines changed: 92 additions & 42 deletions

File tree

test/core/annotations/test_before_after_test_annotation.pkb

Lines changed: 87 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,65 @@ create or replace package body test_before_after_annotations is
1616
execute immediate 'drop package '||a_package_name;
1717
end;
1818
begin
19+
l_dummy_utility_pkg_spec := '
20+
create or replace package dummy_utility_pkg_1 is
21+
g_executed_procedures ut_varchar2_list;
22+
g_test4_executed boolean := false;
23+
g_test5_executed boolean := false;
24+
g_beforetest_one_err_procedure boolean := false;
25+
26+
procedure insert_executed_procedure(a_procedure_name varchar2);
27+
28+
procedure test1;
29+
30+
procedure test3;
31+
32+
procedure test4;
33+
34+
procedure test5;
35+
end;
36+
';
37+
38+
l_dummy_utility_pkg_body := '
39+
create or replace package body dummy_utility_pkg_1 is
40+
procedure insert_executed_procedure(a_procedure_name varchar2)
41+
is
42+
begin
43+
if g_executed_procedures is null then
44+
g_executed_procedures := ut_varchar2_list(a_procedure_name);
45+
else
46+
g_executed_procedures.extend;
47+
g_executed_procedures(g_executed_procedures.count) := a_procedure_name;
48+
end if;
49+
end;
50+
51+
procedure test1 is
52+
begin
53+
insert_executed_procedure(''test1'');
54+
end;
55+
56+
procedure test3 is
57+
begin
58+
insert_executed_procedure(''test3'');
59+
end;
60+
61+
procedure test4 is
62+
begin
63+
g_test4_executed := true;
64+
end;
65+
66+
procedure test5 is
67+
begin
68+
g_test4_executed := true;
69+
end;
70+
end;
71+
';
72+
1973
l_test_package_spec := '
2074
create or replace package dummy_before_after_test is
2175
--%suite(Package to test annotations beforetest and aftertest)
2276

23-
l_dummy_1 integer;
24-
l_dummy_2 integer;
25-
l_dummy_3 integer;
26-
27-
--%beforeeach
77+
--%aftereach
2878
procedure clean_global_variables;
2979

3080
--%test(Beforetest with call to procedure external to the test package)
@@ -37,9 +87,12 @@ create or replace package body test_before_after_annotations is
3787
procedure beforetest_multi_ext_procedure;
3888

3989
--%test(Beforetest with call to multi procedures where one does not exist)
40-
--%beforetest(dummy_utility_pkg_1.test1, non_existent_procedure, ut3_tester.dummy_utility_pkg_1.test3)
90+
--%beforetest(dummy_utility_pkg_1.test4, non_existent_procedure, ut3_tester.dummy_utility_pkg_1.test5)
4191
procedure beforetest_one_err_procedure;
4292

93+
--%test(Test which beforetest procedures were executed)
94+
procedure test_executed_beforetests;
95+
4396
procedure test2;
4497
end;
4598
';
@@ -48,63 +101,47 @@ create or replace package body test_before_after_annotations is
48101
create or replace package body dummy_before_after_test is
49102
procedure clean_global_variables is
50103
begin
51-
l_dummy_1 := null;
52-
l_dummy_2 := null;
53-
l_dummy_3 := null;
104+
dummy_utility_pkg_1.g_executed_procedures := null;
54105
end;
55106

56107
procedure beforetest_one_ext_procedure is
57108
begin
58-
ut3.ut.expect(l_dummy_1).to_equal(1);
109+
ut3.ut.expect(dummy_utility_pkg_1.g_executed_procedures(1)).to_equal(''test1'');
59110
end;
60111

61112
procedure beforetest_multi_ext_procedure
62113
is
63114
begin
64-
ut3.ut.expect(l_dummy_1).to_equal(1);
65-
ut3.ut.expect(l_dummy_2).to_equal(2);
66-
ut3.ut.expect(l_dummy_3).to_equal(3);
115+
ut3.ut.expect(dummy_utility_pkg_1.g_executed_procedures(1)).to_equal(''test1'');
116+
ut3.ut.expect(dummy_utility_pkg_1.g_executed_procedures(2)).to_equal(''test2'');
117+
ut3.ut.expect(dummy_utility_pkg_1.g_executed_procedures(3)).to_equal(''test3'');
67118
end;
68119

69120
procedure beforetest_one_err_procedure
70121
is
71122
begin
72-
null;
123+
dummy_utility_pkg_1.g_beforetest_one_err_procedure := true;
124+
end;
125+
126+
procedure test_executed_beforetests
127+
is
128+
begin
129+
ut3.ut.expect(dummy_utility_pkg_1.g_test4_executed).to_be_true;
130+
ut3.ut.expect(dummy_utility_pkg_1.g_test5_executed).to_be_false;
131+
ut3.ut.expect(dummy_utility_pkg_1.g_beforetest_one_err_procedure).to_be_false;
73132
end;
74133

75134
procedure test2 is
76135
begin
77-
l_dummy_2 := 2;
136+
dummy_utility_pkg_1.insert_executed_procedure(''test2'');
78137
end;
79138
end;
80139
';
81140

82-
l_dummy_utility_pkg_spec := '
83-
create or replace package dummy_utility_pkg_1 is
84-
procedure test1;
85-
86-
procedure test3;
87-
end;
88-
';
89-
90-
l_dummy_utility_pkg_body := '
91-
create or replace package body dummy_utility_pkg_1 is
92-
procedure test1 is
93-
begin
94-
dummy_before_after_test.l_dummy_1 := 1;
95-
end;
96-
97-
procedure test3 is
98-
begin
99-
dummy_before_after_test.l_dummy_3 := 3;
100-
end;
101-
end;
102-
';
103-
104-
execute immediate l_test_package_spec;
105-
execute immediate l_test_package_body;
106141
execute immediate l_dummy_utility_pkg_spec;
107142
execute immediate l_dummy_utility_pkg_body;
143+
execute immediate l_test_package_spec;
144+
execute immediate l_test_package_body;
108145

109146
--Execute the tests and recolect the results
110147
select * bulk collect into l_test_results from table(ut3.ut.run(('dummy_before_after_test')));
@@ -125,14 +162,23 @@ create or replace package body test_before_after_annotations is
125162
procedure beforetest_multi_ext_procedure
126163
is
127164
begin
165+
--Also test the execution order of the beforetest procedures
128166
ut.expect(g_tests_results).to_match('^\s*Beforetest with call to multi procedures external and interal to the test package \[[\.0-9]+ sec\]\s*$','m');
129167
ut.expect(g_tests_results).not_to_match('beforetest_multi_ext_procedure');
130168
end;
131169

132170
procedure beforetest_one_err_procedure
133171
is
134172
begin
173+
ut.expect(g_tests_results).to_match('^\s*Call params for before_test are not valid: procedure does not exist\s*[^.]+\.DUMMY_BEFORE_AFTER_TEST\.NON_EXISTENT_PROCEDURE\s*$', 'm');
135174
ut.expect(g_tests_results).not_to_match('^\s*Beforetest with call to multi procedures where one does not exist \[[\.0-9]+ sec\]\s*$','m');
136-
ut.expect(g_tests_results).to_match('beforetest_one_err_procedure');
137175
end;
138-
end;
176+
177+
procedure test_executed_beforetests
178+
is
179+
begin
180+
ut.expect(g_tests_results).to_match('^\s*Test which beforetest procedures were executed \[[\.0-9]+ sec\]\s*$','m');
181+
ut.expect(g_tests_results).not_to_match('test_executed_beforetests');
182+
end;
183+
end;
184+
/

test/core/annotations/test_before_after_test_annotation.pks

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,8 @@ create or replace package test_before_after_annotations is
1515

1616
--%test(Beforetest with call to multi procedure where one does not exist)
1717
procedure beforetest_one_err_procedure;
18-
end;
18+
19+
--%test(Test which beforetest procedures were executed)
20+
procedure test_executed_beforetests;
21+
end;
22+
/

0 commit comments

Comments
 (0)