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

Skip to content

Commit 6fcb366

Browse files
committed
Cleanup of ut_executable - made come code private.
Added test placeholders for `ut_executable`. Some tests referring the executable behavior should be removed with introduction of those tests.
1 parent 71a4d33 commit 6fcb366

5 files changed

Lines changed: 135 additions & 41 deletions

File tree

source/core/types/ut_executable.tpb

Lines changed: 36 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -29,42 +29,6 @@ create or replace type body ut_executable is
2929
return;
3030
end;
3131

32-
member function is_defined(self in out nocopy ut_executable) return boolean is
33-
l_result boolean := false;
34-
l_message_part varchar2(4000) := 'Call params for ' || self.executable_type || ' are not valid: ';
35-
begin
36-
37-
if self.object_name is null then
38-
self.error_stack := l_message_part || 'package is not defined';
39-
elsif self.procedure_name is null then
40-
self.error_stack := l_message_part || 'procedure is not defined';
41-
else
42-
l_result := true;
43-
end if;
44-
45-
return l_result;
46-
end is_defined;
47-
48-
/**
49-
* We will check if error raised because package was invalid if not we let it propagate.
50-
**/
51-
member function is_invalid(self in out nocopy ut_executable) return boolean is
52-
l_result boolean := true;
53-
l_message_part varchar2(4000) := 'Call params for ' || self.executable_type || ' are not valid: ';
54-
begin
55-
56-
if not ut_metadata.package_valid(self.owner_name, self.object_name) then
57-
self.error_stack := l_message_part || 'package does not exist or is invalid: ' ||upper(self.owner_name||'.'||self.object_name);
58-
elsif not ut_metadata.procedure_exists(self.owner_name, self.object_name, self.procedure_name) then
59-
self.error_stack := l_message_part || 'procedure does not exist '
60-
|| upper(self.owner_name || '.' || self.object_name || '.' ||self.procedure_name);
61-
else
62-
l_result := false;
63-
end if;
64-
65-
return l_result;
66-
end is_invalid;
67-
6832
member function form_name return varchar2 is
6933
begin
7034
return ut_metadata.form_name(owner_name, object_name, procedure_name);
@@ -84,7 +48,40 @@ create or replace type body ut_executable is
8448
l_failed_with_invalid_pck boolean := true;
8549
l_start_transaction_id varchar2(250);
8650
l_end_transaction_id varchar2(250);
87-
51+
52+
function is_defined return boolean is
53+
l_result boolean := false;
54+
l_message_part varchar2(4000) := 'Call params for ' || self.executable_type || ' are not valid: ';
55+
begin
56+
57+
if self.object_name is null then
58+
self.error_stack := l_message_part || 'package is not defined';
59+
elsif self.procedure_name is null then
60+
self.error_stack := l_message_part || 'procedure is not defined';
61+
else
62+
l_result := true;
63+
end if;
64+
65+
return l_result;
66+
end is_defined;
67+
68+
function is_invalid return boolean is
69+
l_result boolean := true;
70+
l_message_part varchar2(4000) := 'Call params for ' || self.executable_type || ' are not valid: ';
71+
begin
72+
73+
if not ut_metadata.package_valid(self.owner_name, self.object_name) then
74+
self.error_stack := l_message_part || 'package does not exist or is invalid: ' ||upper(self.owner_name||'.'||self.object_name);
75+
elsif not ut_metadata.procedure_exists(self.owner_name, self.object_name, self.procedure_name) then
76+
self.error_stack := l_message_part || 'procedure does not exist '
77+
|| upper(self.owner_name || '.' || self.object_name || '.' ||self.procedure_name);
78+
else
79+
l_result := false;
80+
end if;
81+
82+
return l_result;
83+
end is_invalid;
84+
8885
procedure save_dbms_output is
8986
l_status number;
9087
l_line varchar2(32767);
@@ -111,7 +108,7 @@ create or replace type body ut_executable is
111108
--listener - before call to executable
112109
ut_event_manager.trigger_event('before_'||self.executable_type, self);
113110

114-
l_completed_without_errors := self.is_defined();
111+
l_completed_without_errors := is_defined();
115112
if l_completed_without_errors then
116113
l_statement :=
117114
'declare' || chr(10) ||
@@ -149,7 +146,7 @@ create or replace type body ut_executable is
149146
dbms_sql.close_cursor(l_cursor_number);
150147
exception
151148
when ut_utils.ex_invalid_package then
152-
l_failed_with_invalid_pck := self.is_invalid();
149+
l_failed_with_invalid_pck := is_invalid();
153150
dbms_sql.close_cursor(l_cursor_number);
154151
if not l_failed_with_invalid_pck then
155152
raise;

