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

Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Changes according to @jgebal comments
Added tests for regexp_like
added failure tests
  • Loading branch information
Pazus committed Oct 1, 2016
commit 49c9c321dd1ae1aebb79cb556e09c2d4359b8cb7
22 changes: 11 additions & 11 deletions source/ut_assert.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -147,34 +147,34 @@ create or replace package body ut_assert is
end;

-- Strings assertions
procedure str_like(a_msg in varchar2, a_checking_string in varchar2, a_mask in varchar, a_escape_char in varchar2) is
procedure is_like(a_msg in varchar2, a_checking_string in varchar2, a_mask in varchar, a_escape_char in varchar2) is
l_condition boolean;
begin
if a_escape_char is not null then
l_condition := a_checking_string like a_mask escape a_escape_char;
else
l_condition := a_checking_string like a_mask;
end if;
build_assert_result(l_condition, 'str_like', 'varchar2', 'varchar2', ut_utils.to_string('like ' || a_mask), ut_utils.to_string(l_condition), a_msg);
build_assert_result(l_condition, 'is_like', 'varchar2', 'varchar2', ut_utils.to_string('like ' || a_mask), ut_utils.to_string(l_condition), a_msg);
end;
procedure str_like(a_msg in varchar2, a_checking_string in varchar2, a_mask in varchar) is
procedure is_like(a_msg in varchar2, a_checking_string in varchar2, a_mask in varchar) is
begin
str_like(a_msg, a_checking_string, a_mask, null);
is_like(a_msg, a_checking_string, a_mask, null);
end;
procedure str_like(a_checking_string in varchar2, a_mask in varchar2) is
procedure is_like(a_checking_string in varchar2, a_mask in varchar2) is
begin
str_like(a_msg => null, a_checking_string => a_checking_string, a_mask => a_mask);
is_like(a_msg => null, a_checking_string => a_checking_string, a_mask => a_mask);
end;

procedure regexp_like(a_msg in varchar2, a_srcstr in varchar2, a_pattern in varchar2, a_modifier in varchar2 default null) is
l_condition boolean := sys.standard.regexp_like(a_srcstr, a_pattern, a_pattern);
procedure is_matching(a_msg in varchar2, a_checking_string in varchar2, a_pattern in varchar2, a_modifier in varchar2 default null) is
l_condition boolean := sys.standard.regexp_like(a_checking_string, a_pattern, a_modifier);
begin
build_assert_result(l_condition, 'regexp_like', 'varchar2', 'varchar2', ut_utils.to_string('pattern ' || a_pattern), ut_utils.to_string(l_condition), a_msg);
build_assert_result(l_condition, 'is_matching', 'varchar2', 'varchar2', ut_utils.to_string('pattern ' || a_pattern), ut_utils.to_string(l_condition), a_msg);
end;

procedure regexp_like(a_srcstr in varchar2, a_pattern in varchar2, a_modifier in varchar2 default null) is
procedure is_matching(a_checking_string in varchar2, a_pattern in varchar2, a_modifier in varchar2 default null) is
begin
regexp_like(null, a_srcstr, a_pattern, a_modifier);
is_matching(null, a_checking_string, a_pattern, a_modifier);
end;

procedure is_null(a_actual in number) is
Expand Down
12 changes: 6 additions & 6 deletions source/ut_assert.pks
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@ create or replace package ut_assert authid current_user as
procedure are_equal(a_msg in varchar2, a_expected in sys_refcursor, a_actual in sys_refcursor);
procedure are_equal(a_expected in sys_refcursor, a_actual in sys_refcursor);

-- Strings assertions
procedure str_like(a_msg in varchar2, a_checking_string in varchar2, a_mask in varchar, a_escape_char in varchar2);
procedure str_like(a_msg in varchar2, a_checking_string in varchar2, a_mask in varchar);
procedure str_like(a_checking_string in varchar2, a_mask in varchar2);
-- Pattern matching assertions
procedure is_like(a_msg in varchar2, a_checking_string in varchar2, a_mask in varchar, a_escape_char in varchar2);
procedure is_like(a_msg in varchar2, a_checking_string in varchar2, a_mask in varchar);
procedure is_like(a_checking_string in varchar2, a_mask in varchar2);

procedure regexp_like(a_msg in varchar2, a_srcstr in varchar2,a_pattern in varchar2, a_modifier in varchar2 default null);
procedure regexp_like(a_srcstr in varchar2,a_pattern in varchar2, a_modifier in varchar2 default null);
procedure is_matching(a_msg in varchar2, a_checking_string in varchar2,a_pattern in varchar2, a_modifier in varchar2 default null);
procedure is_matching(a_checking_string in varchar2,a_pattern in varchar2, a_modifier in varchar2 default null);

procedure is_null(a_actual in number);
procedure is_null(a_msg in varchar2, a_actual in number);
Expand Down
10 changes: 8 additions & 2 deletions tests/RunAll.sql
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,6 @@ set serveroutput on size unlimited format truncated
@@lib/RunTest.sql ut_assert/ut_assert.are_equal.varchar2.GivesFailureWhenBothAreNull.sql
@@lib/RunTest.sql ut_assert/ut_assert.are_equal.varchar2.GivesFailureWhenExpectedIsNull.sql
@@lib/RunTest.sql ut_assert/ut_assert.are_equal.varchar2.GivesSuccessForEqualValues.sql
@@lib/RunTest.sql ut_assert/ut_assert.are_equal.varchar2.GivesSuccessForLikeString.sql
@@lib/RunTest.sql ut_assert/ut_assert.are_equal.varchar2.GivesSuccessForLikeStringWithEscape.sql
@@lib/RunTest.sql ut_assert/ut_assert.are_equal.varchar2.with_text.GivesTheProvidedTextAsMessage.sql

