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

Skip to content

Commit b457d69

Browse files
committed
Updates to the ordering of sets to get consistent results.
1 parent a7f167c commit b457d69

2 files changed

Lines changed: 36 additions & 25 deletions

File tree

source/expectations/data_values/ut_compound_data_helper.pkb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,14 @@ create or replace package body ut_compound_data_helper is
186186
with diff_info as (select item_hash,pk_hash,duplicate_no from ut_compound_data_diff_tmp ucdc where diff_id = :diff_guid)
187187
select rn,diff_type,diffed_row,pk_value from
188188
(
189-
select diff_type,diffed_row, dense_rank() over (order by pk_hash) rn,pk_value from
189+
select
190+
diff_type, diffed_row,
191+
dense_rank() over (order by case when diff_type in ('Extra','Missing') then diff_type end,
192+
case when diff_type in ('Actual','Expected') then pk_hash end,
193+
case when diff_type in ('Extra','Missing') then pk_hash end,
194+
case when diff_type in ('Actual','Expected') then diff_type end) rn,
195+
pk_value, pk_hash
196+
from
190197
(
191198
select diff_type,diffed_row,pk_hash,pk_value from
192199
(select diff_type,data_item diffed_row,pk_hash,pk_value
@@ -264,6 +271,7 @@ create or replace package body ut_compound_data_helper is
264271
where exp.pk_hash is null or act.pk_hash is null
265272
)
266273
) where rn <= :max_rows
274+
order by rn, pk_hash, diff_type
267275
]'
268276
bulk collect into l_results
269277
using a_diff_id,
@@ -414,7 +422,10 @@ create or replace package body ut_compound_data_helper is
414422
) act
415423
on exp.row_hash = act.row_hash
416424
and exp.duplicate_no = act.duplicate_no
417-
where exp.row_hash is null or act.row_hash is null ) where rownum < :max_rows ]'
425+
where exp.row_hash is null or act.row_hash is null
426+
order by diffed_type, coalesce(exp.row_hash,act.row_hash), duplicate_no
427+
)
428+
where rownum < :max_rows ]'
418429
bulk collect into l_results
419430
using a_diff_id,
420431
a_exclude_xpath, a_include_xpath, a_expected_dataset_guid,

