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

Skip to content

Commit e77d790

Browse files
committed
additional tests
1 parent 0470ea9 commit e77d790

1 file changed

Lines changed: 218 additions & 1 deletion

File tree

tests2/test_ut_test_suite.pck

Lines changed: 218 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,33 @@ create or replace package test_ut_test_suite is
6666
procedure prep_failing_no_body;
6767
procedure clean_failing_no_body;
6868

69+
--%test(Test description with comma)
70+
--%beforetest(setup_desc_with_comma)
71+
--%aftertest(clean_desc_with_comma)
72+
procedure test_desc_with_comma;
73+
procedure setup_desc_with_comma;
74+
procedure clean_desc_with_comma;
75+
76+
--%test(Invalidate cache on package drop)
77+
--%beforetest(setup_inv_cache_on_drop)
78+
--%aftertest(clean_inv_cache_on_drop)
79+
procedure test_inv_cache_on_drop;
80+
procedure setup_inv_cache_on_drop;
81+
procedure clean_inv_cache_on_drop;
82+
83+
--%test(Includes Invalid Package Bodies In The Run)
84+
--%beforetest(setup_inv_pck_bodies)
85+
--%aftertest(clean_inv_pck_bodies)
86+
procedure test_inv_pck_bodies;
87+
procedure setup_inv_pck_bodies;
88+
procedure clean_inv_pck_bodies;
89+
90+
--%test(Package With Dollar Sign)
91+
--%beforetest(setup_pck_with_dollar)
92+
--%aftertest(clean_pck_with_dollar)
93+
procedure test_pck_with_dollar;
94+
procedure setup_pck_with_dollar;
95+
procedure clean_pck_with_dollar;
6996

7097
--%beforeall
7198
procedure prepare;
@@ -77,8 +104,20 @@ end test_ut_test_suite;
77104
/
78105
create or replace package body test_ut_test_suite is
79106

107+
80108
ex_obj_doesnt_exist exception;
81109
pragma exception_init(ex_obj_doesnt_exist, -04043);
110+
111+
procedure restore_asserts(a_assert_results ut_expectation_results) is
112+
begin
113+
ut_expectation_processor.clear_expectations;
114+
115+
if a_assert_results is not null then
116+
for i in 1 .. a_assert_results.count loop
117+
ut_expectation_processor.add_expectation_result(a_assert_results(i));
118+
end loop;
119+
end if;
120+
end;
82121

