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

Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
133ecae
Adding new API user.
lwasylow Mar 22, 2019
9db8f4b
Separating tests.
lwasylow Mar 23, 2019
13f772a
Merge branch 'develop' of github.com:utPLSQL/utPLSQL into feature/int…
lwasylow Mar 24, 2019
c56943e
Update properties
lwasylow Mar 24, 2019
5afba10
Change user that executes tests as helper that is super user.
lwasylow Mar 24, 2019
7cd92e7
Adding next set of tests migrated.
lwasylow Mar 24, 2019
e2561bc
Adding next set of tests migrated.
lwasylow Mar 25, 2019
887e46a
Fixing test package
lwasylow Mar 25, 2019
28dbd1e
Added set of tests:
lwasylow Mar 25, 2019
d7eb125
Adding set of tests :
lwasylow Mar 25, 2019
99e1099
Adding schema prefix to failing tests from 12.1
lwasylow Mar 25, 2019
04cd36c
Fixing development scripts
lwasylow Mar 25, 2019
3e98723
Fixed bug for deployments with uninstall included.
jgebal Mar 25, 2019
ba83f8f
Merge branch 'feature/introduce_testing_with_accurate_grants' of gith…
lwasylow Mar 26, 2019
0bf1d9e
FIX : removal of non existing types from uninstall script
lwasylow Mar 26, 2019
e914d96
INSTALL:Is it too many monkeys ?:)
lwasylow Mar 26, 2019
174dcbc
Adding set of tests:
lwasylow Mar 26, 2019
0c05daf
Adding set of tests:
lwasylow Mar 26, 2019
80783c3
Adding set of tests:
lwasylow Mar 28, 2019
c4b08af
Adding set of tests:
lwasylow Mar 28, 2019
0618616
Adding set of tests:
lwasylow Mar 28, 2019
29295b7
Adding set of tests:
lwasylow Mar 29, 2019
30b0cfe
Adding set of tests:
lwasylow Mar 29, 2019
3cc34ea
Adding tests
lwasylow Mar 29, 2019
a6a848d
Adding tests:
lwasylow Mar 30, 2019
858372c
Adding set of tests:
lwasylow Mar 31, 2019
620fd61
Adding extra tests:
lwasylow Mar 31, 2019
e6b0673
Merge branch 'develop' of github.com:utPLSQL/utPLSQL into feature/int…
lwasylow Mar 31, 2019
c508e79
Adding tests:
lwasylow Apr 1, 2019
858a675
Fixing broken test.
lwasylow Apr 1, 2019
1642f47
Adding test:
lwasylow Apr 1, 2019
30d27fe
Adding global setup
lwasylow Apr 1, 2019
3b07c6a
Merge branch 'develop' of github.com:utPLSQL/utPLSQL into feature/int…
lwasylow Apr 2, 2019
a8dfa14
Merge branch 'develop' of github.com:utPLSQL/utPLSQL into feature/int…
lwasylow Apr 2, 2019
5d3b18c
Update cleanup script after branching from random order branch
lwasylow Apr 2, 2019
b56d27a
Fixed invalid suitepath in `core` package.
jgebal Apr 3, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Adding set of tests:
api/test_ut_run
  • Loading branch information
lwasylow committed Mar 26, 2019
commit 174dcbc9a90ffa56a827dba5d61882ca7fb38330
2 changes: 2 additions & 0 deletions test/install_ut3_user_tests.sql
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ prompt Install user tests
@@ut3_user/expectations/test_expectation_anydata.pks
@@ut3_user/expectations/test_expectations_cursor.pks
@@ut3_user/api/test_ut_runner.pks
@@ut3_user/api/test_ut_run.pks

@@ut3_user/expectations/unary/test_expect_not_to_be_null.pkb
@@ut3_user/expectations/unary/test_expect_to_be_null.pkb
Expand All @@ -34,6 +35,7 @@ prompt Install user tests
@@ut3_user/expectations/test_expectation_anydata.pkb
@@ut3_user/expectations/test_expectations_cursor.pkb
@@ut3_user/api/test_ut_runner.pkb
@@ut3_user/api/test_ut_run.pkb

set linesize 200
set define on
Expand Down
2 changes: 1 addition & 1 deletion test/ut3_tester_helper/main_helper.pks
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@ create or replace package main_helper is
procedure reset_nulls_equal;

procedure nulls_are_equal(a_nulls_equal boolean := true);

end;
/
309 changes: 298 additions & 11 deletions test/ut3_tester_helper/run_helper.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -48,18 +48,33 @@ create or replace package body run_helper is
execute immediate q'[drop procedure ut3_tester_helper.dummy_test_procedure]';
end;

