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

Skip to content
Merged
Prev Previous commit
Next Next commit
added tests for the runner
  • Loading branch information
Pazus committed Dec 7, 2016
commit cebe94c57398ac53e2b30f0eb6e48280272ade79
23 changes: 21 additions & 2 deletions tests/RunAll.sql
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ set serveroutput on size unlimited format truncated
create table ut$test_table (val varchar2(1));
@@helpers/ut_transaction_control.pck
@@helpers/department.tps
@@helpers/test_package_1.pck
@@helpers/test_package_2.pck

--Tests to invoke

Expand Down Expand Up @@ -173,14 +171,35 @@ create table ut$test_table (val varchar2(1));
@@lib/RunTest.sql ut_output_dbms_output/ut_output_dbms_output.get_lines.RetunrsNoRowsWhenNoDataInBuffer.sql
@@lib/RunTest.sql ut_output_dbms_output/ut_output_dbms_output.get_lines.ReturnsSentLines.sql
@@lib/RunTest.sql ut_output_dbms_output/ut_output_dbms_output.send_clob.SendsAClobIntoPipe.sql

--Global cleanup
drop package ut_example_tests;
drop procedure check_annotation_parsing;
drop package ut_transaction_control;
drop table ut$test_table;
drop type department$;

-- at this point we have to be ready that it's the only packages with annotation in the schema
@@helpers/test_package_1.pck
@@helpers/test_package_2.pck
@@helpers/test_package_3.pck

@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheSchema.sql

@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageByPath.sql
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTop2PackageByPath.sql
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageWithoutSubsuitesByPath.sql

@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageByName.sql
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTop2PackageByName.sql
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageWithoutSubsuitesByName.sql

@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTopPackageProcedureByPath.sql
@@lib/RunTest.sql ut_suite_manager/ut_suite_manager.configure_execution_by_path.PrepareRunnerForTheTop2PackageProcedureByPath.sql

drop package test_package_1.pck
drop package test_package_2.pck
drop package test_package_3.pck

--Finally
@@lib/RunSummary
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
PROMPT Prepare runner for the schema

--Arrange
declare
c_path varchar2(100) := user;
l_objects_to_run ut_objects_list;

l_test0_suite ut_test_suite;
l_test1_suite ut_test_suite;
l_test2_suite ut_test_suite;
begin
--Act
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path)
,a_objects_to_run => l_objects_to_run);

--Assert
ut.expect(l_objects_to_run.count).to_equal(2);

for i in 1 .. 2 loop
l_test0_suite := treat(l_objects_to_run(i) as ut_test_suite);
ut.expect(l_test0_suite.object_name in ('tests', 'tests2')).to_be_true;

l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);

case l_test0_suite.object_name
when 'tests' then
ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
ut.expect(l_test1_suite.items.count).to_equal(3);
l_test2_suite := treat(l_test1_suite.items(3) as ut_test_suite);

ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
ut.expect(l_test2_suite.items.count).to_equal(2);
when 'tests2' then
ut.expect(l_test1_suite.object_name).to_equal('test_package_3');
ut.expect(l_test1_suite.items.count).to_equal(2);
end case;

end loop;

if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
end if;

end;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
PROMPT Prepare runner for the top 2 package by package name

--Arrange
declare
c_path varchar2(100) := USER||'.test_package_2';
l_objects_to_run ut_objects_list;

l_test0_suite ut_test_suite;
l_test1_suite ut_test_suite;
l_test2_suite ut_test_suite;
begin
--Act
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);

--Assert
ut.expect(l_objects_to_run.count).to_equal(1);
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);

ut.expect(l_test0_suite.object_name).to_equal('tests');
ut.expect(l_test0_suite.items.count).to_equal(1);
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);

ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
ut.expect(l_test1_suite.items.count).to_equal(1);
l_test2_suite := treat(l_test1_suite.items(1) as ut_test_suite);

ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
ut.expect(l_test2_suite.items.count).to_equal(2);


if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
end if;

end;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
PROMPT Prepare runner for the top 2 package by path

--Arrange
declare
c_path varchar2(100) := USER||':tests.test_package_1.test_package_2';
l_objects_to_run ut_objects_list;

l_test0_suite ut_test_suite;
l_test1_suite ut_test_suite;
l_test2_suite ut_test_suite;
begin
--Act
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);

--Assert
ut.expect(l_objects_to_run.count).to_equal(1);
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);

ut.expect(l_test0_suite.object_name).to_equal('tests');
ut.expect(l_test0_suite.items.count).to_equal(1);
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);

ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
ut.expect(l_test1_suite.items.count).to_equal(1);
l_test2_suite := treat(l_test1_suite.items(1) as ut_test_suite);

ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
ut.expect(l_test2_suite.items.count).to_equal(2);


if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
end if;

end;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
PROMPT Prepare runner for the top 2 package procedure by path

--Arrange
declare
c_path varchar2(100) := USER||':tests.test_package_1.test_package_2.test2';
l_objects_to_run ut_objects_list;

l_test0_suite ut_test_suite;
l_test1_suite ut_test_suite;
l_test2_suite ut_test_suite;
l_test_proc ut_test;
begin
--Act
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);

--Assert
ut.expect(l_objects_to_run.count).to_equal(1);
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);

