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

Skip to content

Commit cebe94c

Browse files
committed
added tests for the runner
1 parent 6860168 commit cebe94c

11 files changed

Lines changed: 384 additions & 2 deletions

tests/RunAll.sql

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ set serveroutput on size unlimited format truncated
1515
create table ut$test_table (val varchar2(1));
1616
@@helpers/ut_transaction_control.pck
1717
@@helpers/department.tps
18-
@@helpers/test_package_1.pck
19-
@@helpers/test_package_2.pck
2018

2119
--Tests to invoke
2220

@@ -173,14 +171,35 @@ create table ut$test_table (val varchar2(1));
173171
@@lib/RunTest.sql ut_output_dbms_output/ut_output_dbms_output.get_lines.RetunrsNoRowsWhenNoDataInBuffer.sql
174172
@@lib/RunTest.sql ut_output_dbms_output/ut_output_dbms_output.get_lines.ReturnsSentLines.sql
175173
@@lib/RunTest.sql ut_output_dbms_output/ut_output_dbms_output.send_clob.SendsAClobIntoPipe.sql
174+
176175
--Global cleanup
177176
drop package ut_example_tests;
178177
drop procedure check_annotation_parsing;
179178
drop package ut_transaction_control;
180179
drop table ut$test_table;
181180
drop type department$;
181+
182+
-- at this point we have to be ready that it's the only packages with annotation in the schema
183+
@@helpers/test_package_1.pck
184+
@@helpers/test_package_2.pck
185+
@@helpers/test_package_3.pck
186+
187+
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheSchema.sql
188+
189+
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageByPath.sql
190+
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTop2PackageByPath.sql
191+
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageWithoutSubsuitesByPath.sql
192+
193+
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageByName.sql
194+
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTop2PackageByName.sql
195+
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageWithoutSubsuitesByName.sql
196+
197+
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageProcedureByPath.sql
198+
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTop2PackageProcedureByPath.sql
199+
182200
drop package test_package_1.pck
183201
drop package test_package_2.pck
202+
drop package test_package_3.pck
184203

