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

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -19,25 +19,25 @@ declare
testtoexecute ut_test;
reporter ut_reporter;
begin
suite1 := ut_test_suite(a_suite_name => 'Test Suite 1' /*,a_items => ut_test_objects_list()*/);
suite1 := ut_test_suite(a_suite_name => 'Test Suite 1', a_object_name => null /*,a_items => ut_test_objects_list()*/);

testtoexecute := ut_test(a_object_name => 'ut_exampletest'
,a_test_procedure => 'ut_exAmpletest'
,a_test_name => 'Example test1'
,a_test_name => 'Example test1'
,a_setup_procedure => 'Setup'
,a_teardown_procedure => 'tEardown');

suite1.add_item(testtoexecute);

suite2 := ut_test_suite(a_suite_name => 'Test Suite 2' /*,a_items => ut_test_objects_list()*/);
suite2 := ut_test_suite(a_suite_name => 'Test Suite 2', a_object_name => null /*,a_items => ut_test_objects_list()*/);
testtoexecute := ut_test(a_object_name => 'UT_EXAMPLETEST2'
,a_test_procedure => 'UT_EXAMPLETEST'
,a_setup_procedure => 'SETUP'
,a_teardown_procedure => 'TEARDOWN');

suite2.add_item(testtoexecute);

suite_complex := ut_test_suite(a_suite_name => 'Complex Test Suite', a_items => ut_objects_list(suite1, suite2));
suite_complex := ut_test_suite(a_suite_name => 'Complex Test Suite', a_object_name => null, a_items => ut_objects_list(suite1, suite2));

-- provide a reporter to process results
reporter := ut_custom_reporter(a_tab_size => 2);
Expand Down
2 changes: 1 addition & 1 deletion examples/RunExampleTestSuite.sql
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ declare
test_item ut_test;
assert ut_assert_result;
begin
suite := ut_test_suite(a_suite_name => 'Test Suite Name' /*,a_items => ut_test_objects_list()*/);
suite := ut_test_suite(a_suite_name => 'Test Suite Name', a_object_name => 'ut_exampletest' /*,a_items => ut_test_objects_list()*/);

