11create or replace package body ut_assert is
22
3- g_asserts_called ut_objects_list := ut_objects_list ();
3+ g_asserts_called ut_assert_list := ut_assert_list ();
44
55 function get_aggregate_asserts_result return integer is
66 l_result integer := ut_utils.tr_success;
77 begin
88 ut_utils.debug_log('ut_assert.get_aggregate_asserts_result');
99
1010 for i in 1 .. g_asserts_called.count loop
11- l_result := greatest(l_result, treat( g_asserts_called(i) as ut_assert_result ).result);
11+ l_result := greatest(l_result, g_asserts_called(i).result);
1212 exit when l_result = ut_utils.tr_error;
1313 end loop;
1414 return l_result;
@@ -22,11 +22,16 @@ create or replace package body ut_assert is
2222 end;
2323
2424 function get_asserts_results return ut_objects_list is
25- l_asserts_results ut_objects_list;
25+ l_asserts_results ut_objects_list := ut_objects_list() ;
2626 begin
2727 ut_utils.debug_log('ut_assert.get_asserts_results');
28- l_asserts_results := g_asserts_called;
29- clear_asserts();
28+ if g_asserts_called is not null and g_asserts_called.count > 0 then
29+ l_asserts_results.extend(g_asserts_called.count);
30+ for i in 1 .. g_asserts_called.count loop
31+ l_asserts_results(i) := g_asserts_called(i);
32+ end loop;
33+ clear_asserts();
34+ end if;
3035 return l_asserts_results;
3136 end get_asserts_results;
3237
@@ -39,17 +44,21 @@ create or replace package body ut_assert is
3944 function build_message(a_message varchar2, a_expected in varchar2, a_actual in varchar2) return varchar2 is
4045 c_max_value_len constant integer := 1800;
4146 begin
42- return a_message || ', expected: ' || case when length(a_expected) > c_max_value_len then substr(a_expected
43- ,1
44- ,c_max_value_len - 3) || '...' else a_expected end || ', actual: ' || case when length(a_actual) > c_max_value_len then substr(a_actual
45- ,1
46- ,c_max_value_len - 3) || '...' else a_actual end;
47+ return a_message || ', expected: ' || ut_utils.to_string(a_expected)|| ', actual: ' || ut_utils.to_string(a_actual);
4748 end;
4849
49- procedure build_assert_result(a_test boolean, a_expected in varchar2, a_actual in varchar2, a_message varchar2) is
50+ procedure build_assert_result(
51+ a_assert_result boolean, a_assert_name varchar2, a_expected_type in varchar2, a_actual_type in varchar2,
52+ a_expected_value_string in varchar2, a_actual_value_string in varchar2, a_message varchar2
53+ ) is
5054 begin
51- ut_utils.debug_log('ut_assert.build_assert_result :' || ut_utils.to_test_result(a_test) || ':' || a_message);
52- add_assert_result(ut_assert_result(ut_utils.to_test_result(a_test), build_message(a_message, a_expected, a_actual)));
55+ ut_utils.debug_log('ut_assert.build_assert_result :' || ut_utils.to_test_result(a_assert_result) || ':' || a_message);
56+ add_assert_result(
57+ ut_assert_result(
58+ a_assert_name, ut_utils.to_test_result(a_assert_result),
59+ a_expected_type, a_actual_type, a_expected_value_string, a_actual_value_string, a_message
60+ )
61+ );
5362 end;
5463
5564 procedure report_error(a_message in varchar2) is
@@ -61,47 +70,47 @@ create or replace package body ut_assert is
6170 --assertions
6271 procedure are_equal(a_expected in number, a_actual in number) is
6372 begin
64- are_equal('Equality test' , a_expected, a_actual);
73+ are_equal(null , a_expected, a_actual);
6574 end;
6675
6776 procedure are_equal(a_msg in varchar2, a_expected in number, a_actual in number) is
6877 begin
69- build_assert_result((a_expected = a_actual), a_expected, a_actual, a_msg);
78+ build_assert_result((a_expected = a_actual), 'are_equal', 'number', 'number', ut_utils.to_string( a_expected), ut_utils.to_string( a_actual), ut_utils.to_string( a_msg) );
7079 end;
7180
7281 procedure are_equal(a_expected in varchar2, a_actual in varchar2) is
7382 begin
74- are_equal('Equality test' , a_expected, a_actual);
83+ are_equal(null , a_expected, a_actual);
7584 end;
7685
7786 procedure are_equal(a_msg in varchar2, a_expected in varchar2, a_actual in varchar2) is
7887 begin
79- build_assert_result((a_expected = a_actual), a_expected, a_actual, a_msg);
88+ build_assert_result((a_expected = a_actual), 'are_equal', 'varchar2', 'varchar2', ut_utils.to_string( a_expected), ut_utils.to_string( a_actual), ut_utils.to_string( a_msg) );
8089 end;
8190
8291 procedure are_equal(a_expected in date, a_actual in date) is
8392 begin
84- are_equal('Equality test' , a_expected, a_actual);
93+ are_equal(null , a_expected, a_actual);
8594 end;
8695
8796 procedure are_equal(a_msg in varchar2, a_expected in date, a_actual in date) is
8897 begin
89- build_assert_result((a_expected = a_actual), a_expected, a_actual, a_msg);
98+ build_assert_result((a_expected = a_actual), 'are_equal', 'date', 'date', ut_utils.to_string( a_expected), ut_utils.to_string( a_actual), ut_utils.to_string( a_msg) );
9099 end;
91100
92101 procedure are_equal(a_expected in timestamp_unconstrained, a_actual in timestamp_unconstrained) is
93102 begin
94- are_equal('Equality test' , a_expected, a_actual);
103+ are_equal(null , a_expected, a_actual);
95104 end;
96105
97106 procedure are_equal(a_msg in varchar2, a_expected in timestamp_unconstrained, a_actual in timestamp_unconstrained) is
98107 begin
99- build_assert_result((a_expected = a_actual), a_expected, a_actual, a_msg);
108+ build_assert_result((a_expected = a_actual), 'are_equal', 'timestamp', 'timestamp', ut_utils.to_string( a_expected), ut_utils.to_string( a_actual), ut_utils.to_string( a_msg) );
100109 end;
101110
102111 procedure are_equal(a_expected in anydata, a_actual in anydata) is
103112 begin
104- are_equal('Equality test' , a_expected, a_actual);
113+ are_equal(null , a_expected, a_actual);
105114 end;
106115
107116 procedure are_equal(a_msg in varchar2, a_expected in anydata, a_actual in anydata) is
@@ -110,12 +119,12 @@ create or replace package body ut_assert is
110119 begin
111120 l_expected := any_data_builder.build(a_expected);
112121 l_actual := any_data_builder.build(a_actual);
113- build_assert_result(( l_expected.eq(l_actual)), l_expected.to_string(), l_actual.to_string(), a_msg);
122+ build_assert_result( l_expected.eq(l_actual), 'are_equal', l_expected.type_name, l_actual.type_name, ut_utils. to_string(l_expected.to_string()), ut_utils.to_string( l_actual.to_string()), ut_utils.to_string( a_msg) );
114123 end;
115124
116125 procedure are_equal(a_expected in sys_refcursor, a_actual in sys_refcursor) is
117126 begin
118- are_equal('Equality test' , a_expected, a_actual);
127+ are_equal(null , a_expected, a_actual);
119128 end;
120129
121130 procedure are_equal(a_msg in varchar2, a_expected in sys_refcursor, a_actual in sys_refcursor) is
@@ -124,19 +133,17 @@ create or replace package body ut_assert is
124133 begin
125134 l_expected := any_data_builder.build(a_expected);
126135 l_actual := any_data_builder.build(a_actual);
127- build_assert_result(( l_expected.eq(l_actual)), l_expected.to_string(), l_actual.to_string(), a_msg);
136+ build_assert_result( l_expected.eq(l_actual), 'are_equal', l_expected.type_name, l_actual.type_name, ut_utils. to_string(l_expected.to_string()), ut_utils.to_string( l_actual.to_string()), ut_utils.to_string( a_msg) );
128137 end;
129138
130139 procedure this(a_condition in boolean) is
131140 begin
132141 this('Simple assert', a_condition);
133142 end;
143+
134144 procedure this(a_msg in varchar2, a_condition in boolean) is
135145 begin
136- build_assert_result(a_condition
137- ,'TRUE'
138- ,case a_condition when true then 'TRUE' when false then 'FALSE' else 'NULL' end
139- ,a_msg);
146+ build_assert_result(a_condition, 'this', 'boolean', 'boolean', ut_utils.to_string(true), ut_utils.to_string(a_condition), ut_utils.to_string(a_msg));
140147 end;
141148
142149end ut_assert;
0 commit comments