185204
--Finally
186205
@@lib/RunSummary
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
PROMPT Prepare runner for the schema
2+
3+
--Arrange
4+
declare
5+
c_path varchar2(100) := user;
6+
l_objects_to_run ut_objects_list;
7+
8+
l_test0_suite ut_test_suite;
9+
l_test1_suite ut_test_suite;
10+
l_test2_suite ut_test_suite;
11+
begin
12+
--Act
13+
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path)
14+
,a_objects_to_run => l_objects_to_run);
15+
16+
--Assert
17+
ut.expect(l_objects_to_run.count).to_equal(2);
18+
19+
for i in 1 .. 2 loop
20+
l_test0_suite := treat(l_objects_to_run(i) as ut_test_suite);
21+
ut.expect(l_test0_suite.object_name in ('tests', 'tests2')).to_be_true;
22+
23+
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);
24+
25+
case l_test0_suite.object_name
26+
when 'tests' then
27+
ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
28+
ut.expect(l_test1_suite.items.count).to_equal(3);
29+
l_test2_suite := treat(l_test1_suite.items(3) as ut_test_suite);
30+
31+
ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
32+
ut.expect(l_test2_suite.items.count).to_equal(2);
33+
when 'tests2' then
34+
ut.expect(l_test1_suite.object_name).to_equal('test_package_3');
35+
ut.expect(l_test1_suite.items.count).to_equal(2);
36+
end case;
37+
38+
end loop;
39+
40+
if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
41+
:test_result := ut_utils.tr_success;
42+
end if;
43+
44+
end;
45+
/
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
PROMPT Prepare runner for the top 2 package by package name
2+
3+
--Arrange
4+
declare
5+
c_path varchar2(100) := USER||'.test_package_2';
6+
l_objects_to_run ut_objects_list;
7+
8+
l_test0_suite ut_test_suite;
9+
l_test1_suite ut_test_suite;
10+
l_test2_suite ut_test_suite;
11+
begin
12+
--Act
13+
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);
14+
15+
--Assert
16+
ut.expect(l_objects_to_run.count).to_equal(1);
17+
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);
18+
19+
ut.expect(l_test0_suite.object_name).to_equal('tests');
20+
ut.expect(l_test0_suite.items.count).to_equal(1);
21+
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);
22+
23+
ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
24+
ut.expect(l_test1_suite.items.count).to_equal(1);
25+
l_test2_suite := treat(l_test1_suite.items(1) as ut_test_suite);
26+
27+
ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
28+
ut.expect(l_test2_suite.items.count).to_equal(2);
29+
30+
31+
if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
32+
:test_result := ut_utils.tr_success;
33+
end if;
34+
35+
end;
36+
/
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
PROMPT Prepare runner for the top 2 package by path
2+
3+
--Arrange
4+
declare
5+
c_path varchar2(100) := USER||':tests.test_package_1.test_package_2';
6+
l_objects_to_run ut_objects_list;
7+
8+
l_test0_suite ut_test_suite;
9+
l_test1_suite ut_test_suite;
10+
l_test2_suite ut_test_suite;
11+
begin
12+
--Act
13+
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);
14+
15+
--Assert
16+
ut.expect(l_objects_to_run.count).to_equal(1);
17+
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);
18+
19+
ut.expect(l_test0_suite.object_name).to_equal('tests');
20+
ut.expect(l_test0_suite.items.count).to_equal(1);
21+
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);
22+
23+
ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
24+
ut.expect(l_test1_suite.items.count).to_equal(1);
25+
l_test2_suite := treat(l_test1_suite.items(1) as ut_test_suite);
26+
27+
ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
28+
ut.expect(l_test2_suite.items.count).to_equal(2);
29+
30+
31+
if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
32+
:test_result := ut_utils.tr_success;
33+
end if;
34+
35+
end;
36+
/
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
PROMPT Prepare runner for the top 2 package procedure by path
2+
3+
--Arrange
4+
declare
5+
c_path varchar2(100) := USER||':tests.test_package_1.test_package_2.test2';
6+
l_objects_to_run ut_objects_list;
7+
8+
l_test0_suite ut_test_suite;
9+
l_test1_suite ut_test_suite;
10+
l_test2_suite ut_test_suite;
11+
l_test_proc ut_test;
12+
begin
13+
--Act
14+
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);
15+
16+
--Assert
17+
ut.expect(l_objects_to_run.count).to_equal(1);
18+
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);
19+
20+
ut.expect(l_test0_suite.object_name).to_equal('tests');
21+
ut.expect(l_test0_suite.items.count).to_equal(1);
22+
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);
23+
24+
ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
25+
ut.expect(l_test1_suite.items.count).to_equal(1);
26+
l_test2_suite := treat(l_test1_suite.items(1) as ut_test_suite);
27+
28+
ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
29+
ut.expect(l_test2_suite.items.count).to_equal(1);
30+
31+
l_test_proc := treat(l_test2_suite.items(1) as ut_test);
32+
ut.expect(l_test_proc.object_name).to_equal('test2');
33+
ut.expect(l_test_proc.setup is not null).to_be_true;
34+
ut.expect(l_test_proc.teardown is not null).to_be_true;
35+
36+
if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
37+
:test_result := ut_utils.tr_success;
38+
end if;
39+
40+
end;
41+
/
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
PROMPT Prepare runner for the top package by package name
2+
3+
--Arrange
4+
declare
5+
c_path varchar2(100) := USER||'.test_package_1';
6+
l_objects_to_run ut_objects_list;
7+
8+
l_test0_suite ut_test_suite;
9+
l_test1_suite ut_test_suite;
10+
l_test2_suite ut_test_suite;
11+
begin
12+
--Act
13+
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);
14+
15+
--Assert
16+
ut.expect(l_objects_to_run.count).to_equal(1);
17+
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);
18+
19+
ut.expect(l_test0_suite.object_name).to_equal('tests');
20+
ut.expect(l_test0_suite.items.count).to_equal(1);
21+
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);
22+
23+
ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
24+
ut.expect(l_test1_suite.items.count).to_equal(3);
25+
l_test2_suite := treat(l_test1_suite.items(3) as ut_test_suite);
26+
27+
ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
28+
ut.expect(l_test2_suite.items.count).to_equal(2);
29+
30+
31+
if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
32+
:test_result := ut_utils.tr_success;
33+
end if;
34+
35+
end;
36+
/
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
PROMPT Prepare runner for the top package by path
2+
3+
--Arrange
4+
declare
5+
c_path varchar2(100) := USER||':tests';
6+
l_objects_to_run ut_objects_list;
7+
8+
l_test0_suite ut_test_suite;
9+
l_test1_suite ut_test_suite;
10+
l_test2_suite ut_test_suite;
11+
begin
12+
--Act
13+
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);
14+
15+
--Assert
16+
ut.expect(l_objects_to_run.count).to_equal(1);
17+
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);
18+
19+
ut.expect(l_test0_suite.object_name).to_equal('tests');
20+
ut.expect(l_test0_suite.items.count).to_equal(1);
21+
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);
22+
23+
ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
24+
ut.expect(l_test1_suite.items.count).to_equal(3);
25+
l_test2_suite := treat(l_test1_suite.items(3) as ut_test_suite);
26+
27+
ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
28+
ut.expect(l_test2_suite.items.count).to_equal(2);
29+
30+
31+
if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
32+
:test_result := ut_utils.tr_success;
33+
end if;
34+
35+
end;
36+
/
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
PROMPT Prepare runner for the top package procedure by path
2+
3+
--Arrange
4+
declare
5+
c_path varchar2(100) := USER||':tests.test_package_1.test2';
6+
l_objects_to_run ut_objects_list;
7+
8+
l_test0_suite ut_test_suite;
9+
l_test1_suite ut_test_suite;
10+
l_test2_suite ut_test_suite;
11+
l_test_proc ut_test;
12+
begin
13+
--Act
14+
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);
15+
16+
--Assert
17+
ut.expect(l_objects_to_run.count).to_equal(1);
18+
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);
19+
20+
ut.expect(l_test0_suite.object_name).to_equal('tests');
21+
ut.expect(l_test0_suite.items.count).to_equal(1);
22+
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);
23+
24+
ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
25+
ut.expect(l_test1_suite.items.count).to_equal(1);
26+
l_test_proc := treat(l_test1_suite.items(1) as ut_test);
27+
28+
ut.expect(l_test_proc.object_name).to_equal('test2');
29+
ut.expect(l_test_proc.setup is not null).to_be_true;
30+
ut.expect(l_test_proc.teardown is not null).to_be_true;
31+
32+
if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
33+
:test_result := ut_utils.tr_success;
34+
end if;
35+
36+
end;
37+
/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
PROMPT Prepare runner for the top package procedure without sub-suites by package name
2+
3+
--Arrange
4+
declare
5+
c_path varchar2(100) := USER||'.test_package_2.test2';
6+
l_objects_to_run ut_objects_list;
7+
8+
l_test0_suite ut_test_suite;
9+
l_test1_suite ut_test_suite;
10+
l_test_proc ut_test;
11+
begin
12+
--Act
13+
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);
14+
15+
--Assert
16+
ut.expect(l_objects_to_run.count).to_equal(1);
17+
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);
18+
19+
ut.expect(l_test0_suite.object_name).to_equal('tests');
20+
ut.expect(l_test0_suite.items.count).to_equal(1);
21+
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);
22+
23+
ut.expect(l_test1_suite.object_name).to_equal('test_package_3');
24+
ut.expect(l_test1_suite.items.count).to_equal(1);
25+
26+
l_test_proc := treat(l_test1_suite.items(1) as ut_test);
27+
ut.expect(l_test_proc.object_name).to_equal('test2');
28+
ut.expect(l_test_proc.setup is not null).to_be_true;
29+
ut.expect(l_test_proc.teardown is not null).to_be_true;
30+
31+
if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
32+
:test_result := ut_utils.tr_success;
33+
end if;
34+
35+
end;
36+
/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
PROMPT Prepare runner for the top package without sub-suites by package name
2+
3+
--Arrange
4+
declare
5+
c_path varchar2(100) := USER||'.test_package_3';
6+
l_objects_to_run ut_objects_list;
7+
8+
l_test0_suite ut_test_suite;
9+
l_test1_suite ut_test_suite;
10+
begin
11+
--Act
12+
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);
13+
14+
--Assert
15+
ut.expect(l_objects_to_run.count).to_equal(1);
16+
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);
17+
18+
ut.expect(l_test0_suite.object_name).to_equal('tests2');
19+
ut.expect(l_test0_suite.items.count).to_equal(1);
20+
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);
21+
22+
ut.expect(l_test1_suite.object_name).to_equal('test_package_3');
23+
ut.expect(l_test1_suite.items.count).to_equal(2);
24+
25+
if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
26+
:test_result := ut_utils.tr_success;
27+
end if;
28+
29+
end;
30+
/

0 commit comments

Comments
 (0)