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

Skip to content

Commit e6572da

Browse files
committed
Added support code nulls_are_equal.
Added tests for some asserts. Added usage of 'nulls_are_equal' functionality
1 parent 6c96ddd commit e6572da

13 files changed

Lines changed: 94 additions & 1 deletion

source/assertions/ut_assert_processor.pkb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@ create or replace package body ut_assert_processor as
22

33
g_asserts_called ut_assert_list := ut_assert_list();
44

5+
g_nulls_are_equal boolean_not_null := true;
6+
7+
function nulls_are_equal return boolean is
8+
begin
9+
return g_nulls_are_equal;
10+
end;
11+
12+
procedure nulls_are_equal(a_setting boolean_not_null) is
13+
begin
14+
g_nulls_are_equal := a_setting;
15+
end;
16+
517
function get_aggregate_asserts_result return integer is
618
l_result integer := ut_utils.tr_success;
719
begin

source/assertions/ut_assert_processor.pks

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
create or replace package ut_assert_processor authid current_user as
22

3+
subtype boolean_not_null is boolean not null;
4+
5+
function nulls_are_equal return boolean;
6+
7+
procedure nulls_are_equal(a_setting boolean_not_null);
8+
39
function get_aggregate_asserts_result return integer;
410

511
procedure clear_asserts;

source/assertions/ut_assertion_varchar.tpb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ create or replace type body ut_assertion_varchar as
1313
overriding member procedure to_be_equal(self in ut_assertion_varchar, a_expected varchar2) is
1414
begin
1515
ut_utils.debug_log('ut_assertion_varchar.to_be_equal(self in ut_assertion, a_expected varchar2)');
16-
self.build_assert_result( (a_expected = self.actual), 'to be equal', ut_utils.to_string(a_expected));
16+
self.build_assert_result(
17+
((a_expected is null and self.actual is null and ut_assert_processor.nulls_are_equal()) or (a_expected = self.actual))
18+
, 'to be equal', ut_utils.to_string(a_expected)
19+
);
1720
end;
1821

1922
member procedure to_be_like(self in ut_assertion_varchar, a_mask in varchar2, a_escape_char in varchar2 := null) is
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
--Arrange
2+
declare
3+
l_actual &&1 := &&2;
4+
l_expected &&1 := &&3;
5+
l_result integer;
6+
begin
7+
--Act
8+
ut.expect(l_actual).to_be_equal(l_expected);
9+
l_result := ut_assert_processor.get_aggregate_asserts_result();
10+
--Assert
11+
if l_result = &&4 then
12+
:test_result := ut_utils.tr_success;
13+
else
14+
dbms_output.put_line('expected: '''||&&4||''', got: '''||l_result||'''' );
15+
end if;
16+
end;
17+
/
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
--Arrange
2+
declare
3+
l_expected &&1 := &&2;
4+
l_actual &&1 := &&3;
5+
l_results ut_objects_list;
6+
l_test_message varchar2(30) := 'A test message';
7+
begin
8+
--Act
9+
ut.expect(l_actual, l_test_message).to_be_equal(l_expected);
10+
l_results := ut_assert_processor.get_asserts_results();
11+
--Assert
12+
if treat(l_results(1) as ut_assert_result).message like ''||l_test_message||'' then
13+
:test_result := ut_utils.tr_success;
14+
else
15+
dbms_output.put_line('expected: '''||treat(l_results(1) as ut_assert_result).message||''' to match ''%'||l_test_message||'%''' );
16+
end if;
17+
end;
18+
/
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
PROMPT Gives a failure when comparing different varchar2 values
2+
3+
@@asssertions/common/ut.expect.to_be_equal.scalar.common.sql 'varchar2(4000)' '''Abc''' '''abc''' 'ut_utils.tr_failure'
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
PROMPT Gives failure when actual is null
2+
3+
@@asssertions/common/ut.expect.to_be_equal.scalar.common.sql 'varchar2(4000)' 'NULL' '''abc''' 'ut_utils.tr_failure'
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
PROMPT Gives failure when expected is null
2+
3+
@@asssertions/common/ut.expect.to_be_equal.scalar.common.sql 'varchar2(4000)' '''abc''' 'NULL' 'ut_utils.tr_failure'
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
PROMPT Gives a success when comparing equal varchar2 values
2+
3+
@@asssertions/common/ut.expect.to_be_equal.scalar.common.sql 'varchar2(4000)' '''Abc''' '''Abc''' 'ut_utils.tr_success'
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
PROMPT Gives a success when both varchar2 values are null
2+
3+
@@asssertions/common/ut.expect.to_be_equal.scalar.common.sql 'varchar2(4000)' 'NULL' 'NULL' 'ut_utils.tr_success'

0 commit comments

Comments
 (0)