procedure db_link_setup is
procedure create_db_link is
l_service_name varchar2(100);
begin
select global_name into l_service_name from global_name;
execute immediate
'create public database link db_loopback connect to ut3$user# identified by ut3
pragma autonomous_transaction;
begin
select global_name into l_service_name from global_name;
execute immediate
'create public database link db_loopback connect to ut3_tester_helper identified by ut3
using ''(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)
(HOST='||sys_context('userenv','SERVER_HOST')||')
(PORT=1521)
)
(CONNECT_DATA=(SERVICE_NAME='||l_service_name||')))''';
(PORT=1521)
)
(CONNECT_DATA=(SERVICE_NAME='||l_service_name||')))''';
end;

procedure drop_db_link is
begin
execute immediate 'drop public database link db_loopback';
exception
when others then
null;
end;

procedure db_link_setup is
l_service_name varchar2(100);
begin
create_db_link;
execute immediate q'[
create or replace package ut3$user#.test_db_link is
--%suite
Expand All @@ -79,13 +94,285 @@ create or replace package body run_helper is
end;
end;]';

end;
end;

procedure db_link_cleanup is
begin
begin execute immediate 'drop public database link db_loopback'; exception when others then null; end;
drop_db_link;
begin execute immediate 'drop package ut3$user#.test_db_link'; exception when others then null; end;
end;


procedure create_suite_with_link is
pragma autonomous_transaction;
begin
create_db_link;
execute immediate 'create table tst(id number(18,0))';
execute immediate q'[
create or replace package test_distributed_savepoint is
--%suite
--%suitepath(alltests)

--%beforeall
procedure setup;

--%test
procedure test;
end;]';

execute immediate q'[
create or replace package body test_distributed_savepoint is

g_expected constant integer := 1;

procedure setup is
begin
insert into tst@db_loopback values(g_expected);
end;

procedure test is
l_actual integer := 0;
begin
select id into l_actual from tst@db_loopback;

ut.expect(l_actual).to_equal(g_expected);
end;

end;]';
execute immediate 'grant execute on test_distributed_savepoint to public';
end;

procedure drop_suite_with_link is
pragma autonomous_transaction;
begin
drop_db_link;
execute immediate 'drop table tst';
execute immediate 'drop package test_distributed_savepoint';
end;

procedure create_ut3$user#_tests is
pragma autonomous_transaction;
begin
execute immediate q'[create or replace package test_package_1 is
--%suite
--%suitepath(tests)
--%rollback(manual)

--%test(Test1 from test package 1)
procedure test1;

--%test(Test2 from test package 1)
procedure test2;

end test_package_1;
]';
execute immediate q'[create or replace package body test_package_1 is
procedure test1 is
begin
dbms_output.put_line('test_package_1.test1 executed');
raise_application_error(-20111,'test');
end;
procedure test2 is
begin
dbms_output.put_line('test_package_1.test2 executed');
end;
end test_package_1;
]';

execute immediate q'[create or replace package test_package_2 is
--%suite
--%suitepath(tests.test_package_1)

--%test
procedure test1;

--%test
procedure test2;

end test_package_2;
]';
execute immediate q'[create or replace package body test_package_2 is
procedure test1 is
begin
dbms_output.put_line('test_package_2.test1 executed');
end;
procedure test2 is
begin
dbms_output.put_line('test_package_2.test2 executed');
end;
end test_package_2;
]';

execute immediate q'[create or replace package test_package_3 is
--%suite
--%suitepath(tests2)

--%test
procedure test1;

--%test
procedure test2;

end test_package_3;
]';
execute immediate q'[create or replace package body test_package_3 is
procedure test1 is
begin
dbms_output.put_line('test_package_3.test1 executed');
end;
procedure test2 is
begin
dbms_output.put_line('test_package_3.test2 executed');
end;
end test_package_3;
]';
execute immediate q'[grant execute on test_package_1 to public]';
execute immediate q'[grant execute on test_package_2 to public]';
execute immediate q'[grant execute on test_package_3 to public]';
end;

procedure drop_ut3$user#_tests is
pragma autonomous_transaction;
begin
execute immediate q'[drop package test_package_1]';
execute immediate q'[drop package test_package_2]';
execute immediate q'[drop package test_package_3]';
end;

procedure create_test_suite is
pragma autonomous_transaction;
begin
ut3_tester_helper.run_helper.create_db_link;
execute immediate q'[
create or replace package stateful_package as
function get_state return varchar2;
end;
]';
execute immediate q'[
create or replace package body stateful_package as
g_state varchar2(1) := 'A';
function get_state return varchar2 is begin return g_state; end;
end;
]';
execute immediate q'[
create or replace package test_stateful as
--%suite
--%suitepath(test_state)

--%test
--%beforetest(acquire_state_via_db_link,rebuild_stateful_package)
procedure failing_stateful_test;

procedure rebuild_stateful_package;
procedure acquire_state_via_db_link;

end;
]';
execute immediate q'{
create or replace package body test_stateful as

procedure failing_stateful_test is
begin
ut3.ut.expect(stateful_package.get_state@db_loopback).to_equal('abc');
end;