ut.expect(l_test0_suite.object_name).to_equal('tests');
ut.expect(l_test0_suite.items.count).to_equal(1);
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);

ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
ut.expect(l_test1_suite.items.count).to_equal(1);
l_test2_suite := treat(l_test1_suite.items(1) as ut_test_suite);

ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
ut.expect(l_test2_suite.items.count).to_equal(1);

l_test_proc := treat(l_test2_suite.items(1) as ut_test);
ut.expect(l_test_proc.object_name).to_equal('test2');
ut.expect(l_test_proc.setup is not null).to_be_true;
ut.expect(l_test_proc.teardown is not null).to_be_true;

if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
end if;

end;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
PROMPT Prepare runner for the top package by package name

--Arrange
declare
c_path varchar2(100) := USER||'.test_package_1';
l_objects_to_run ut_objects_list;

l_test0_suite ut_test_suite;
l_test1_suite ut_test_suite;
l_test2_suite ut_test_suite;
begin
--Act
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);

--Assert
ut.expect(l_objects_to_run.count).to_equal(1);
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);

ut.expect(l_test0_suite.object_name).to_equal('tests');
ut.expect(l_test0_suite.items.count).to_equal(1);
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);

ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
ut.expect(l_test1_suite.items.count).to_equal(3);
l_test2_suite := treat(l_test1_suite.items(3) as ut_test_suite);

ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
ut.expect(l_test2_suite.items.count).to_equal(2);


if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
end if;

end;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
PROMPT Prepare runner for the top package by path

--Arrange
declare
c_path varchar2(100) := USER||':tests';
l_objects_to_run ut_objects_list;

l_test0_suite ut_test_suite;
l_test1_suite ut_test_suite;
l_test2_suite ut_test_suite;
begin
--Act
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);

--Assert
ut.expect(l_objects_to_run.count).to_equal(1);
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);

ut.expect(l_test0_suite.object_name).to_equal('tests');
ut.expect(l_test0_suite.items.count).to_equal(1);
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);

ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
ut.expect(l_test1_suite.items.count).to_equal(3);
l_test2_suite := treat(l_test1_suite.items(3) as ut_test_suite);

ut.expect(l_test2_suite.object_name).to_equal('test_package_2');
ut.expect(l_test2_suite.items.count).to_equal(2);


if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
end if;

end;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
PROMPT Prepare runner for the top package procedure by path

--Arrange
declare
c_path varchar2(100) := USER||':tests.test_package_1.test2';
l_objects_to_run ut_objects_list;

l_test0_suite ut_test_suite;
l_test1_suite ut_test_suite;
l_test2_suite ut_test_suite;
l_test_proc ut_test;
begin
--Act
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);

--Assert
ut.expect(l_objects_to_run.count).to_equal(1);
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);

ut.expect(l_test0_suite.object_name).to_equal('tests');
ut.expect(l_test0_suite.items.count).to_equal(1);
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);

ut.expect(l_test1_suite.object_name).to_equal('test_package_1');
ut.expect(l_test1_suite.items.count).to_equal(1);
l_test_proc := treat(l_test1_suite.items(1) as ut_test);

ut.expect(l_test_proc.object_name).to_equal('test2');
ut.expect(l_test_proc.setup is not null).to_be_true;
ut.expect(l_test_proc.teardown is not null).to_be_true;

if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
end if;

end;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
PROMPT Prepare runner for the top package procedure without sub-suites by package name

--Arrange
declare
c_path varchar2(100) := USER||'.test_package_2.test2';
l_objects_to_run ut_objects_list;

l_test0_suite ut_test_suite;
l_test1_suite ut_test_suite;
l_test_proc ut_test;
begin
--Act
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);

--Assert
ut.expect(l_objects_to_run.count).to_equal(1);
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);

ut.expect(l_test0_suite.object_name).to_equal('tests');
ut.expect(l_test0_suite.items.count).to_equal(1);
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);

ut.expect(l_test1_suite.object_name).to_equal('test_package_3');
ut.expect(l_test1_suite.items.count).to_equal(1);

l_test_proc := treat(l_test1_suite.items(1) as ut_test);
ut.expect(l_test_proc.object_name).to_equal('test2');
ut.expect(l_test_proc.setup is not null).to_be_true;
ut.expect(l_test_proc.teardown is not null).to_be_true;

if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
end if;

end;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
PROMPT Prepare runner for the top package without sub-suites by package name

--Arrange
declare
c_path varchar2(100) := USER||'.test_package_3';
l_objects_to_run ut_objects_list;

l_test0_suite ut_test_suite;
l_test1_suite ut_test_suite;
begin
--Act
ut_suite_manager.configure_execution_by_path(a_paths => ut_varchar2_list(c_path), a_objects_to_run => l_objects_to_run);

--Assert
ut.expect(l_objects_to_run.count).to_equal(1);
l_test0_suite := treat(l_objects_to_run(1) as ut_test_suite);

ut.expect(l_test0_suite.object_name).to_equal('tests2');
ut.expect(l_test0_suite.items.count).to_equal(1);
l_test1_suite := treat(l_test0_suite.items(1) as ut_test_suite);

ut.expect(l_test1_suite.object_name).to_equal('test_package_3');
ut.expect(l_test1_suite.items.count).to_equal(2);

if ut_assert_processor.get_aggregate_asserts_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
end if;

end;
/
Loading