Skip to content

Commit b3263ab

Browse files
committed
Almost working - still a PoC state
1 parent 68fe4e7 commit b3263ab

22 files changed

Lines changed: 283 additions & 111 deletions

source/assertions/ut.pkb

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
create or replace package body ut is
2+
3+
-- function expect(a_actual in boolean) return ut_assertion_bolean is
4+
-- begin
5+
-- return ut_assertion_boolean(a_actual);
6+
-- end;
7+
8+
function expect(a_actual in number) return ut_assertion_number is
9+
begin
10+
return ut_assertion_number(a_actual);
11+
end;
12+
13+
function expect(a_actual in varchar2) return ut_assertion_varchar is
14+
begin
15+
return ut_assertion_varchar(a_actual);
16+
end;
17+
18+
-- function expect(a_actual in raw) return ut_assertion_raw is
19+
-- begin
20+
-- return ut_assertion_raw(a_actual);
21+
-- end;
22+
23+
-- function expect(a_actual in clob) return ut_assertion_clob is
24+
-- begin
25+
-- return ut_assertion_clob(a_actual);
26+
-- end;
27+
--
28+
-- function expect(a_actual in blob) return ut_assertion_blob is
29+
-- begin
30+
-- return ut_assertion_blob(a_actual);
31+
-- end;
32+
--
33+
--
34+
-- function expect(a_actual in date) return ut_assertion_date is
35+
-- begin
36+
-- return ut_assertion_date(a_actual);
37+
-- end;
38+
--
39+
-- function expect(a_actual in timestamp_tz_unconstrained) return ut_assertion_timestamp is
40+
-- begin
41+
-- return ut_assertion_timestamp(a_actual);
42+
-- end;
43+
--
44+
-- function expect(a_actual in anydata) return ut_assertion_anydata;
45+
--
46+
-- function expect(a_actual in sys_refcursor) return ut_assertion_cursor;
47+
48+
end ut;
49+
/

source/assertions/ut.pks

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
create or replace package ut authid current_user as
2+
3+
-- function expect(a_message varchar2 := null, a_actual in boolean) return ut_assertion_bolean;
4+
5+
6+
function expect(a_actual in number) return ut_assertion_number;
7+
8+
function expect(a_actual in varchar2) return ut_assertion_varchar;
9+
10+
-- function expect(a_actual in raw) return ut_assertion_raw;
11+
12+
-- function expect(a_message varchar2 := null, a_actual in clob) return ut_assertion_clob;
13+
--
14+
-- function expect(a_message varchar2 := null, a_actual in blob) return ut_assertion_blob;
15+
--
16+
--
17+
-- function expect(a_message varchar2 := null, a_actual in date) return ut_assertion_date;
18+
--
19+
-- function expect(a_message varchar2 := null, a_actual in timestamp_tz_unconstrained) return ut_assertion_timestamp;
20+
--
21+
--
22+
-- function expect(a_message varchar2 := null, a_actual in anydata) return ut_assertion_anydata;
23+
--
24+
-- function expect(a_message varchar2 := null, a_actual in sys_refcursor) return ut_assertion_cursor;
25+
26+
27+
end ut;
28+
/
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ create or replace package body ut_assert_processor as
55
function get_aggregate_asserts_result return integer is
66
l_result integer := ut_utils.tr_success;
77
begin
8-
ut_utils.debug_log('ut_assert.get_aggregate_asserts_result');
8+
ut_utils.debug_log('ut_assert_processor.get_aggregate_asserts_result');
99

1010
for i in 1 .. g_asserts_called.count loop
1111
l_result := greatest(l_result, g_asserts_called(i).result);
@@ -17,15 +17,16 @@ create or replace package body ut_assert_processor as
1717

1818
procedure clear_asserts is
1919
begin
20-
ut_utils.debug_log('ut_assert.clear_asserts');
20+
ut_utils.debug_log('ut_assert_processor.clear_asserts');
2121
g_asserts_called.delete;
2222
end;
2323

2424
function get_asserts_results return ut_objects_list is
2525
l_asserts_results ut_objects_list := ut_objects_list();
2626
begin
27-
ut_utils.debug_log('ut_assert.get_asserts_results');
27+
ut_utils.debug_log('ut_assert_processor.get_asserts_results');
2828
if g_asserts_called is not null and g_asserts_called.count > 0 then
29+
ut_utils.debug_log('ut_assert_processor.get_asserts_results: .count='||g_asserts_called.count);
2930
l_asserts_results.extend(g_asserts_called.count);
3031
for i in 1 .. g_asserts_called.count loop
3132
l_asserts_results(i) := g_asserts_called(i);
@@ -37,6 +38,7 @@ create or replace package body ut_assert_processor as
3738

