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
refactored
  • Loading branch information
Pazus committed Mar 14, 2017
commit 9285dee3904535437a8691585b0b8a3d7be07cbe
5 changes: 1 addition & 4 deletions source/core/types/ut_assert_result.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,9 @@ create or replace type body ut_assert_result is
if a_clob is not null and l_text is not null then
l_text := chr(10) || l_text;
end if;
if l_text is not null then
dbms_lob.writeappend(a_clob, length(l_text), l_text);
end if;
ut_utils.append_to_clob(a_clob, l_text);
end;
begin
dbms_lob.createtemporary(l_result, true);
if self.result != ut_utils.tr_success or self.error_message is not null then
if self.message is not null then
add_text_line(l_result, ' expectation description: ', self.message);
Expand Down
4 changes: 2 additions & 2 deletions source/core/types/ut_executable.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ create or replace type body ut_executable is

save_dbms_output;

l_completed_without_errors := (self.error_stack||self.error_backtrace is null);
l_completed_without_errors := (self.error_stack||self.error_backtrace) is null;

a_listener.fire_after_event(self.associated_event_name, a_item);
--listener - after call to executable
Expand All @@ -144,7 +144,7 @@ create or replace type body ut_executable is

member function get_error_stack_trace return varchar2 is
begin
return rtrim(self.error_stack||self.error_backtrace, chr(10));
return rtrim(self.error_stack||'Backtrace:'||chr(10)||self.error_backtrace, chr(10));
end;
end;
/
10 changes: 10 additions & 0 deletions source/core/types/ut_logical_suite.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,16 @@ create or replace type body ut_logical_suite as
self.end_time := self.start_time;
a_listener.fire_after_event(ut_utils.gc_suite, self);
end;

overriding member function get_error_stack_traces return ut_varchar2_list is
begin
return ut_varchar2_list();
end;

overriding member function get_serveroutputs return clob is
begin
return null;
end;

end;
/
4 changes: 3 additions & 1 deletion source/core/types/ut_logical_suite.tps
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ create or replace type ut_logical_suite under ut_suite_item (
member procedure add_item(self in out nocopy ut_logical_suite, a_item ut_suite_item),
overriding member function do_execute(self in out nocopy ut_logical_suite, a_listener in out nocopy ut_event_listener_base) return boolean,
overriding member procedure calc_execution_result(self in out nocopy ut_logical_suite),
overriding member procedure mark_as_errored(self in out nocopy ut_logical_suite, a_listener in out nocopy ut_event_listener_base, a_error_stack_trace varchar2)
overriding member procedure mark_as_errored(self in out nocopy ut_logical_suite, a_listener in out nocopy ut_event_listener_base, a_error_stack_trace varchar2),
overriding member function get_error_stack_traces return ut_varchar2_list,
overriding member function get_serveroutputs return clob
) not final
/
12 changes: 12 additions & 0 deletions source/core/types/ut_run.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -118,5 +118,17 @@ create or replace type body ut_run as
return l_schemes;

end;

overriding member function get_error_stack_traces return ut_varchar2_list is
begin
return ut_varchar2_list();
end;

overriding member function get_serveroutputs return clob is
begin
return null;
end;


end;
/
4 changes: 3 additions & 1 deletion source/core/types/ut_run.tps
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ create or replace type ut_run under ut_suite_item (
overriding member function do_execute(self in out nocopy ut_run, a_listener in out nocopy ut_event_listener_base) return boolean,
overriding member procedure calc_execution_result(self in out nocopy ut_run),
overriding member procedure mark_as_errored(self in out nocopy ut_run, a_listener in out nocopy ut_event_listener_base, a_error_stack_trace varchar2),
member function get_run_schemes return ut_varchar2_list
member function get_run_schemes return ut_varchar2_list,
overriding member function get_error_stack_traces return ut_varchar2_list,
overriding member function get_serveroutputs return clob
)
/
8 changes: 4 additions & 4 deletions source/core/types/ut_suite.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -100,16 +100,16 @@ create or replace type body ut_suite as
overriding member function get_error_stack_traces(self ut_suite) return ut_varchar2_list is
l_stack_traces ut_varchar2_list := ut_varchar2_list();
begin
self.add_stack_trace(l_stack_traces, self.before_all.get_error_stack_trace());
self.add_stack_trace(l_stack_traces, self.after_all.get_error_stack_trace());
ut_utils.append_to_varchar2_list(l_stack_traces, self.before_all.get_error_stack_trace());
ut_utils.append_to_varchar2_list(l_stack_traces, self.after_all.get_error_stack_trace());
return l_stack_traces;
end;

