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
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
reworked assert_result to be a subclass of ut_object (new base class)
examples need to be checked
  • Loading branch information
Pazus committed Jul 26, 2016
commit 1db073d7fe1b3b4247f92aaeae6e75ac3ffbd306
10 changes: 7 additions & 3 deletions source/install.sql
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
@@types/ut_execution_result.tps
@@types/ut_object.tps
@@types/ut_objects_list.tps
@@types/ut_composite_object.tps
@@types/ut_test_call_params.tps
@@types/ut_assert_result.tps
@@types/ut_assert_list.tps
--@@types/ut_assert_list.tps
@@ut_metadata.pks
@@ut_assert.pks
@@types/ut_execution_result.tps
@@types/ut_suite_reporter.tps
@@types/ut_reporters_list.tps
@@types/ut_composite_reporter.tps
@@types/ut_test_object.tps
@@types/ut_test_objects_list.tps

@@types/ut_test.tps
@@types/ut_test_suite.tps
@@types/ut_reporter_decorator.tps
Expand All @@ -17,6 +20,7 @@
@@ut_utils.pkb
@@types/ut_assert_result.tpb
@@types/ut_execution_result.tpb
@@types/ut_composite_object.tpb
@@types/ut_test.tpb
@@types/ut_test_suite.tpb
@@types/ut_test_call_params.tpb
Expand Down
14 changes: 12 additions & 2 deletions source/types/ut_assert_result.tpb
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
create or replace type body ut_assert_result is


constructor function ut_assert_result(a_result varchar2, a_message varchar2, a_name varchar2 default null)
return self as result is
begin
self.name := a_name;
self.object_type := 0;
self.result := a_result;
self.message := a_message;
return;
end ut_assert_result;

member function result_to_char(self in ut_assert_result) return varchar2 is
begin
return ut_utils.test_result_to_char(result);
end;

end;
/
5 changes: 4 additions & 1 deletion source/types/ut_assert_result.tps
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
create or replace type ut_assert_result as object
create or replace type ut_assert_result force under ut_object
(
result integer(1),
message varchar2(4000 char),

constructor function ut_assert_result(a_result varchar2, a_message varchar2, a_name varchar2 default null)
return self as result,

member function result_to_char(self in ut_assert_result) return varchar2
)
not final
Expand Down
25 changes: 14 additions & 11 deletions source/types/ut_composite_reporter.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -22,31 +22,34 @@ create or replace type body ut_composite_reporter is

end;

overriding member procedure begin_suite(self in out nocopy ut_composite_reporter, a_suite_name in varchar2) is
overriding member procedure begin_suite(self in out nocopy ut_composite_reporter, a_suite ut_object) is
begin
for i in 1 .. self.reporters.count loop
self.reporters(i).begin_suite(a_suite_name => a_suite_name);
self.reporters(i).begin_suite(a_suite => a_suite);
end loop;
end;
overriding member procedure begin_test(self in out nocopy ut_composite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params) is
overriding member procedure begin_test(self in out nocopy ut_composite_reporter, a_test ut_object) is
begin
for i in 1 .. self.reporters.count loop
self.reporters(i).begin_test(a_test_name => a_test_name, a_test_call_params => a_test_call_params);
self.reporters(i).begin_test(a_test => a_test);
end loop;
end;
overriding member procedure end_test(self in out nocopy ut_composite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params, a_execution_result in ut_execution_result, a_assert_list in ut_assert_list) is
overriding member procedure on_assert(self in out nocopy ut_composite_reporter, an_assert ut_object) is
begin
for i in 1 .. self.reporters.count loop
self.reporters(i).end_test(a_test_name => a_test_name
,a_test_call_params => a_test_call_params
,a_execution_result => a_execution_result
,a_assert_list => a_assert_list);
self.reporters(i).on_assert(an_assert => an_assert);
end loop;
end;
overriding member procedure end_suite(self in out nocopy ut_composite_reporter, a_suite_name in varchar2, a_suite_execution_result in ut_execution_result) is
overriding member procedure end_test(self in out nocopy ut_composite_reporter, a_test ut_object) is
begin
for i in 1 .. self.reporters.count loop
self.reporters(i).end_suite(a_suite_name => a_suite_name, a_suite_execution_result => a_suite_execution_result);
self.reporters(i).end_test(a_test => a_test);
end loop;
end;
overriding member procedure end_suite(self in out nocopy ut_composite_reporter, a_suite ut_object) is
begin
for i in 1 .. self.reporters.count loop
self.reporters(i).end_suite(a_suite => a_suite);
end loop;
end;

