Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
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
Next Next commit
Update display of comparing cursor on different data-types to not dis…
…playing a full structure.

Added tests to check that display message.
  • Loading branch information
lwasylow committed Mar 22, 2019
commit 3573ae931e3fad8b7770150065b8d2229f7ec263
9 changes: 6 additions & 3 deletions source/expectations/data_values/ut_compound_data_helper.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,16 @@ create or replace package body ut_compound_data_helper is
execute immediate q'[with
expected_cols as (
select access_path exp_column_name,column_position exp_col_pos,
replace(column_type,'VARCHAR2','CHAR') exp_col_type_compare, column_type exp_col_type
replace(column_type_name,'VARCHAR2','CHAR') exp_col_type_compare, column_type_name exp_col_type
from table(:a_expected)
where parent_name is null and hierarchy_level = 1 and column_name is not null
),
actual_cols as (
select access_path act_column_name,column_position act_col_pos,
replace(column_type,'VARCHAR2','CHAR') act_col_type_compare, column_type act_col_type
from table(:a_actual)),
replace(column_type_name,'VARCHAR2','CHAR') act_col_type_compare, column_type_name act_col_type
from table(:a_actual)
where parent_name is null and hierarchy_level = 1 and column_name is not null
),
joined_cols as (
select e.*,a.*]'
|| case when a_order_enforced then ',
Expand Down
60 changes: 60 additions & 0 deletions test/core/expectations/test_expectations_cursor.pkb
Original file line number Diff line number Diff line change
Expand Up @@ -2465,5 +2465,65 @@ Diff:%
ut.expect(l_actual_message).to_be_like(l_expected_message);
end;

procedure udt_messg_format_eq is
l_actual sys_refcursor;
l_expected sys_refcursor;
l_expected_tab ut3.ut_key_value_pairs := ut3.ut_key_value_pairs();
l_expected_message varchar2(32767);
l_actual_message varchar2(32767);
begin
select ut3.ut_key_value_pair(rownum,'Something '||rownum)
bulk collect into l_expected_tab
from dual connect by level <=2;

--Arrange
open l_actual for select object_name, owner from all_objects where rownum < 3;
open l_expected for select value(x) as udt from table(l_expected_tab) x;

--Act
ut3.ut.expect(l_actual).to_contain(l_expected);
--Assert
l_expected_message := q'[%Actual: refcursor [ count = 2 ] was expected to contain: refcursor [ count = 2 ]
%Diff:
%Columns:
%Column <UDT> [data-type: UT_KEY_VALUE_PAIR] is missing. Expected column position: 1.
%Column <OBJECT_NAME> [position: 1, data-type: VARCHAR2] is not expected in results.
%Column <OWNER> [position: 2, data-type: VARCHAR2] is not expected in results.
%Rows: [ 2 differences ]
%Missing: <UDT><KEY>1</KEY><VALUE>Something 1</VALUE></UDT>
%Missing: <UDT><KEY>2</KEY><VALUE>Something 2</VALUE></UDT>%]';
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
--Assert
ut.expect(l_actual_message).to_be_like(l_expected_message);
end;

procedure udt_messg_format_empt is
l_actual sys_refcursor;
l_actual_tab ut3.ut_key_value_pairs := ut3.ut_key_value_pairs();
l_actual_message varchar2(32767);
l_expected_message varchar2(32767);
begin
select ut3.ut_key_value_pair(rownum,'Something '||rownum)
bulk collect into l_actual_tab
from dual connect by level <=2;

--Arrange
open l_actual for select value(x) as udt from table(l_actual_tab) x;

--Act
ut3.ut.expect(l_actual).to_be_empty();
--Assert
l_expected_message := q'[%Actual: (refcursor [ count = 2 ])
%Data-types:
%<UDT>UT_KEY_VALUE_PAIR</UDT>
%Data:
%<ROW><UDT><KEY>1</KEY><VALUE>Something 1</VALUE></UDT></ROW><ROW><UDT><KEY>2</KEY><VALUE>Something 2</VALUE></UDT></ROW>
%was expected to be empty%]';

l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
--Assert
ut.expect(l_actual_message).to_be_like(l_expected_message);
end;

end;
/
7 changes: 6 additions & 1 deletion test/core/expectations/test_expectations_cursor.pks
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,11 @@ create or replace package test_expectations_cursor is

--%test(Cursor to contain duplicates fail)
procedure to_contain_duplicates_fail;


--%test(Display a message with a uer defined type with only type name not structure on equal)
procedure udt_messg_format_eq;

--%test(Display a message with a uer defined type with only type name not structure on empty)
procedure udt_messg_format_empt;
end;
/