overriding member function get_serveroutputs return clob is
l_outputs clob;
begin
self.add_serveroutput(l_outputs, self.before_all.serveroutput );
self.add_serveroutput(l_outputs, self.after_all.serveroutput );
ut_utils.append_to_clob(l_outputs, self.before_all.serveroutput );
ut_utils.append_to_clob(l_outputs, self.after_all.serveroutput );
return l_outputs;
end;

Expand Down
2 changes: 1 addition & 1 deletion source/core/types/ut_suite.tps
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ create or replace type ut_suite under ut_logical_suite (
/**
* Finds the item in the suite by it's name and returns the item index
*/
overriding member function do_execute(self in out nocopy ut_suite , a_listener in out nocopy ut_event_listener_base) return boolean,
overriding member function do_execute(self in out nocopy ut_suite , a_listener in out nocopy ut_event_listener_base) return boolean,
overriding member function get_error_stack_traces(self ut_suite) return ut_varchar2_list,
overriding member function get_serveroutputs return clob
)
Expand Down
31 changes: 0 additions & 31 deletions source/core/types/ut_suite_item.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -82,36 +82,5 @@ create or replace type body ut_suite_item as
self.results_count.increase_warning_count;
end;

not final member function get_error_stack_traces return ut_varchar2_list is
begin
return ut_varchar2_list();
end;

final member procedure add_stack_trace(self in ut_suite_item, a_stack_traces in out nocopy ut_varchar2_list, a_stack_trace varchar2) is
begin
if a_stack_trace is not null then
if a_stack_traces is null then
a_stack_traces := ut_varchar2_list();
end if;
a_stack_traces.extend;
a_stack_traces(a_stack_traces.last) := a_stack_trace;
end if;
end;

not final member function get_serveroutputs return clob is
begin
return null;
end;

final member procedure add_serveroutput(self in ut_suite_item, a_serveroutputs in out nocopy clob, a_serveroutput clob) is
begin
if a_serveroutput is not null and dbms_lob.getlength(a_serveroutput) > 0 then
if a_serveroutputs is null then
dbms_lob.createtemporary(a_serveroutputs, true);
end if;
dbms_lob.append(a_serveroutputs, a_serveroutput);
end if;
end;

