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

Skip to content

Commit c75b352

Browse files
committed
removed owner determination of testing package from ut_test_call_params constructor
renamed resolvability checking function to "ut_metadata.resolvable" made ut_test_call_params.execute_call resolve calling procedure first using ut_metadata.do_resolve to qualify calling procedure parts (owner, package, procedure)
1 parent 3453eb9 commit c75b352

6 files changed

Lines changed: 68 additions & 102 deletions

File tree

source/types/ut_test.tpb

Lines changed: 4 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ create or replace type body ut_test is
66
self.name := a_test_name;
77
self.call_params := ut_test_call_params(object_name => trim(a_object_name)
88
,test_procedure => trim(a_test_procedure)
9-
,owner_name => coalesce(trim(a_owner_name)
10-
,sys_context('userenv', 'current_schema'))
9+
,owner_name => trim(a_owner_name)
1110
,setup_procedure => trim(a_setup_procedure)
1211
,teardown_procedure => trim(a_teardown_procedure));
1312
return;
@@ -19,62 +18,23 @@ create or replace type body ut_test is
1918
return false;
2019
end if;
2120

22-
if not ut_metadata.do_resolve(call_params.owner_name, call_params.object_name, call_params.test_procedure) then
21+
if not ut_metadata.resolvable(call_params.owner_name, call_params.object_name, call_params.test_procedure) then
2322
return false;
2423
end if;
2524

2625
if call_params.setup_procedure is not null and
27-
not ut_metadata.do_resolve(call_params.owner_name, call_params.object_name, call_params.setup_procedure) then
26+
not ut_metadata.resolvable(call_params.owner_name, call_params.object_name, call_params.setup_procedure) then
2827
return false;
2928
end if;
3029

3130
if call_params.teardown_procedure is not null and
32-
not ut_metadata.do_resolve(call_params.owner_name, call_params.object_name, call_params.teardown_procedure) then
31+
not ut_metadata.resolvable(call_params.owner_name, call_params.object_name, call_params.teardown_procedure) then
3332
return false;
3433
end if;
3534

3635
return true;
3736
end is_valid;
3837

39-
member function setup_stmt(self in ut_test) return varchar2 is
40-
begin
41-
if trim(call_params.setup_procedure) is null or trim(call_params.object_name) is null then
42-
return null;
43-
end if;
44-
45-
if trim(call_params.owner_name) is not null then
46-
return trim(call_params.owner_name) || '.' || call_params.object_name || '.' || call_params.setup_procedure;
47-
else
48-
return call_params.object_name || '.' || call_params.setup_procedure;
49-
end if;
50-
end setup_stmt;
51-
52-
member function test_stmt(self in ut_test) return varchar2 is
53-
begin
54-
if trim(call_params.test_procedure) is null or trim(call_params.object_name) is null then
55-
return null;
56-
end if;
57-
58-
if trim(call_params.owner_name) is not null then
59-
return trim(call_params.owner_name) || '.' || call_params.object_name || '.' || call_params.test_procedure;
60-
else
61-
return call_params.object_name || '.' || call_params.test_procedure;
62-
end if;
63-
end test_stmt;
64-
65-
member function teardown_stmt(self in ut_test) return varchar2 is
66-
begin
67-
if trim(call_params.teardown_procedure) is null or trim(call_params.object_name) is null then
68-
return null;
69-
end if;
70-
71-
if trim(call_params.owner_name) is not null then
72-
return trim(call_params.owner_name) || '.' || call_params.object_name || '.' || call_params.teardown_procedure;
73-
else
74-
return call_params.object_name || '.' || call_params.teardown_procedure;
75-
end if;
76-
end teardown_stmt;
77-
7838
overriding member procedure execute(self in out nocopy ut_test, a_reporter in out nocopy ut_suite_reporter) is
7939
params_valid boolean;
8040
begin

source/types/ut_test.tps

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ create or replace type ut_test force under ut_test_object
1515
return self as result,
1616

1717
member function is_valid(self in ut_test) return boolean,
18-
member function setup_stmt(self in ut_test) return varchar2,
19-
member function test_stmt(self in ut_test) return varchar2,
20-
member function teardown_stmt(self in ut_test) return varchar2,
2118

2219
overriding member procedure execute(self in out nocopy ut_test, a_reporter in out nocopy ut_suite_reporter),
2320
overriding member procedure execute(self in out nocopy ut_test)

source/types/ut_test_call_params.tpb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11
create or replace type body ut_test_call_params is
22

3-
static procedure execute_call(a_owner varchar2, a_object varchar2, a_subprogram varchar2) is
3+
static procedure execute_call(a_owner varchar2, a_object varchar2, a_procedure_name varchar2) is
44
stmt varchar2(200);
55
i number;
66
c number;
7+
8+
owner varchar2(200) := a_owner;
9+
object_name varchar2(200) := a_object;
10+
procedure_name varchar2(200) := a_procedure_name;
11+
712
begin
813

9-
stmt := 'begin ' || ut_metadata.form_name(a_owner, a_object, a_subprogram) || '; end;';
14+
ut_metadata.do_resolve(the_owner => owner, the_object => object_name, a_procedure_name => procedure_name);
15+
16+
stmt := 'begin ' || ut_metadata.form_name(owner, object_name, procedure_name) || '; end;';
1017

1118
$if $$ut_trace $then
1219
dbms_output.put_line('ut_test_call_params.execute_call stmt:' || stmt);

source/types/ut_test_call_params.tps

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ create or replace type ut_test_call_params force as object
66
setup_procedure varchar2(32 char),
77
teardown_procedure varchar2(32 char),
88