Expand Down
9 changes: 5 additions & 4 deletions source/types/ut_composite_reporter.tps
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ create or replace type ut_composite_reporter under ut_suite_reporter
member procedure add_reporter(self in out nocopy ut_composite_reporter, a_reporter ut_suite_reporter),
member procedure remove_reporter(self in out nocopy ut_composite_reporter, an_index pls_integer),

overriding member procedure begin_suite(self in out nocopy ut_composite_reporter, a_suite_name in varchar2),
overriding member procedure begin_test(self in out nocopy ut_composite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params),
overriding member procedure end_test(self in out nocopy ut_composite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params, a_execution_result in ut_execution_result, a_assert_list in ut_assert_list),
overriding member procedure end_suite(self in out nocopy ut_composite_reporter, a_suite_name in varchar2, a_suite_execution_result in ut_execution_result)
overriding member procedure begin_suite(self in out nocopy ut_composite_reporter, a_suite in ut_object),
overriding member procedure begin_test(self in out nocopy ut_composite_reporter, a_test ut_object),
overriding member procedure on_assert(self in out nocopy ut_composite_reporter, an_assert ut_object),
overriding member procedure end_test(self in out nocopy ut_composite_reporter, a_test ut_object),
overriding member procedure end_suite(self in out nocopy ut_composite_reporter, a_suite ut_object)

)
not final
Expand Down
36 changes: 23 additions & 13 deletions source/types/ut_dbms_output_suite_reporter.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ create or replace type body ut_dbms_output_suite_reporter is

static function c_dashed_line return varchar2 is
begin
return lpad('-',80,'-');
return lpad('-', 80, '-');
end;

constructor function ut_dbms_output_suite_reporter return self as result is
Expand All @@ -16,36 +16,46 @@ create or replace type body ut_dbms_output_suite_reporter is
dbms_output.put_line(msg);
end print;

overriding member procedure begin_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite_name in varchar2) as
overriding member procedure begin_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object) as
begin
print(ut_dbms_output_suite_reporter.c_dashed_line);
print('suite "' || a_suite_name || '" started.');
print('suite "' || a_suite.name || '" started.');
end;

overriding member procedure end_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite_name in varchar2, a_suite_execution_result in ut_execution_result) as
overriding member procedure end_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object) as
begin
--todo: report total suite result here with pretty message
print(ut_dbms_output_suite_reporter.c_dashed_line);
print('suite "' || a_suite_name || '" ended.');
print('suite "' || a_suite.name || '" ended.');
print(ut_dbms_output_suite_reporter.c_dashed_line);
end;

overriding member procedure begin_test(self in out nocopy ut_dbms_output_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params) as
overriding member procedure on_assert(self in out nocopy ut_dbms_output_suite_reporter, an_assert ut_object) as
begin
--todo: report total suite result here with pretty message
null;
end;

overriding member procedure begin_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object) as
test ut_test := treat(a_test as ut_test);
begin
print(ut_dbms_output_suite_reporter.c_dashed_line);
if a_test_name is not null then
print('test ' || a_test_name || ' (' ||a_test_call_params.form_name || ')');
if a_test.name is not null then
print('test ' || test.name || ' (' || test.test.form_name || ')');
else
print('test ' || a_test_call_params.form_name);
print('test ' || test.test.form_name);
end if;
end;

overriding member procedure end_test(self in out nocopy ut_dbms_output_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params, a_execution_result in ut_execution_result, a_assert_list in ut_assert_list) as
overriding member procedure end_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object) as
test ut_test := treat(a_test as ut_test);
assert ut_assert_result;
begin
print('result: ' || a_execution_result.result_to_char);
print('result: ' || test.execution_result.result_to_char);
print('asserts');
for i in a_assert_list.first .. a_assert_list.last loop
print('assert ' || i || ' ' || a_assert_list(i).result_to_char || ' message: ' || a_assert_list(i).message);
for i in test.items.first .. test.items.last loop
assert := treat(test.items(i) as ut_assert_result);
print('assert ' || i || ' ' || assert.result_to_char || ' message: ' || assert.message);
end loop;
end;

