8000 Update display of comparing cursor on different data-types to not dis… · utPLSQL/utPLSQL@3573ae9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3573ae9

Browse files
committed
Update display of comparing cursor on different data-types to not displaying a full structure.
Added tests to check that display message.
1 parent f192ca8 commit 3573ae9

File tree

3 files changed

+72
-4
lines changed

3 files changed

+72
-4
lines changed

source/expectations/data_values/ut_compound_data_helper.pkb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,13 +79,16 @@ create or replace package body ut_compound_data_helper is
7979
execute immediate q'[with
8080
expected_cols as (
8181
select access_path exp_column_name,column_position exp_col_pos,
82-
replace(column_type,'VARCHAR2','CHAR') exp_col_type_compare, column_type exp_col_type
82+
replace(column_type_name,'VARCHAR2','CHAR') exp_col_type_compare, column_type_name exp_col_type
8383
from table(:a_expected)
84+
where parent_name is null and hierarchy_level = 1 and column_name is not null
8485
),
8586
actual_cols as (
8687
select access_path act_column_name,column_position act_col_pos,
87-
replace(column_type,'VARCHAR2','CHAR') act_col_type_compare, column_type act_col_type
88-
from table(:a_actual)),
88+
replace(column_type_name,'VARCHAR2','CHAR') act_col_type_compare, column_type_name act_col_type
89+
from table(:a_actual)
90+
where parent_name is null and hierarchy_level = 1 and column_name is not null
91+
),
8992
joined_cols as (
9093
select e.*,a.*]'
9194
|| case when a_order_enforced then ',

test/core/expectations/test_expectations_cursor.pkb

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2465,5 +2465,65 @@ Diff:%
24652465
ut.expect(l_actual_message).to_be_like(l_expected_message);
24662466
end;
24672467

2468+
procedure udt_messg_format_eq is
2469+
l_actual sys_refcursor;
2470+
l_expected sys_refcursor;
2471+
l_expected_tab ut3.ut_key_value_pairs := ut3.ut_key_value_pairs();
2472+
l_expected_me 8000 ssage varchar2(32767);
2473+
l_actual_message varchar2(32767);
2474+
begin
2475+
select ut3.ut_key_value_pair(rownum,'Something '||rownum)
2476+
bulk collect into l_expected_tab
2477+
from dual connect by level <=2;
2478+
2479+
--Arrange
2480+
open l_actual for select object_name, owner from all_objects where rownum < 3;
2481+
open l_expected for select value(x) as udt from table(l_expected_tab) x;
2482+
2483+
--Act
2484+
ut3.ut.expect(l_actual).to_contain(l_expected);
2485+
--Assert
2486+
l_expected_message := q'[%Actual: refcursor [ count = 2 ] was expected to contain: refcursor [ count = 2 ]
2487+
%Diff:
2488+
%Columns:
2489+
%Column <UDT> [data-type: UT_KEY_VALUE_PAIR] is missing. Expected column position: 1.
2490+
%Column <OBJECT_NAME> [position: 1, data-type: VARCHAR2] is not expected in results.
2491+
%Column <OWNER> [position: 2, data-type: VARCHAR2] is not expected in results.
2492+
%Rows: [ 2 differences ]
2493+
%Missing: <UDT><KEY>1</KEY><VALUE>Something 1</VALUE></UDT>
2494+
%Missing: <UDT><KEY>2</KEY><VALUE>Something 2</VALUE></UDT>%]';
2495+
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
2496+
--Assert
2497+
ut.expect(l_actual_message).to_be_like(l_expected_message);
2498+
end;
2499+
2500+
procedure udt_messg_format_empt is
2501+
l_actual sys_refcursor;
2502+
l_actual_tab ut3.ut_key_value_pairs := ut3.ut_key_value_pairs();
2503+
l_actual_message varchar2(32767);
2504+
l_expected_message varchar2(32767);
2505+
begin
2506+
select ut3.ut_key_value_pair(rownum,'Something '||rownum)
2507+
bulk collect into l_actual_tab
2508+
from dual connect by level <=2;
2509+
2510+
--Arrange
2511+
open l_actual for select value(x) as udt from table(l_actual_tab) x;
2512+
2513+
--Act
2514+
ut3.ut.expect(l_actual).to_be_empty();
2515+
--Assert
2516+
l_expected_message := q'[%Actual: (refcursor [ count = 2 ])
2517+
%Data-types:
2518+
%<UDT>UT_KEY_VALUE_PAIR</UDT>
2519+
%Data:
2520+
%<ROW><UDT><KEY>1</KEY><VALUE>Something 1</VALUE></UDT></ROW><ROW><UDT><KEY>2</KEY><VALUE>Something 2</VALUE></UDT></ROW>
2521+
%was expected to be empty%]';
2522+
2523+
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
2524+
--Assert
2525+
ut.expect(l_actual_message).to_be_like(l_expected_message);
2526+
end;
2527+
24682528
end;
24692529
/

test/core/expectations/test_expectations_cursor.pks

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,11 @@ create or replace package test_expectations_cursor is
390390

391391
--%test(Cursor to contain duplicates fail)
392392
procedure to_contain_duplicates_fail;
393-
393+
394+
--%test(Display a message with a uer defined type with only type name not structure on equal)
395+
procedure udt_messg_format_eq;
396+
397+
--%test(Display a message with a uer defined type with only type name not structure on empty)
398+
procedure udt_messg_format_empt;
394399
end;
395400
/

0 commit comments

Comments
 (0)
0