9-
static procedure execute_call(a_owner varchar2, a_object varchar2, a_subprogram varchar2),
9+
static procedure execute_call(a_owner varchar2, a_object varchar2, a_procedure_name varchar2),
1010
--member function is_valid(self in ut_test_call_params) return boolean,
1111
member procedure validate_params(self in ut_test_call_params, a_result out boolean),
1212
member procedure setup(self in ut_test_call_params),

source/ut_metadata.pkb

Lines changed: 41 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
11
create or replace package body ut_metadata as
22

3+
procedure do_resolve(the_owner in out varchar2, the_object in out varchar2, a_procedure_name in out varchar2) is
4+
name varchar2(200);
5+
context integer;
6+
dblink varchar2(200);
7+
part1_type number;
8+
object_number number;
9+
begin
10+
name := form_name(the_owner, the_object, a_procedure_name);
11+
12+
context := 1; --plsql
13+
14+
dbms_utility.name_resolve(name => name
15+
,context => context
16+
,schema => the_owner
17+
,part1 => the_object
18+
,part2 => a_procedure_name
19+
,dblink => dblink
20+
,part1_type => part1_type
21+
,object_number => object_number);
22+
23+
end do_resolve;
24+
325
function form_name(a_owner_name varchar2, a_object varchar2, a_subprogram varchar2 default null) return varchar2 is
426
name varchar2(200);
527
begin
@@ -24,16 +46,10 @@ create or replace package body ut_metadata as
2446
object_number number;
2547
begin
2648

27-
name := form_name(a_owner_name, a_package_name);
49+
schema := a_owner_name;
50+
part1 := a_package_name;
2851

29-
dbms_utility.name_resolve(name => name
30-
,context => 1 -- pl/sql
31-
,schema => schema
32-
,part1 => part1
33-
,part2 => part2
34-
,dblink => dblink
35-
,part1_type => part1_type
36-
,object_number => object_number);
52+
do_resolve(schema, part1, part2);
3753

3854
select count(*)
3955
into v_cnt
@@ -59,16 +75,11 @@ create or replace package body ut_metadata as
5975
object_number number;
6076
begin
6177

62-
name := form_name(a_owner_name, a_package_name, a_procedure_name);
78+
schema := a_owner_name;
79+
part1 := a_package_name;
80+
part2 := a_procedure_name;
6381

64-
dbms_utility.name_resolve(name => name
65-
,context => 1 -- pl/sql
66-
,schema => schema
67-
,part1 => part1
68-
,part2 => part2
69-
,dblink => dblink
70-
,part1_type => part1_type
71-
,object_number => object_number);
82+
do_resolve(schema, part1, part2);
7283

7384
select count(*)
7485
into v_cnt
@@ -81,37 +92,19 @@ create or replace package body ut_metadata as
8192
return v_cnt = 1;
8293
end;
8394

84-
function do_resolve(the_owner in varchar2, the_object in varchar2, a_procedurename in varchar2) return boolean is
85-
name varchar2(200);
86-
context integer;
87-
schema varchar2(200);
88-
part1 varchar2(200);
89-
part2 varchar2(200);
90-
dblink varchar2(200);
91-
part1_type number;
92-
object_number number;
95+
function resolvable(the_owner in varchar2, the_object in varchar2, a_procedurename in varchar2) return boolean is
96+
owner varchar2(200);
97+
object_name varchar2(200);
98+
procedure_name varchar2(200);
9399
begin
94-
name := form_name(the_owner, the_object, a_procedurename);
95-
96-
context := 1; --plsql
97-
98-
begin
99-
dbms_utility.name_resolve(name => name
100-
,context => context
101-
,schema => schema
102-
,part1 => part1
103-
,part2 => part2
104-
,dblink => dblink
105-
,part1_type => part1_type
106-
,object_number => object_number);
107-
exception
108-
when others then
109-
--replace with correct exception
110-
return false;
111-
end;
100+
owner := the_owner;
101+
object_name := the_object;
102+
procedure_name := a_procedurename;
103+
do_resolve(owner, object_name, procedure_name);
112104
return true;
113-
114-
end do_resolve;
115-
105+
exception
106+
when others then
107+
return false;
108+
end resolvable;
116109
end;
117110
/

source/ut_metadata.pks

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ create or replace package ut_metadata as
1414
*/
1515

1616
function form_name(a_owner_name varchar2, a_object varchar2, a_subprogram varchar2 default null) return varchar2;
17+
18+
/*
19+
function: resolvable
20+
21+
tries to resolve full subprogram name using dbms_utility.name_resolve
22+
*/
23+
function resolvable(the_owner in varchar2, the_object in varchar2, a_procedurename in varchar2) return boolean;
1724

1825
/*
1926
function: package_valid
@@ -32,12 +39,14 @@ create or replace package ut_metadata as
3239
function procedure_exists(a_owner_name varchar2, a_package_name in varchar2, a_procedure_name in varchar2)
3340
return boolean;
3441

35-
/*
36-
function: do_resolve
42+
43+
/*
44+
procedure: do_resolve
45+
46+
resolves [owner.]object[.procedure] using dbms_utility.name_resolve and returnes resolved parts
3747

38-
resolves full subprogram name using dbms_utility.name_resolve
3948
*/
40-
function do_resolve(the_owner in varchar2, the_object in varchar2, a_procedurename in varchar2) return boolean;
49+
procedure do_resolve(the_owner in out varchar2, the_object in out varchar2, a_procedure_name in out varchar2);
4150

4251
end ut_metadata;
4352
/

0 commit comments

Comments
 (0)