Expand Down
20 changes: 10 additions & 10 deletions source/types/ut_dbms_output_suite_reporter.tps
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
create or replace type ut_dbms_output_suite_reporter force under ut_suite_reporter
(

constructor function ut_dbms_output_suite_reporter return self as result,

constructor function ut_dbms_output_suite_reporter
return self as result,
static function c_dashed_line return varchar2,
member procedure print(msg varchar2),

static function c_dashed_line return varchar2,
member procedure print(msg varchar2),

overriding member procedure begin_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite_name in varchar2),
overriding member procedure begin_test(self in out nocopy ut_dbms_output_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params),
overriding member procedure end_test(self in out nocopy ut_dbms_output_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params, a_execution_result in ut_execution_result, a_assert_list in ut_assert_list),
overriding member procedure end_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite_name in varchar2, a_suite_execution_result in ut_execution_result)
overriding member procedure begin_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object),
overriding member procedure begin_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object),
overriding member procedure on_assert(self in out nocopy ut_dbms_output_suite_reporter, an_assert ut_object),
overriding member procedure end_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object),
overriding member procedure end_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object)

) not final
)
not final
/
9 changes: 5 additions & 4 deletions source/types/ut_suite_reporter.tps
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ create or replace type ut_suite_reporter force as object
(
name varchar2(250 char),

not instantiable member procedure begin_suite(self in out nocopy ut_suite_reporter, a_suite_name in varchar2),
not instantiable member procedure begin_test(self in out nocopy ut_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params),
not instantiable member procedure end_test(self in out nocopy ut_suite_reporter, a_test_name in varchar2, a_test_call_params in ut_test_call_params, a_execution_result in ut_execution_result, a_assert_list in ut_assert_list),
not instantiable member procedure end_suite(self in out nocopy ut_suite_reporter, a_suite_name in varchar2, a_suite_execution_result in ut_execution_result)
not instantiable member procedure begin_suite(self in out nocopy ut_suite_reporter, a_suite in ut_object),
not instantiable member procedure begin_test(self in out nocopy ut_suite_reporter, a_test in ut_object),
not instantiable member procedure on_assert(self in out nocopy ut_suite_reporter, an_assert in ut_object),
not instantiable member procedure end_test(self in out nocopy ut_suite_reporter, a_test in ut_object),
not instantiable member procedure end_suite(self in out nocopy ut_suite_reporter, a_suite in ut_object)

)
not instantiable not final
Expand Down
14 changes: 7 additions & 7 deletions source/types/ut_test.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ create or replace type body ut_test is
return self as result is
begin
self.name := a_test_name;
self.object_type := 1;
self.test := ut_test_call_params(object_name => trim(a_object_name)
,procedure_name => trim(a_test_procedure)
,owner_name => trim(a_owner_name));
Expand Down Expand Up @@ -40,7 +41,7 @@ create or replace type body ut_test is
reporter ut_suite_reporter := a_reporter;
begin
if reporter is not null then
reporter.begin_test(a_test_name => self.name, a_test_call_params => self.test);
reporter.begin_test(self);
end if;

begin
Expand Down Expand Up @@ -70,7 +71,7 @@ create or replace type body ut_test is

self.execution_result.end_time := current_timestamp;

ut_assert.process_asserts(self.assert_results, self.execution_result.result);
ut_assert.process_asserts(self.items);

exception
when others then
Expand All @@ -86,14 +87,13 @@ create or replace type body ut_test is
ut_assert.report_error(sqlerrm(sqlcode) || ' ' || dbms_utility.format_error_stack);
ut_assert.report_error(sqlerrm(sqlcode) || ' ' || dbms_utility.format_error_backtrace);
self.execution_result.end_time := current_timestamp;
ut_assert.process_asserts(self.assert_results, self.execution_result.result);
ut_assert.process_asserts(self.items);
end;