@@lib/RunTest.sql ut_assert/ut_assert.are_equal.date.GivesFailureForDifferentValues.sql
Expand Down Expand Up @@ -82,6 +80,14 @@ set serveroutput on size unlimited format truncated
@@lib/RunTest.sql ut_assert/ut_assert.is_null.date.GivesFailureForNotNullValue.sql
@@lib/RunTest.sql ut_assert/ut_assert.is_null.date.GivesSuccessForNullValue.sql

@@lib/RunTest.sql ut_assert/ut_assert.is_like.GivesSuccessForLikeString.sql
@@lib/RunTest.sql ut_assert/ut_assert.is_like.GivesSuccessForLikeStringWithEscape.sql
@@lib/RunTest.sql ut_assert/ut_assert.is_like.GivesFailureForLikeString.sql
@@lib/RunTest.sql ut_assert/ut_assert.is_like.GivesFailureForLikeStringWithEscape.sql
@@lib/RunTest.sql ut_assert/ut_assert.is_matching.GivesSuccessForMatchingString.sql
@@lib/RunTest.sql ut_assert/ut_assert.is_matching.GivesSuccessForMatchingStringWithModifier.sql
@@lib/RunTest.sql ut_assert/ut_assert.is_matching.GivesFailureForMatchingString.sql

@@lib/RunTest.sql ut_utils/ut_utils.to_string.verySmallNumber.sql
@@lib/RunTest.sql ut_utils/ut_utils.to_string.veryBigNumber.sql
@@lib/RunTest.sql ut_utils/ut_utils.to_string.Date.sql
Expand Down
17 changes: 17 additions & 0 deletions tests/ut_assert/ut_assert.is_like.GivesFailureForLikeString.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
--Arrange
declare
l_mask varchar2(10) := 'a%b';
l_string varchar2(50) := 'asdfsdfsdfc';
l_result integer;
begin
--Act
ut_assert.is_like(l_string, l_mask);
l_result := ut_assert.get_aggregate_asserts_result();
--Assert
if l_result = ut_utils.tr_failure then
:test_result := ut_utils.tr_success;
else
dbms_output.put_line('expected: string like'''||l_mask||''', got: '''||l_result||'''' );
end if;
end;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
--Arrange
declare
l_mask varchar2(10) := 'a%\_b';
l_string varchar2(50) := 'asdfsdfsdf_b';
l_result integer;
begin
--Act
ut_assert.is_like('', l_string, l_mask, '/');
l_result := ut_assert.get_aggregate_asserts_result();
--Assert
if l_result = ut_utils.tr_failure then
:test_result := ut_utils.tr_success;
else
dbms_output.put_line('expected: string like'''||l_mask||''' with escape ''/'', got: '''||l_result||'''' );
end if;
end;
/
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ declare
l_result integer;
begin
--Act
ut_assert.str_like(l_string, l_mask);
ut_assert.is_like(l_string, l_mask);
l_result := ut_assert.get_aggregate_asserts_result();
--Assert
if l_result = ut_utils.tr_success then
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ declare
l_result integer;
begin
--Act
ut_assert.str_like('', l_string, l_mask, '/');
ut_assert.is_like('', l_string, l_mask, '/');
l_result := ut_assert.get_aggregate_asserts_result();
--Assert
if l_result = ut_utils.tr_success then
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
PL/SQL Developer Test script 3.0
17
--Arrange
declare
l_mask varchar2(20) := '[a-z]+\d[a-z]+';
l_string varchar2(50) := 'asd123asd';
l_result integer;
begin
--Act
ut_assert.is_matching(l_string, l_mask);
l_result := ut_assert.get_aggregate_asserts_result();
--Assert
if l_result = ut_utils.tr_failure then
:test_result := ut_utils.tr_success;
else
dbms_output.put_line('expected: string like'''||l_mask||''', got: '''||l_result||'''' );
end if;
end;
--/
1
test_result
0
5
0
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
--Arrange
declare
l_mask varchar2(20) := '[a-z]+\d+[a-z]+';
l_string varchar2(50) := 'asd123asd';
l_result integer;
begin
--Act
ut_assert.is_matching(l_string, l_mask);
l_result := ut_assert.get_aggregate_asserts_result();
--Assert
if l_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
else
dbms_output.put_line('expected: string like'''||l_mask||''', got: '''||l_result||'''' );
end if;
end;
/
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
--Arrange
declare
l_mask varchar2(20) := '[a-z]+\d+[a-z]+';
l_string varchar2(50) := 'asd123asd';
l_result integer;
begin
--Act
ut_assert.is_matching(l_string, l_mask);
l_result := ut_assert.get_aggregate_asserts_result();
--Assert
if l_result = ut_utils.tr_success then
:test_result := ut_utils.tr_success;
else
dbms_output.put_line('expected: string like'''||l_mask||''', got: '''||l_result||'''' );
end if;
end;
/