source/core/types/ut_executable.tps

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ create or replace type ut_executable under ut_event_item(
2626
error_stack varchar2(4000),
2727
serveroutput clob,
2828
constructor function ut_executable( self in out nocopy ut_executable, a_owner varchar2, a_package varchar2, a_procedure_name varchar2, a_executable_type varchar2) return self as result,
29-
member function is_invalid(self in out nocopy ut_executable) return boolean,
30-
member function is_defined(self in out nocopy ut_executable) return boolean,
3129
member function form_name return varchar2,
3230
member procedure do_execute(self in out nocopy ut_executable, a_item in out nocopy ut_suite_item),
3331
/**

test/core/test_ut_executable.pkb

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
create or replace package body test_ut_executable is
2+
3+
--%suite(ut_executable)
4+
--%suitepath(utplsql.core)
5+
6+
--%beforeall
7+
procedure create_dummy_package is
8+
begin
9+
null;
10+
end;
11+
12+
--%afterall
13+
procedure drop_dummy_package is
14+
begin
15+
null;
16+
end;
17+
18+
--%context(do_execute)
19+
20+
--%test(Executes procedure in current schema when user was not provided)
21+
procedure exec_schema_package_proc is
22+
begin
23+
null;
24+
end;
25+
26+
--%test(Executes procedure and saves dbms_output)
27+
procedure exec_package_proc is
28+
begin
29+
null;
30+
end;
31+
32+
--%test(Executes a procedure raising exception, saves dbms_output and exception stack trace)
33+
procedure exec_failing_proc is
34+
begin
35+
null;
36+
end;
37+
38+
--%test(Sets state invalidation flag when executed procedure in a state-invalidated package, saves dbms_output and exception stack trace)
39+
procedure exec_invalid_state_proc is
40+
begin
41+
null;
42+
end;
43+
44+
--%endcontext
45+
46+
--%context(form_name)
47+
48+
--%test(Builds a name for the executable test)
49+
procedure form_name is
50+
begin
51+
null;
52+
end;
53+
--%endcontext
54+
55+
end;
56+
/

test/core/test_ut_executable.pks

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
create or replace package test_ut_executable is
2+
3+
--%suite(ut_executable)
4+
--%suitepath(utplsql.core)
5+
6+
--%beforeall
7+
procedure create_dummy_package;
8+
9+
--%afterall
10+
procedure drop_dummy_package;
11+
12+
--%context(do_execute)
13+
14+
--%test(Executes procedure in current schema when user was not provided)
15+
--%disabled
16+
procedure exec_schema_package_proc;
17+
18+
--%test(Executes procedure and saves dbms_output)
19+
--%disabled
20+
procedure exec_package_proc;
21+
22+
--%test(Executes a procedure raising exception, saves dbms_output and exception stack trace)
23+
--%disabled
24+
procedure exec_failing_proc;
25+
26+
--%test(Sets state invalidation flag when executed procedure in a state-invalidated package, saves dbms_output and exception stack trace)
27+
--%disabled
28+
procedure exec_invalid_state_proc;
29+
30+
--%endcontext
31+
32+
--%context(form_name)
33+
34+
--%test(Builds a name for the executable test)
35+
--%disabled
36+
procedure form_name;
37+
38+
--%endcontext
39+
40+
end;
41+
/

test/install_tests.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ whenever oserror exit failure rollback
2727
@@core/test_output_buffer.pks
2828
@@core/test_file_mapper.pks
2929
@@core/test_suite_manager.pks
30+
@@core/test_ut_executable.pks
3031
@@core/test_suite_builder.pks
3132
@@core/reporters.pks
3233
@@core/reporters/test_coverage.pks
@@ -72,6 +73,7 @@ set define off
7273
@@core/test_output_buffer.pkb
7374
@@core/test_file_mapper.pkb
7475
@@core/test_suite_manager.pkb
76+
@@core/test_ut_executable.pkb
7577
@@core/test_suite_builder.pkb
7678
@@core/reporters.pkb
7779
@@core/reporters/test_coverage.pkb

0 commit comments

Comments
 (0)