testtoexecute := ut_test(a_object_name => 'ut_exampletest'
,a_test_procedure => 'ut_exAmpletest'
Expand Down
2 changes: 1 addition & 1 deletion examples/RunExampleTestSuiteWithCompositeReporter.sql
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ declare
testtoexecute ut_test;
reporter ut_reporter;
begin
suite := ut_test_suite(a_suite_name => 'Test Suite Name' /*,a_items => ut_test_objects_list()*/);
suite := ut_test_suite(a_suite_name => 'Test Suite Name', a_object_name => 'ut_exampletest' /*,a_items => ut_test_objects_list()*/);

testtoexecute := ut_test(a_object_name => 'ut_exampletest'
,a_test_procedure => 'ut_exAmpletest'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ declare
begin
-- Install ut_custom_reporter first from example folder

suite := ut_test_suite(a_suite_name => 'Test Suite Name' /*,a_items => ut_test_objects_list()*/);
suite := ut_test_suite(a_suite_name => 'Test Suite Name', a_object_name => 'ut_exampletest' /*,a_items => ut_test_objects_list()*/);

testtoexecute := ut_test(a_object_name => 'ut_exampletest'
,a_test_procedure => 'ut_exAmpletest'
Expand Down
2 changes: 1 addition & 1 deletion examples/RunExampleTestSuiteWithDBMSOutputReporter.sql
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ declare
testtoexecute ut_test;
reporter ut_reporter;
begin
suite := ut_test_suite(a_suite_name => 'Test Suite Name' /*,a_items => ut_test_objects_list()*/);
suite := ut_test_suite(a_suite_name => 'Test Suite Name', a_object_name => 'ut_exampletest' /*,a_items => ut_test_objects_list()*/);

testtoexecute := ut_test(a_object_name => 'ut_exampletest'
,a_test_procedure => 'ut_exAmpletest'
Expand Down
4 changes: 2 additions & 2 deletions examples/test_pkg1.pck
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@ create or replace package body test_pkg1 is

procedure test1 is
begin
ut.expect(g_val1,'1 equals 1 check').to_equal(1);
ut_assert.are_equal(a_msg => '1 equals 1 check', a_expected => 1, a_actual => g_val1);
end;

procedure test2 is
begin
--ut_assert.are_equal(a_msg => 'null equals null check', a_expected => to_number(null), a_actual => g_val1);
ut_assert.are_equal(a_msg => '2 equals 2 check', a_expected => 2, a_actual => g_val2);
ut.expect(g_val2,'2 equals 2 check').to_equal(2);
end;

procedure global_setup is
Expand Down
4 changes: 2 additions & 2 deletions examples/test_pkg2.pck
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ create or replace package body test_pkg2 is

procedure test1 is
begin
ut_assert.are_equal(a_msg => '1 equals 1 check', a_expected => 1, a_actual => 1);
ut.expect(1,'1 equals 1 check').to_equal(1);
end;

procedure test2 is
begin
ut_assert.are_equal(a_msg => '2 equals 2 check', a_expected => 2, a_actual => 2);
ut.expect(2,'2 equals 2 check').to_equal(2);
end;

end test_pkg2;
Expand Down
17 changes: 8 additions & 9 deletions source/core/types/ut_test.tpb
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
create or replace type body ut_test is

constructor function ut_test(self in out nocopy ut_test,a_object_name varchar2, a_test_procedure varchar2, a_test_name in varchar2 default null, a_owner_name varchar2 default null, a_setup_procedure varchar2 default null, a_teardown_procedure varchar2 default null, a_rollback_type integer default null)
constructor function ut_test(self in out nocopy ut_test,a_object_name varchar2,a_object_path varchar2 default null, a_test_procedure varchar2, a_test_name in varchar2 default null, a_owner_name varchar2 default null, a_setup_procedure varchar2 default null, a_teardown_procedure varchar2 default null, a_rollback_type integer default null)
return self as result is
begin
self.name := a_test_name;

self.init(a_desc_name => a_test_name
,a_object_name => a_test_procedure
,a_object_type => 1
,a_object_path => a_object_path
,a_rollback_type => a_rollback_type);

self.object_type := 1;
self.object_name := lower(trim(a_test_procedure));
self.test := ut_executable(object_name => trim(a_object_name)
,procedure_name => trim(a_test_procedure)
,owner_name => trim(a_owner_name));
Expand All @@ -22,12 +27,6 @@ create or replace type body ut_test is
,owner_name => trim(a_owner_name));
end if;

if a_rollback_type is not null then
ut_utils.validate_rollback_type(a_rollback_type);
self.rollback_type := a_rollback_type;
else
self.rollback_type := ut_utils.gc_rollback_auto;
end if;
return;
end ut_test;

Expand Down
2 changes: 1 addition & 1 deletion source/core/types/ut_test.tps
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ create or replace type ut_test force under ut_test_object
test ut_executable,
teardown ut_executable,

constructor function ut_test(self in out nocopy ut_test,a_object_name varchar2, a_test_procedure varchar2, a_test_name in varchar2 default null, a_owner_name varchar2 default null, a_setup_procedure varchar2 default null, a_teardown_procedure varchar2 default null, a_rollback_type integer default null)
constructor function ut_test(self in out nocopy ut_test,a_object_name varchar2,a_object_path varchar2 default null, a_test_procedure varchar2, a_test_name in varchar2 default null, a_owner_name varchar2 default null, a_setup_procedure varchar2 default null, a_teardown_procedure varchar2 default null, a_rollback_type integer default null)
return self as result,

member function is_valid return boolean,
Expand Down
16 changes: 16 additions & 0 deletions source/core/types/ut_test_object.tpb
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
create or replace type body ut_test_object is

member procedure init(self in out nocopy ut_test_object, a_desc_name varchar2, a_object_name varchar2, a_object_type integer, a_object_path varchar2 default null, a_rollback_type integer default null) is
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice. Placing common code in common place.

begin
self.name := a_desc_name;
self.object_type := a_object_type;
self.object_name := lower(trim(a_object_name));
self.object_path := nvl(lower(trim(a_object_path)), self.object_name);

if a_rollback_type is not null then
ut_utils.validate_rollback_type(a_rollback_type);
self.rollback_type := a_rollback_type;
else
self.rollback_type := ut_utils.gc_rollback_auto;
end if;
return;
end;

member procedure set_ignore_flag(self in out nocopy ut_test_object, a_ignore_flag boolean) is
begin
Expand Down
8 changes: 6 additions & 2 deletions source/core/types/ut_test_object.tps
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
create or replace type ut_test_object force under ut_composite_object
(
start_time timestamp with time zone,
end_time timestamp with time zone,

object_name varchar2(4000),
object_path varchar2(4000),
rollback_type integer(1), -- ut_utils:gc_rollback_% constants
ignore_flag integer(1),
start_time timestamp with time zone,
end_time timestamp with time zone,

member procedure init(self in out nocopy ut_test_object, a_desc_name varchar2, a_object_name varchar2, a_object_type integer, a_object_path varchar2 default null, a_rollback_type integer default null),

not instantiable member procedure do_execute(self in out nocopy ut_test_object, a_reporter in out nocopy ut_reporter),
final member procedure do_execute(self in out nocopy ut_test_object),
Expand Down
41 changes: 19 additions & 22 deletions source/core/types/ut_test_suite.tpb
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
create or replace type body ut_test_suite is

constructor function ut_test_suite(self in out nocopy ut_test_suite,a_suite_name varchar2, a_object_name varchar2 default null, a_items ut_objects_list default ut_objects_list(), a_rollback_type number default null)
constructor function ut_test_suite (self in out nocopy ut_test_suite, a_suite_name varchar2, a_object_name varchar2, a_object_path varchar2 default null, a_items ut_objects_list default ut_objects_list(), a_rollback_type number default null)
return self as result is
begin
self.name := a_suite_name;
self.object_type := 2;
self.items := a_items;
self.object_name := lower(trim(a_object_name));

if a_rollback_type is not null then
ut_utils.validate_rollback_type(a_rollback_type);
self.rollback_type := a_rollback_type;
else
self.rollback_type := ut_utils.gc_rollback_auto;
end if;

self.init(a_desc_name => a_suite_name
,a_object_name => a_object_name
,a_object_type => 2
,a_object_path => a_object_path
,a_rollback_type => a_rollback_type);

self.items := a_items;

return;
end ut_test_suite;

Expand Down Expand Up @@ -43,37 +40,37 @@ create or replace type body ut_test_suite is

overriding member procedure do_execute(self in out nocopy ut_test_suite, a_reporter in out nocopy ut_reporter) is
l_test_object ut_test_object;
l_savepoint varchar2(30);
l_savepoint varchar2(30);
begin
a_reporter.before_suite(self);

ut_utils.debug_log('ut_test_suite.execute');

self.start_time := current_timestamp;

if self.ignore_flag = 1 then
self.result := ut_utils.tr_ignore;
elsif self.is_valid() then

if self.rollback_type = ut_utils.gc_rollback_auto then
l_savepoint := ut_utils.gen_savepoint_name;
execute immediate 'savepoint ' || l_savepoint;
end if;

if self.setup is not null then
a_reporter.before_suite_setup(self);
a_reporter.before_suite_setup(self);
self.setup.do_execute;
a_reporter.after_suite_setup(self);
end if;

for i in self.items.first .. self.items.last loop
a_reporter.before_suite_item(a_suite => self,a_item_index => i);
a_reporter.before_suite_item(a_suite => self, a_item_index => i);

l_test_object := treat(self.items(i) as ut_test_object);
l_test_object.do_execute(a_reporter => a_reporter);
self.items(i) := l_test_object;
a_reporter.after_suite_item(a_suite => self,a_item_index => i);

a_reporter.after_suite_item(a_suite => self, a_item_index => i);
end loop;

if self.teardown is not null then
Expand All @@ -83,7 +80,7 @@ create or replace type body ut_test_suite is
end if;

self.calc_execution_result;

if self.rollback_type = ut_utils.gc_rollback_auto then
execute immediate 'rollback to ' || l_savepoint;
end if;
Expand Down
2 changes: 1 addition & 1 deletion source/core/types/ut_test_suite.tps
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ create or replace type ut_test_suite force under ut_test_object
setup ut_executable,
teardown ut_executable,

constructor function ut_test_suite(self in out nocopy ut_test_suite,a_suite_name varchar2, a_object_name varchar2 default null, a_items ut_objects_list default ut_objects_list(), a_rollback_type number default null)
constructor function ut_test_suite(self in out nocopy ut_test_suite,a_suite_name varchar2, a_object_name varchar2, a_object_path varchar2 default null, a_items ut_objects_list default ut_objects_list(), a_rollback_type number default null)
return self as result,

member procedure set_suite_setup (self in out nocopy ut_test_suite, a_object_name in varchar2, a_proc_name in varchar2, a_owner_name varchar2 default null),
Expand Down
Loading