test/core/expectations/compound_data/test_expectations_cursor.pkb

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,10 +1073,10 @@ Rows: [ 2 differences ]%
10731073
--Act
10741074
ut3.ut.expect(l_actual).to_equal(l_expected).unordered;
10751075
l_expected_message := q'[%Actual: refcursor [ count = 2 ] was expected to equal: refcursor [ count = 2 ]%
1076-
Diff:%
1077-
Rows: [ 2 differences ]
1078-
Missing: <ROW><USERNAME>test</USERNAME><USER_ID>-667</USER_ID></ROW>%
1079-
Extra: <ROW><USERNAME>test</USERNAME><USER_ID>-666</USER_ID></ROW>%]';
1076+
%Diff:%
1077+
%Rows: [ 2 differences ]%
1078+
%Extra: <ROW><USERNAME>test</USERNAME><USER_ID>-666</USER_ID></ROW>%
1079+
%Missing: <ROW><USERNAME>test</USERNAME><USER_ID>-667</USER_ID></ROW>%]';
10801080
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
10811081
--Assert
10821082
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -1284,8 +1284,8 @@ Diff:%
12841284
l_expected_message := q'[%Actual: refcursor [ count = % ] was expected to equal: refcursor [ count = % ]
12851285
%Diff:%
12861286
%Rows: [ 1 differences ]%
1287-
%PK <USERNAME>TEST</USERNAME> - Expected:%<USER_ID>-600</USER_ID>%
1288-
%PK <USERNAME>TEST</USERNAME> - Actual:%<USER_ID>-610</USER_ID>%]';
1287+
%PK <USERNAME>TEST</USERNAME> - Actual:%<USER_ID>-610</USER_ID>%
1288+
%PK <USERNAME>TEST</USERNAME> - Expected:%<USER_ID>-600</USER_ID>%]';
12891289
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
12901290
--Assert
12911291
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -1310,8 +1310,8 @@ Diff:%
13101310
l_expected_message := q'[%Actual: refcursor [ count = % ] was expected to equal: refcursor [ count = % ]
13111311
%Diff:%
13121312
%Rows: [ 2 differences ]%
1313-
%PK <USERNAME>TEST</USERNAME><USER_ID>-600</USER_ID> - Missing %
1314-
%PK <USERNAME>TEST</USERNAME><USER_ID>-610</USER_ID> - Extra %]';
1313+
%PK <USERNAME>TEST</USERNAME><USER_ID>-610</USER_ID> - Extra%
1314+
%PK <USERNAME>TEST</USERNAME><USER_ID>-600</USER_ID> - Missing%]';
13151315
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
13161316
--Assert
13171317
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -1336,8 +1336,8 @@ Diff:%
13361336
l_expected_message := q'[%Actual: refcursor [ count = % ] was expected to equal: refcursor [ count = % ]
13371337
%Diff:%
13381338
%Rows: [ 1 differences ]%
1339-
%PK <USERNAME>TEST</USERNAME><IS_VALID>Y</IS_VALID> - Expected:%<USER_ID>-600</USER_ID>%
1340-
%PK <USERNAME>TEST</USERNAME><IS_VALID>Y</IS_VALID> - Actual:%<USER_ID>-610</USER_ID>%]';
1339+
%PK <USERNAME>TEST</USERNAME><IS_VALID>Y</IS_VALID> - Actual:%<USER_ID>-610</USER_ID>%
1340+
%PK <USERNAME>TEST</USERNAME><IS_VALID>Y</IS_VALID> - Expected:%<USER_ID>-600</USER_ID>%]';
13411341
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
13421342
--Assert
13431343
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -1493,11 +1493,11 @@ Diff:%
14931493
l_expected_message := q'[%Actual: refcursor [ count = 2 ] was expected to equal: refcursor [ count = 3 ]%
14941494
Diff:%
14951495
Rows: [ 5 differences ]
1496-
Missing: <ROW><COLVAL><ID>1</ID><name>Somethings 1</name><Value>1</Value></COLVAL></ROW>%
1497-
Missing: <ROW><COLVAL><ID>2</ID><name>Somethings 2</name><Value>2</Value></COLVAL></ROW>%
1498-
Missing: <ROW><COLVAL><ID>3</ID><name>Somethings 3</name><Value>3</Value></COLVAL></ROW>%
1499-
Extra: <ROW><COLVAL><ID>1</ID><name>Something 1</name><Value>1</Value></COLVAL></ROW>%
1500-
Extra: <ROW><COLVAL><ID>2</ID><name>Something 2</name><Value>2</Value></COLVAL></ROW>%]';
1496+
%Extra: <ROW><COLVAL><ID>2</ID><name>Something 2</name><Value>2</Value></COLVAL></ROW>%
1497+
%Extra: <ROW><COLVAL><ID>1</ID><name>Something 1</name><Value>1</Value></COLVAL></ROW>%
1498+
%Missing: <ROW><COLVAL><ID>1</ID><name>Somethings 1</name><Value>1</Value></COLVAL></ROW>%
1499+
%Missing: <ROW><COLVAL><ID>2</ID><name>Somethings 2</name><Value>2</Value></COLVAL></ROW>%
1500+
%Missing: <ROW><COLVAL><ID>3</ID><name>Somethings 3</name><Value>3</Value></COLVAL></ROW>%]';
15011501
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
15021502
--Assert
15031503
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -1621,10 +1621,10 @@ Diff:%
16211621
l_expected_message := q'[%Actual: refcursor [ count = 2 ] was expected to equal: refcursor [ count = 2 ]%
16221622
%Diff:%
16231623
%Rows: [ 2 differences ]%
1624-
%PK <KEY>1</KEY> - Expected: <VALUE>Somethings 1</VALUE>%
1625-
%PK <KEY>1</KEY> - Actual: <VALUE>Something 1</VALUE>%
1626-
%PK <KEY>2</KEY> - Expected: <VALUE>Somethings 2</VALUE>%
1627-
%PK <KEY>2</KEY> - Actual: <VALUE>Something 2</VALUE>%]';
1624+
%PK <KEY>%</KEY> - Actual: <VALUE>%</VALUE>%
1625+
%PK <KEY>%</KEY> - Expected: <VALUE>%</VALUE>%
1626+
%PK <KEY>%</KEY> - Actual: <VALUE>%</VALUE>%
1627+
%PK <KEY>%</KEY> - Expected: <VALUE>%</VALUE>%]';
16281628
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
16291629
--Assert
16301630
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -1688,10 +1688,10 @@ Diff:%
16881688
l_expected_message := q'[%Actual: refcursor [ count = 2 ] was expected to equal: refcursor [ count = 2 ]%
16891689
%Diff:%
16901690
%Rows: [ 4 differences ]%
1691-
%PK <KEY>1</KEY><VALUE>Somethings 1</VALUE> - Missing%
1692-
%PK <KEY>2</KEY><VALUE>Somethings 2</VALUE> - Missing%
1693-
%PK <KEY>2</KEY><VALUE>Something 2</VALUE> - Extra%
1694-
%PK <KEY>1</KEY><VALUE>Something 1</VALUE> - Extra%]';
1691+
%PK <KEY>%</KEY><VALUE>%</VALUE> - Extra%
1692+
%PK <KEY>%</KEY><VALUE>%</VALUE> - Extra%
1693+
%PK <KEY>%</KEY><VALUE>%</VALUE> - Missing%
1694+
%PK <KEY>%</KEY><VALUE>%</VALUE> - Missing%]';
16951695
l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
16961696
--Assert
16971697
ut.expect(l_actual_message).to_be_like(l_expected_message);

0 commit comments

Comments
 (0)