83122
/*
84123
procedure suite_disabled is
@@ -400,7 +439,7 @@ end;';
400439
end loop;
401440

402441
execute immediate 'begin ut.expect(suite_disabled.gv_glob_val,''Not all tests were executed'').to_equal(0); end;';
403-
ut.expect(l_output,'Not all tests were marked as failed').tO_be_like('%0 tests, 0 failed, 0 errored, 0 skipped%');
442+
ut.expect(l_output,'Not all tests were marked as failed').to_be_like('%0 tests, 0 failed, 0 errored, 0 disabled%');
404443
end;
405444

406445
procedure prep_suite_disabled is
@@ -619,6 +658,184 @@ end;]';
619658
null;
620659
end;
621660
end;
661+
662+
procedure test_desc_with_comma is
663+
l_objects_to_run ut_suite_items;
664+
l_suite ut_suite;
665+
l_test ut_test;
666+
begin
667+
l_objects_to_run := ut_suite_manager.configure_execution_by_path(ut_varchar2_list('tst_package_to_be_dropped'));
668+
669+
--Assert
670+
ut.expect(l_objects_to_run.count).to_equal(1);
671+
672+
l_suite := treat(l_objects_to_run(1) as ut_suite);
673+
674+
ut.expect(l_suite.name).to_equal('tst_package_to_be_dropped');
675+
ut.expect(l_suite.description).to_equal('A suite description, though with comma, is assigned by suite_manager');
676+
ut.expect(l_suite.items.count).to_equal(2);
677+
678+
l_test := treat(l_suite.items(1) as ut_test);
679+
680+
ut.expect(l_test.name).to_equal('test1');
681+
ut.expect(l_test.description).to_equal('A test description, though with comma, is assigned by suite_manager');
682+
683+
l_test := treat(l_suite.items(2) as ut_test);
684+
685+
ut.expect(l_test.name).to_equal('test2');
686+
ut.expect(l_test.description).to_equal('A test description, though with comma, is assigned by suite_manager');
687+
688+
end;
689+
procedure setup_desc_with_comma is
690+
pragma autonomous_transaction;
691+
begin
692+
execute immediate 'create or replace package tst_package_to_be_dropped as
693+
--%suite(A suite description, though with comma, is assigned by suite_manager)
694+
695+
--%test(A test description, though with comma, is assigned by suite_manager)
696+
procedure test1;
697+
698+
--%test
699+
--%displayname(A test description, though with comma, is assigned by suite_manager)
700+
procedure test2;
701+
end;';
702+
703+
execute immediate 'create or replace package body tst_package_to_be_dropped as
704+
procedure test1 is begin ut.expect(1).to_equal(1); end;
705+
procedure test2 is begin ut.expect(1).to_equal(1); end;
706+
end;';
707+
end;
708+
procedure clean_desc_with_comma is
709+
pragma autonomous_transaction;
710+
begin
711+
begin
712+
execute immediate 'drop package tst_package_to_be_dropped';
713+
exception
714+
when ex_obj_doesnt_exist then
715+
null;
716+
end;
717+
end;
718+
719+
procedure test_inv_cache_on_drop is
720+
l_test_report ut_varchar2_list;
721+
begin
722+
723+
select * bulk collect into l_test_report from table(ut.run(USER||'.tst_package_to_be_dropped'));
724+
725+
-- drop package
726+
clean_inv_cache_on_drop;
727+
728+
begin
729+
select * bulk collect into l_test_report from table(ut.run(user || '.tst_package_to_be_dropped'));
730+
ut.fail('Cache not invalidated on package drop');
731+
exception
732+
when others then
733+
ut.expect(sqlerrm).to_be_like('%tst_package_to_be_dropped%does not exist%');
734+
end;
735+
736+
end;
737+
procedure setup_inv_cache_on_drop is
738+
pragma autonomous_transaction;
739+
begin
740+
execute immediate 'create or replace package tst_package_to_be_dropped as
741+
--%suite
742+
743+
--%test
744+
procedure test1;
745+
end;';
746+
747+
execute immediate 'create or replace package body tst_package_to_be_dropped as
748+
procedure test1 is begin ut.expect(1).to_equal(1); end;
749+
procedure test2 is begin ut.expect(1).to_equal(1); end;
750+
end;';
751+
end;
752+
753+
procedure clean_inv_cache_on_drop is
754+
pragma autonomous_transaction;
755+
begin
756+
execute immediate 'drop package tst_package_to_be_dropped';
757+
exception
758+
when ex_obj_doesnt_exist then
759+
null;
760+
end;
761+
762+
procedure test_inv_pck_bodies is
763+
l_result integer;
764+
begin
765+
execute immediate 'select * from table(ut.run(''test_dependencies'', utplsql_test_reporter()))' into l_result;
766+
767+
ut.expect(l_result).to_equal(ut_utils.tr_success);
768+
end;
769+
procedure setup_inv_pck_bodies is
770+
pragma autonomous_transaction;
771+
begin
772+
execute immediate 'create table test_dependency_table (id integer)';
773+
execute immediate 'create or replace package test_dependencies as
774+
-- %suite
775+
776+
-- %test
777+
procedure dependant;
778+
end;';
779+
execute immediate 'create or replace package body test_dependencies as
780+
gc_dependant_variable test_dependency_table.id%type;
781+
procedure dependant is begin null; end;
782+
end;';
783+
784+
execute immediate 'alter table test_dependency_table modify id number';
785+
786+
execute immediate 'create or replace type utplsql_test_reporter under ut_reporter_base(
787+
constructor function utplsql_test_reporter(self in out nocopy utplsql_test_reporter) return self as result,
788+
overriding member procedure after_calling_run(self in out nocopy utplsql_test_reporter, a_run in ut_run))';
789+
execute immediate 'create or replace type body utplsql_test_reporter is
790+
constructor function utplsql_test_reporter(self in out nocopy utplsql_test_reporter) return self as result is
791+
begin
792+
self.init($$plsql_unit);
793+
return;
794+
end;
795+
796+
overriding member procedure after_calling_run(self in out nocopy utplsql_test_reporter, a_run in ut_run) is
797+
begin
798+
self.print_text(a_run.result);
799+
end;
800+
end;';
801+
802+
end;
803+
procedure clean_inv_pck_bodies is
804+
pragma autonomous_transaction;
805+
begin
806+
execute immediate 'drop type utplsql_test_reporter';
807+
execute immediate 'drop table test_dependency_table';
808+
execute immediate 'drop package test_dependencies';
809+
end;
810+
811+
procedure test_pck_with_dollar is
812+
l_objects_to_run ut_suite_items;
813+
begin
814+
--act
815+
l_objects_to_run := ut_suite_manager.configure_execution_by_path(ut_varchar2_list('tst_package_with$dollar'));
816+
817+
ut.expect(treat(l_objects_to_run(1) as ut_suite).name).to_equal('tst_package_with$dollar');
818+
end;
819+
procedure setup_pck_with_dollar is
820+
pragma autonomous_transaction;
821+
begin
822+
execute immediate 'create or replace package tst_package_with$dollar as
823+
--%suite
824+
825+
--%test
826+
procedure test1;
827+
end;';
828+
829+
execute immediate 'create or replace package body tst_package_with$dollar as
830+
procedure test1 is begin ut.expect(1).to_equal(1); end;
831+
procedure test2 is begin ut.expect(1).to_equal(1); end;
832+
end;';
833+
end;
834+
procedure clean_pck_with_dollar is
835+
pragma autonomous_transaction;
836+
begin
837+
execute immediate 'drop package tst_package_with$dollar';
838+
end;
622839

623840
end test_ut_test_suite;
624841
/

0 commit comments

Comments
 (0)