self.calc_execution_result;

if reporter is not null then
reporter.end_test(a_test_name => self.name
,a_test_call_params => self.test
,a_execution_result => self.execution_result
,a_assert_list => self.assert_results);
reporter.end_test(self);
end if;
return reporter;
end;
Expand Down
2 changes: 1 addition & 1 deletion source/types/ut_test.tps
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ create or replace type ut_test force under ut_test_object
setup ut_test_call_params,
test ut_test_call_params,
teardown ut_test_call_params,
assert_results ut_assert_list,
--assert_results ut_assert_list,

constructor function 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)
return self as result,
Expand Down
5 changes: 1 addition & 4 deletions source/types/ut_test_object.tps
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
create or replace type ut_test_object force as object
create or replace type ut_test_object force under ut_composite_object
(
name varchar2(250 char),
execution_result ut_execution_result,

not instantiable member procedure execute(self in out nocopy ut_test_object, a_reporter ut_suite_reporter),
not instantiable member function execute(self in out nocopy ut_test_object, a_reporter ut_suite_reporter) return ut_suite_reporter,
not instantiable member procedure execute(self in out nocopy ut_test_object)
Expand Down
2 changes: 0 additions & 2 deletions source/types/ut_test_objects_list.tps

This file was deleted.

12 changes: 8 additions & 4 deletions source/types/ut_test_suite.tpb
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
create or replace type body ut_test_suite is

constructor function ut_test_suite(a_suite_name varchar2, a_items ut_test_objects_list default ut_test_objects_list())
constructor function ut_test_suite(a_suite_name varchar2, a_items ut_objects_list default ut_objects_list())
return self as result is
begin
self.name := a_suite_name;
self.object_type := 2;
self.items := a_items;
return;
end ut_test_suite;
Expand All @@ -22,9 +23,10 @@ create or replace type body ut_test_suite is

overriding member function execute(self in out nocopy ut_test_suite, a_reporter ut_suite_reporter) return ut_suite_reporter is
reporter ut_suite_reporter := a_reporter;
test_object ut_test_object;
begin
if reporter is not null then
reporter.begin_suite(self.name);
reporter.begin_suite(self);
end if;

$if $$ut_trace $then
Expand All @@ -34,7 +36,9 @@ create or replace type body ut_test_suite is
self.execution_result := ut_execution_result;

for i in self.items.first .. self.items.last loop
reporter := self.items(i).execute(a_reporter => reporter);
test_object := treat(self.items(i) as ut_test_object);
reporter := test_object.execute(a_reporter => reporter);
self.items(i) := test_object;
end loop;

self.execution_result.end_time := current_timestamp;
Expand All @@ -51,7 +55,7 @@ create or replace type body ut_test_suite is
end loop;

if reporter is not null then
reporter.end_suite(self.name, self.execution_result);
reporter.end_suite(self);
end if;
return reporter;
end;
Expand Down
3 changes: 1 addition & 2 deletions source/types/ut_test_suite.tps
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
create or replace type ut_test_suite force under ut_test_object
(
items ut_test_objects_list,

constructor function ut_test_suite(a_suite_name varchar2, a_items ut_test_objects_list default ut_test_objects_list()) return self as result,
constructor function ut_test_suite(a_suite_name varchar2, a_items ut_objects_list default ut_objects_list()) return self as result,
member procedure add_item(self in out nocopy ut_test_suite, a_item ut_test_object),

overriding member procedure execute(self in out nocopy ut_test_suite, a_reporter ut_suite_reporter),
Expand Down
14 changes: 9 additions & 5 deletions source/uninstall.sql
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ drop type ut_reporter_decorator;

drop type ut_test_suite;

drop type ut_test_objects_list;

drop type ut_test;

drop type ut_test_object;
Expand All @@ -24,10 +22,16 @@ drop type ut_reporters_list;

drop type ut_suite_reporter force;

drop type ut_execution_result;

drop type ut_assert_list;
--drop type ut_assert_list;

drop type ut_assert_result;

drop type ut_test_call_params;

drop type ut_composite_object;

drop type ut_objects_list;

drop type ut_object;

drop type ut_execution_result;
Loading