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

Skip to content

Commit a71c415

Browse files
authored
Merge pull request #104 from jgebal/feature/separate_output_from_reporter
Feature/separate output from reporter
2 parents e41d087 + 56d0a14 commit a71c415

29 files changed

Lines changed: 229 additions & 172 deletions

examples/RunExampleComplexSuiteWithCustomDBMSOutputReporter.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ declare
1717
suite2 ut_test_suite;
1818
suite_complex ut_test_suite;
1919
testtoexecute ut_test;
20+
reporter ut_reporter;
2021
begin
2122
suite1 := ut_test_suite(a_suite_name => 'Test Suite 1' /*,a_items => ut_test_objects_list()*/);
2223

@@ -39,7 +40,8 @@ begin
3940
suite_complex := ut_test_suite(a_suite_name => 'Complex Test Suite', a_items => ut_objects_list(suite1, suite2));
4041

4142
-- provide a reporter to process results
42-
suite_complex.do_execute(ut_custom_reporter(a_tab_size => 2));
43+
reporter := ut_custom_reporter(a_tab_size => 2);
44+
suite_complex.do_execute(reporter);
4345
end;
4446
/
4547

examples/RunExampleTestSuiteWithCompositeReporter.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ PROMPT Runs test report using composite reporter
1414
declare
1515
suite ut_test_suite;
1616
testtoexecute ut_test;
17+
reporter ut_reporter;
1718
begin
1819
suite := ut_test_suite(a_suite_name => 'Test Suite Name' /*,a_items => ut_test_objects_list()*/);
1920

@@ -32,7 +33,8 @@ begin
3233
suite.add_item(testtoexecute);
3334

3435
-- provide a reporter to process results
35-
suite.do_execute(ut_composite_reporter(ut_reporters_list(ut_dbms_output_suite_reporter)));
36+
reporter := ut_composite_reporter(ut_reporters_list(ut_dbms_output_suite_reporter, ut_dbms_output_suite_reporter));
37+
suite.do_execute(reporter);
3638
end;
3739
/
3840

examples/RunExampleTestSuiteWithCustomDBMSOutputReporter.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ set echo off
1616
declare
1717
suite ut_test_suite;
1818
testtoexecute ut_test;
19+
reporter ut_reporter;
1920
begin
2021
-- Install ut_custom_reporter first from example folder
2122

@@ -36,7 +37,8 @@ begin
3637
suite.add_item(testtoexecute);
3738

3839
-- provide a reporter to process results tabbing each hierarcy level by tab_size
39-
suite.do_execute(ut_custom_reporter(a_tab_size => 2));
40+
reporter := ut_custom_reporter(a_tab_size => 2);
41+
suite.do_execute(reporter);
4042
end;
4143
/
4244

examples/RunExampleTestSuiteWithDBMSOutputReporter.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ set echo off
1313
declare
1414
suite ut_test_suite;
1515
testtoexecute ut_test;
16+
reporter ut_reporter;
1617
begin
1718
suite := ut_test_suite(a_suite_name => 'Test Suite Name' /*,a_items => ut_test_objects_list()*/);
1819

@@ -31,7 +32,8 @@ begin
3132
suite.add_item(testtoexecute);
3233

3334
-- provide a reporter to process results
34-
suite.do_execute(ut_dbms_output_suite_reporter);
35+
reporter := ut_dbms_output_suite_reporter;
36+
suite.do_execute(reporter);
3537
end;
3638
/
3739

examples/ut_custom_reporter.tpb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
create or replace type body ut_custom_reporter is
22

3-
constructor function ut_custom_reporter(a_tab_size integer default 4) return self as result is
3+
constructor function ut_custom_reporter(a_tab_size integer default 4, a_output ut_output default ut_output_dbms_output() ) return self as result is
44
begin
55
self.name := $$plsql_unit;
66
self.lvl := 0;
77
self.tab_size := a_tab_size;
8+
self.output := a_output;
89
return;
910
end;
1011

@@ -15,9 +16,9 @@ create or replace type body ut_custom_reporter is
1516
return tab_str;
1617
end tab;
1718

18-
overriding member procedure print(msg varchar2) is
19+
overriding member procedure print(a_text varchar2) is
1920
begin
20-
(self as ut_dbms_output_suite_reporter).print(tab || msg);
21+
(self as ut_dbms_output_suite_reporter).print(tab || a_text);
2122
end print;
2223

2324
overriding member procedure before_suite(self in out nocopy ut_custom_reporter, a_suite ut_object) as

examples/ut_custom_reporter.tps

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ create or replace type ut_custom_reporter under ut_dbms_output_suite_reporter
44
tab_size integer,
55

66
-- Member functions and procedures
7-
constructor function ut_custom_reporter(a_tab_size integer default 4) return self as result,
7+
constructor function ut_custom_reporter(a_tab_size integer default 4, a_output ut_output default ut_output_dbms_output() ) return self as result,
88
member function tab(self in ut_custom_reporter) return varchar2,
9-
overriding member procedure print(msg varchar2),
9+
overriding member procedure print(a_text varchar2),
1010
overriding member procedure before_suite(self in out nocopy ut_custom_reporter, a_suite ut_object),
1111
overriding member procedure before_test(self in out nocopy ut_custom_reporter, a_test ut_object),
1212
overriding member procedure on_assert_process(self in out nocopy ut_custom_reporter, a_assert ut_object),

source/core/types/ut_composite_reporter.tpb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
create or replace type body ut_composite_reporter is
22

3-
constructor function ut_composite_reporter(self in out nocopy ut_composite_reporter,a_reporters ut_reporters_list default ut_reporters_list())
3+
constructor function ut_composite_reporter(self in out nocopy ut_composite_reporter, a_reporters ut_reporters_list default ut_reporters_list())
44
return self as result is
55
begin
66
self.name := $$plsql_unit;

source/core/types/ut_composite_reporter.tps

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ create or replace type ut_composite_reporter under ut_reporter
22
(
33
reporters ut_reporters_list,
44

5-
constructor function ut_composite_reporter(self in out nocopy ut_composite_reporter,a_reporters ut_reporters_list default ut_reporters_list())
5+
constructor function ut_composite_reporter(self in out nocopy ut_composite_reporter, a_reporters ut_reporters_list default ut_reporters_list())
66
return self as result,
77
member procedure add_reporter (self in out nocopy ut_composite_reporter, a_reporter ut_reporter),
88
member procedure remove_reporter(self in out nocopy ut_composite_reporter, a_index pls_integer),
9-
10-
-- tese-run hooks
9+
10+
-- run hooks
1111
overriding member procedure before_run(self in out nocopy ut_composite_reporter, a_suites in ut_objects_list),
1212
overriding member procedure after_run (self in out nocopy ut_composite_reporter, a_suites in ut_objects_list),
1313

source/core/types/ut_output.tpb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
create or replace type body ut_output as
2+
3+
final member function generate_output_id return varchar2 is
4+
begin
5+
return output_type||'-'||userenv('sessionid')||'-'||ut_utils.to_string(cast(current_timestamp as timestamp));
6+
end;
7+
8+
end;
9+
/

source/core/types/ut_output.tps

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
create or replace type ut_output as object (
2+
output_type varchar2(128),
3+
output_id varchar2(128),
4+
final member function generate_output_id return varchar2,
5+
not instantiable member procedure open(self in out nocopy ut_output),
6+
not instantiable member procedure send(self in out nocopy ut_output, a_text clob),
7+
not instantiable member procedure close(self in out nocopy ut_output)
8+
) not final not instantiable
9+
/

0 commit comments

Comments
 (0)