procedure rebuild_stateful_package is
pragma autonomous_transaction;
begin
execute immediate q'[
create or replace package body stateful_package as
g_state varchar2(3) := 'abc';
function get_state return varchar2 is begin return g_state; end;
end;
]';
end;

procedure acquire_state_via_db_link is
begin
dbms_output.put_line('stateful_package.get_state@db_loopback='||stateful_package.get_state@db_loopback);
end;
end;
}';
execute immediate 'grant execute on test_stateful to public';
end;

procedure drop_test_suite is
pragma autonomous_transaction;
begin
drop_db_link;
execute immediate 'drop package stateful_package';
execute immediate 'drop package test_stateful';
end;

procedure run(a_reporter ut3.ut_reporter_base := null) is
begin
ut3.ut.run(a_reporter);
end;

procedure run(a_path varchar2, a_reporter ut3.ut_reporter_base := null) is
begin
ut3.ut.run(a_path, a_reporter);
end;

procedure run(a_paths ut3.ut_varchar2_list, a_reporter ut3.ut_reporter_base := null) is
begin
ut3.ut.run(a_paths, a_reporter);
end;

procedure run(a_paths ut3.ut_varchar2_list, a_test_files ut3.ut_varchar2_list, a_reporter ut3.ut_reporter_base) is
begin
ut3.ut.run(
a_paths,
a_reporter,
a_source_files => ut3.ut_varchar2_list(),
a_test_files => a_test_files
);
end;

function run(a_reporter ut3.ut_reporter_base := null) return ut3.ut_varchar2_list is
l_results ut3.ut_varchar2_list;
begin
select * bulk collect into l_results from table (ut3.ut.run(a_reporter));
return l_results;
end;

function run(a_paths ut3.ut_varchar2_list, a_test_files ut3.ut_varchar2_list, a_reporter ut3.ut_reporter_base) return ut3.ut_varchar2_list is
l_results ut3.ut_varchar2_list;
begin
select * bulk collect into l_results from table (
ut3.ut.run(
a_paths,
a_reporter, a_source_files => ut3.ut_varchar2_list(),
a_test_files => a_test_files
));
return l_results;
end;

function run(a_path varchar2, a_reporter ut3.ut_reporter_base := null)
return ut3.ut_varchar2_list is
l_results ut3.ut_varchar2_list;
begin
select * bulk collect into l_results from table (ut3.ut.run(a_path, a_reporter));
return l_results;
end;

function run(a_paths ut3.ut_varchar2_list, a_reporter ut3.ut_reporter_base := null)
return ut3.ut_varchar2_list is
l_results ut3.ut_varchar2_list;
begin
select * bulk collect into l_results from table (ut3.ut.run(a_paths, a_reporter));
return l_results;
end;

function run(a_test_files ut3.ut_varchar2_list, a_reporter ut3.ut_reporter_base)
return ut3.ut_varchar2_list is
l_results ut3.ut_varchar2_list;
begin
select * bulk collect into l_results from table (
ut3.ut.run(
a_reporter, a_source_files => ut3.ut_varchar2_list(),
a_test_files => a_test_files
));
return l_results;
end;
end;
/
26 changes: 26 additions & 0 deletions test/ut3_tester_helper/run_helper.pks
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,33 @@ create or replace package run_helper is
procedure setup_cache_objects;
procedure setup_cache;
procedure cleanup_cache;
procedure create_db_link;
procedure drop_db_link;
procedure db_link_setup;
procedure db_link_cleanup;

procedure create_suite_with_link;
procedure drop_suite_with_link;

procedure create_ut3$user#_tests;
procedure drop_ut3$user#_tests;

procedure create_test_suite;
procedure drop_test_suite;

procedure run(a_reporter ut3.ut_reporter_base := null);
procedure run(a_path varchar2, a_reporter ut3.ut_reporter_base := null);
procedure run(a_paths ut3.ut_varchar2_list, a_reporter ut3.ut_reporter_base := null);
procedure run(a_paths ut3.ut_varchar2_list, a_test_files ut3.ut_varchar2_list,
a_reporter ut3.ut_reporter_base);
function run(a_reporter ut3.ut_reporter_base := null) return ut3.ut_varchar2_list;
function run(a_paths ut3.ut_varchar2_list, a_test_files ut3.ut_varchar2_list,
a_reporter ut3.ut_reporter_base) return ut3.ut_varchar2_list;
function run(a_path varchar2, a_reporter ut3.ut_reporter_base := null)
return ut3.ut_varchar2_list;
function run(a_paths ut3.ut_varchar2_list, a_reporter ut3.ut_reporter_base := null)
return ut3.ut_varchar2_list;
function run(a_test_files ut3.ut_varchar2_list, a_reporter ut3.ut_reporter_base)
return ut3.ut_varchar2_list;
end;
/