end;
/
10 changes: 4 additions & 6 deletions source/core/types/ut_suite_item.tps
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
create or replace type ut_suite_item under ut_suite_item_base (
create or replace type ut_suite_item force under ut_suite_item_base (
/*
utPLSQL - Version X.X.X.X
Copyright 2016 - 2017 utPLSQL Project
Expand Down Expand Up @@ -30,11 +30,9 @@ create or replace type ut_suite_item under ut_suite_item_base (
final member procedure do_execute(self in out nocopy ut_suite_item, a_listener in out nocopy ut_event_listener_base),
not instantiable member procedure calc_execution_result(self in out nocopy ut_suite_item),
not instantiable member procedure mark_as_errored(self in out nocopy ut_suite_item, a_listener in out nocopy ut_event_listener_base, a_error_stack_trace varchar2),
member procedure put_warning(self in out nocopy ut_suite_item, a_message varchar2),
not final member function get_error_stack_traces return ut_varchar2_list,
final member procedure add_stack_trace(self in ut_suite_item, a_stack_traces in out nocopy ut_varchar2_list, a_stack_trace varchar2),
not final member function get_serveroutputs return clob,
final member procedure add_serveroutput(self in ut_suite_item, a_serveroutputs in out nocopy clob, a_serveroutput clob)
not instantiable member function get_error_stack_traces return ut_varchar2_list,
not instantiable member function get_serveroutputs return clob,
member procedure put_warning(self in out nocopy ut_suite_item, a_message varchar2)
)
not final not instantiable
/
22 changes: 11 additions & 11 deletions source/core/types/ut_test.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -117,22 +117,22 @@ create or replace type body ut_test as
overriding member function get_error_stack_traces(self ut_test) return ut_varchar2_list is
l_stack_traces ut_varchar2_list := ut_varchar2_list();
begin
self.add_stack_trace(l_stack_traces, self.parent_error_stack_trace);
self.add_stack_trace(l_stack_traces, self.before_each.get_error_stack_trace());
self.add_stack_trace(l_stack_traces, self.before_test.get_error_stack_trace());
self.add_stack_trace(l_stack_traces, self.item.get_error_stack_trace());
self.add_stack_trace(l_stack_traces, self.after_test.get_error_stack_trace());
self.add_stack_trace(l_stack_traces, self.after_each.get_error_stack_trace());
ut_utils.append_to_varchar2_list(l_stack_traces, self.parent_error_stack_trace);
ut_utils.append_to_varchar2_list(l_stack_traces, self.before_each.get_error_stack_trace());
ut_utils.append_to_varchar2_list(l_stack_traces, self.before_test.get_error_stack_trace());
ut_utils.append_to_varchar2_list(l_stack_traces, self.item.get_error_stack_trace());
ut_utils.append_to_varchar2_list(l_stack_traces, self.after_test.get_error_stack_trace());
ut_utils.append_to_varchar2_list(l_stack_traces, self.after_each.get_error_stack_trace());
return l_stack_traces;
end;
overriding member function get_serveroutputs return clob is
l_outputs clob;
begin
self.add_serveroutput(l_outputs, self.before_each.serveroutput );
self.add_serveroutput(l_outputs, self.before_test.serveroutput );
self.add_serveroutput(l_outputs, self.item.serveroutput );
self.add_serveroutput(l_outputs, self.after_test.serveroutput );
self.add_serveroutput(l_outputs, self.after_each.serveroutput );
ut_utils.append_to_clob(l_outputs, self.before_each.serveroutput );
ut_utils.append_to_clob(l_outputs, self.before_test.serveroutput );
ut_utils.append_to_clob(l_outputs, self.item.serveroutput );
ut_utils.append_to_clob(l_outputs, self.after_test.serveroutput );
ut_utils.append_to_clob(l_outputs, self.after_each.serveroutput );
return l_outputs;
end;
end;
Expand Down
4 changes: 1 addition & 3 deletions source/core/ut_metadata.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,8 @@ create or replace package body ut_metadata as
schema_name => a_owner,
object_name => a_object_name);

sys.dbms_lob.createtemporary(lob_loc => l_source, cache => true);

for i in 1..l_lines.count loop
sys.dbms_lob.writeappend(l_source, length(l_lines(i)), l_lines(i));
ut_utils.append_to_clob(l_source, l_lines(i));
end loop;

end;
Expand Down
37 changes: 32 additions & 5 deletions source/core/ut_utils.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,6 @@ create or replace package body ut_utils is

function string_to_table(a_string varchar2, a_delimiter varchar2:= chr(10), a_skip_leading_delimiter varchar2 := 'N') return ut_varchar2_list is
l_offset integer := 1;
l_length integer;
l_delimiter_position integer;
l_skip_leading_delimiter boolean := coalesce(a_skip_leading_delimiter = 'Y',false);
l_result ut_varchar2_list := ut_varchar2_list();
Expand All @@ -195,7 +194,7 @@ create or replace package body ut_utils is
if a_delimiter is null then
return ut_varchar2_list(a_string);
end if;
l_length := length(a_string);

loop
l_delimiter_position := instr(a_string, a_delimiter, l_offset);
if not (l_delimiter_position = 1 and l_skip_leading_delimiter) then
Expand Down Expand Up @@ -259,10 +258,8 @@ create or replace package body ut_utils is
l_result clob;
l_text_table_rows integer := coalesce(cardinality(a_text_table),0);
begin

dbms_lob.createtemporary(l_result, true);
for i in 1 .. l_text_table_rows loop
dbms_lob.writeappend(l_result, length(a_text_table(i)), a_text_table(i));
append_to_clob(l_result, a_text_table(i));
end loop;
return l_result;
end;
Expand Down Expand Up @@ -291,6 +288,36 @@ create or replace package body ut_utils is
and o.object_type <> 'SYNONYM';
return l_result;
end;

procedure append_to_varchar2_list(a_list in out nocopy ut_varchar2_list, a_line varchar2) is
begin
if a_line is not null then
if a_list is null then
a_list := ut_varchar2_list();
end if;
a_list.extend;
a_list(a_list.last) := a_line;
end if;
end append_to_varchar2_list;

procedure append_to_clob(a_src_clob in out nocopy clob, a_new_data clob) is
begin
if a_new_data is not null and dbms_lob.getlength(a_new_data) > 0 then
if a_src_clob is null then
dbms_lob.createtemporary(a_src_clob, true);
end if;
dbms_lob.append(a_src_clob, a_new_data);
end if;
end;
procedure append_to_clob(a_src_clob in out nocopy clob, a_new_data varchar2) is
begin
if a_new_data is not null then
if a_src_clob is null then
dbms_lob.createtemporary(a_src_clob, true);
end if;
dbms_lob.writeappend(a_src_clob, length(a_new_data), a_new_data);
end if;
end;

end ut_utils;
/
8 changes: 8 additions & 0 deletions source/core/ut_utils.pks
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,14 @@ create or replace package ut_utils authid definer is
* Returns a list of object that are part of utPLSQL framework
*/
function get_utplsql_objects_list return ut_object_names;

/*
* Append a line to the end of ut_varchar2_lst
*/
procedure append_to_varchar2_list(a_list in out nocopy ut_varchar2_list, a_line varchar2);

procedure append_to_clob(a_src_clob in out nocopy clob, a_new_data clob);
procedure append_to_clob(a_src_clob in out nocopy clob, a_new_data varchar2);

end ut_utils;
/