11create or replace type body equal as
2- constructor function equal(self in out nocopy equal, a_expected varchar2, a_nulls_are_equal boolean := null) return self as result is
2+
3+ member procedure init(self in out nocopy equal, a_expected ut_data_value, a_nulls_are_equal boolean) is
34 begin
45 self.nulls_are_equal := ut_utils.boolean_to_int( coalesce(a_nulls_are_equal, ut_assert_processor.nulls_are_equal()) );
56 self.assert_name := lower($$plsql_unit);
6- self.expected := ut_data_value_varchar2('varchar2', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected);
7+ self.expected := a_expected;
8+ end;
9+
10+ overriding member function build_assert_result( self in equal, a_assert_result boolean, a_actual ut_data_value) return ut_assert_result is
11+ l_nulls_are_equal boolean;
12+ begin
13+ ut_utils.debug_log('equal.build_assert_result :' || ut_utils.to_test_result(a_assert_result) || ':');
14+ l_nulls_are_equal := (self.expected.is_null + a_actual.is_null + self.nulls_are_equal = 3); --all 3 are true
15+ return
16+ ut_assert_result(
17+ self.assert_name, ut_utils.to_test_result(a_assert_result or l_nulls_are_equal),
18+ self.expected.type, a_actual.type,
19+ self.expected.value_string, a_actual.value_string, null
20+ );
21+ end;
22+
23+ constructor function equal(self in out nocopy equal, a_expected varchar2, a_nulls_are_equal boolean := null) return self as result is
24+ begin
25+ init(ut_data_value_varchar2('varchar2', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected), a_nulls_are_equal);
726 return;
827 end;
928
1029 constructor function equal(self in out nocopy equal, a_expected number, a_nulls_are_equal boolean := null) return self as result is
1130 begin
12- self.nulls_are_equal := ut_utils.boolean_to_int( coalesce(a_nulls_are_equal, ut_assert_processor.nulls_are_equal()) );
13- self.assert_name := lower($$plsql_unit);
14- self.expected := ut_data_value_number('number', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected);
31+ init(ut_data_value_number('number', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected), a_nulls_are_equal);
1532 return;
1633 end;
1734
1835 constructor function equal(self in out nocopy equal, a_expected clob, a_nulls_are_equal boolean := null) return self as result is
1936 begin
20- self.nulls_are_equal := ut_utils.boolean_to_int( coalesce(a_nulls_are_equal, ut_assert_processor.nulls_are_equal()) );
21- self.assert_name := lower($$plsql_unit);
22- self.expected := ut_data_value_clob('clob', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected);
37+ init(ut_data_value_clob('clob', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected), a_nulls_are_equal);
2338 return;
2439 end;
2540
2641 constructor function equal(self in out nocopy equal, a_expected blob, a_nulls_are_equal boolean := null) return self as result is
2742 begin
28- self.nulls_are_equal := ut_utils.boolean_to_int( coalesce(a_nulls_are_equal, ut_assert_processor.nulls_are_equal()) );
29- self.assert_name := lower($$plsql_unit);
30- self.expected := ut_data_value_blob('blob', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected);
43+ init(ut_data_value_blob('blob', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected), a_nulls_are_equal);
3144 return;
3245 end;
3346
3447 constructor function equal(self in out nocopy equal, a_expected date, a_nulls_are_equal boolean := null) return self as result is
3548 begin
36- self.nulls_are_equal := ut_utils.boolean_to_int( coalesce(a_nulls_are_equal, ut_assert_processor.nulls_are_equal()) );
37- self.assert_name := lower($$plsql_unit);
38- self.expected := ut_data_value_date('date', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected);
49+ init(ut_data_value_date('date', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected), a_nulls_are_equal);
3950 return;
4051 end;
4152
4253 constructor function equal(self in out nocopy equal, a_expected timestamp_unconstrained, a_nulls_are_equal boolean := null) return self as result is
4354 begin
44- self.nulls_are_equal := ut_utils.boolean_to_int( coalesce(a_nulls_are_equal, ut_assert_processor.nulls_are_equal()) );
45- self.assert_name := lower($$plsql_unit);
46- self.expected := ut_data_value_date('timestamp', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected);
55+ init(ut_data_value_date('timestamp', ut_utils.boolean_to_int(a_expected is null), ut_utils.to_string(a_expected), a_expected), a_nulls_are_equal);
4756 return;
4857 end;
4958
@@ -55,10 +64,7 @@ create or replace type body equal as
5564 when self.expected is of (ut_data_value_varchar2) then treat(self.expected as ut_data_value_varchar2).value
5665 end;
5766 return
58- self.build_assert_result(
59- ((l_expected = a_actual.value) or (a_actual.value is null and l_expected is null and ut_utils.int_to_boolean(self.nulls_are_equal)))
60- , a_actual
61- );
67+ self.build_assert_result((l_expected = a_actual.value), a_actual);
6268 end;
6369
6470 overriding member function run_expectation(self in equal, a_actual ut_data_value_number) return ut_assert_result is
@@ -69,10 +75,7 @@ create or replace type body equal as
6975 when self.expected is of (ut_data_value_number) then treat(self.expected as ut_data_value_number).value
7076 end;
7177 return
72- self.build_assert_result(
73- ((l_expected = a_actual.value) or (a_actual.value is null and l_expected is null and ut_utils.int_to_boolean(self.nulls_are_equal)) )
74- , a_actual
75- );
78+ self.build_assert_result((l_expected = a_actual.value), a_actual);
7679 end;
7780
7881 overriding member function run_expectation(self in equal, a_actual ut_data_value_clob) return ut_assert_result is
@@ -83,10 +86,7 @@ create or replace type body equal as
8386 when self.expected is of (ut_data_value_clob) then treat(self.expected as ut_data_value_clob).value
8487 end;
8588 return
86- self.build_assert_result(
87- ((l_expected = a_actual.value) or (a_actual.value is null and l_expected is null and ut_utils.int_to_boolean(self.nulls_are_equal)) )
88- , a_actual
89- );
89+ self.build_assert_result((l_expected = a_actual.value), a_actual);
9090 end;
9191
9292 overriding member function run_expectation(self in equal, a_actual ut_data_value_blob) return ut_assert_result is
@@ -97,10 +97,7 @@ create or replace type body equal as
9797 when self.expected is of (ut_data_value_blob) then treat(self.expected as ut_data_value_blob).value
9898 end;
9999 return
100- self.build_assert_result(
101- (dbms_lob.compare( l_expected, a_actual.value ) = 0 or (a_actual.value is null and l_expected is null and ut_utils.int_to_boolean(self.nulls_are_equal)) )
102- , a_actual
103- );
100+ self.build_assert_result((dbms_lob.compare( l_expected, a_actual.value ) = 0), a_actual);
104101 end;
105102
106103 overriding member function run_expectation(self in equal, a_actual ut_data_value_date) return ut_assert_result is
@@ -111,10 +108,7 @@ create or replace type body equal as
111108 when self.expected is of (ut_data_value_date) then treat(self.expected as ut_data_value_date).value
112109 end;
113110 return
114- self.build_assert_result(
115- ((l_expected = a_actual.value) or (a_actual.value is null and l_expected is null and ut_utils.int_to_boolean(self.nulls_are_equal)) )
116- , a_actual
117- );
111+ self.build_assert_result((l_expected = a_actual.value), a_actual );
118112 end;
119113
120114 overriding member function run_expectation(self in equal, a_actual ut_data_value_timestamp) return ut_assert_result is
@@ -125,10 +119,7 @@ create or replace type body equal as
125119 when self.expected is of (ut_data_value_timestamp) then treat(self.expected as ut_data_value_timestamp).value
126120 end;
127121 return
128- self.build_assert_result(
129- ((l_expected = a_actual.value) or (a_actual.value is null and l_expected is null and ut_utils.int_to_boolean(self.nulls_are_equal)) )
130- , a_actual
131- );
122+ self.build_assert_result((l_expected = a_actual.value), a_actual );
132123 end;
133124
134125end;
0 commit comments