3839
procedure add_assert_result(a_assert_result ut_assert_result) is
3940
begin
41+
ut_utils.debug_log('ut_assert_processor.add_assert_result');
4042
g_asserts_called.extend;
4143
g_asserts_called(g_asserts_called.last) := a_assert_result;
4244
end;
@@ -52,7 +54,7 @@ create or replace package body ut_assert_processor as
5254
a_expected_value_string in varchar2, a_actual_value_string in varchar2, a_message varchar2
5355
) is
5456
begin
55-
ut_utils.debug_log('ut_assert.build_assert_result :' || ut_utils.to_test_result(a_assert_result) || ':' || a_message);
57+
ut_utils.debug_log('ut_assert_processor.build_assert_result :' || ut_utils.to_test_result(a_assert_result) || ':' || a_message);
5658
add_assert_result(
5759
ut_assert_result(
5860
a_assert_name, ut_utils.to_test_result(a_assert_result),

source/assertions/ut_assertion.tpb

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
create or replace type body ut_assertion as
2+
final member procedure build_assert_result( self in ut_assertion, a_assert_result boolean, a_assert_name varchar2,
3+
a_expected_value_string in varchar2, a_expected_data_type varchar2 := null) is
4+
begin
5+
ut_utils.debug_log('ut_assertion.build_assert_result :' || ut_utils.to_test_result(a_assert_result) || ':' || message);
6+
ut_assert_processor.add_assert_result(
7+
ut_assert_result(
8+
a_assert_name, ut_utils.to_test_result(a_assert_result),
9+
coalesce(a_expected_data_type, self.data_type), self.data_type, a_expected_value_string, self.actual_value_string, self.message
10+
)
11+
);
12+
end;
13+
14+
member procedure to_be_equal(self in ut_assertion, a_expected varchar2) is
15+
begin
16+
self.build_assert_result( false, 'to be equal', ut_utils.to_string(a_expected), 'varchar2');
17+
end;
18+
19+
member procedure to_be_equal(self in ut_assertion, a_expected number) is
20+
begin
21+
self.build_assert_result( false, 'to be equal', ut_utils.to_string(a_expected), 'number');
22+
end;
23+
24+
-- member procedure to_be_equal(self in ut_assertion, a_expected raw) is
25+
-- begin
26+
-- self.build_assert_result( false, 'to be equal', ut_utils.to_string(a_expected), 'raw');
27+
-- end;
28+
29+
final member procedure to_be_null is
30+
begin
31+
self.build_assert_result(ut_utils.int_to_boolean(self.is_null), 'to_be_null', null, ut_utils.to_string(to_char(null)));
32+
end;
33+
34+
final member procedure to_be_not_null is
35+
begin
36+
self.build_assert_result(not ut_utils.int_to_boolean(self.is_null), 'to_be_not_null', null, ut_utils.to_string(to_char(null)));
37+
end;
38+
39+
end;
40+
/

source/assertions/ut_assertion.tps

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
create or replace type ut_assertion as object
2+
(
3+
data_type varchar2(250 char),
4+
is_null number(1,0),
5+
actual_value_string varchar2(4000 char),
6+
message varchar2(4000 char),
7+
final member procedure build_assert_result( self in ut_assertion, a_assert_result boolean, a_assert_name varchar2,
8+
a_expected_value_string in varchar2, a_expected_data_type varchar2 := null),
9+
member procedure to_be_equal(self in ut_assertion, a_expected varchar2),
10+
member procedure to_be_equal(self in ut_assertion, a_expected number),
11+
-- member procedure to_be_equal(self in ut_assertion, a_expected raw),
12+
final member procedure to_be_null,
13+
final member procedure to_be_not_null
14+
)
15+
not final not instantiable
16+
/
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
create or replace type body ut_assertion_number as
2+
3+
constructor function ut_assertion_number(self in out nocopy ut_assertion_number, a_actual number, a_message varchar2 default null) return self as result is
4+
begin
5+
self.data_type := 'number';
6+
self.message := a_message;
7+
self.actual_value_string := ut_utils.to_string(a_actual);
8+
self.is_null := ut_utils.boolean_to_int( (a_actual is null) );
9+
return;
10+
end;
11+
12+
overriding member procedure to_be_equal(self in ut_assertion_number, a_expected number) is
13+
begin
14+
self.build_assert_result( (a_expected = self.actual), 'to be equal', ut_utils.to_string(a_expected));
15+
end;
16+
17+
end;
18+
/
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
create or replace type ut_assertion_number under ut_assertion
2+
(
3+
actual number,
4+
constructor function ut_assertion_number(self in out nocopy ut_assertion_number, a_actual number, a_message varchar2 default null) return self as result,
5+
overriding member procedure to_be_equal(self in ut_assertion_number, a_expected number)
6+
)
7+
/
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
create or replace type body ut_assertion_raw as
2+
3+
constructor function ut_assertion_raw(self in out nocopy ut_assertion_raw, a_actual raw, a_message varchar2 default null) return self as result is
4+
begin
5+
self.data_type := 'raw';
6+
self.message := a_message;
7+
self.actual_value_string := ut_utils.to_string(a_actual);
8+
self.is_null := ut_utils.boolean_to_int( (a_actual is null) );
9+
return;
10+
end;
11+
12+
overriding member procedure to_be_equal(self in ut_assertion_raw, a_expected raw) is
13+
begin
14+
self.build_assert_result( (a_expected = self.actual), 'to be equal', ut_utils.to_string(a_expected));
15+
end;
16+
17+
end;
18+
/
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
create or replace type ut_assertion_raw under ut_assertion
2+
(
3+
actual raw(32767),
4+
constructor function ut_assertion_raw(self in out nocopy ut_assertion_raw, a_actual raw, a_message varchar2 default null) return self as result,
5+
overriding member procedure to_be_equal(self in ut_assertion_raw, a_expected raw)
6+
)
7+
/

0 commit comments

Comments
 (0)