Skip to content

Commit bab43b0

Browse files
committed
Fixing join_by / exclude / include for collections
1 parent e088211 commit bab43b0

2 files changed

Lines changed: 30 additions & 29 deletions

File tree

source/expectations/data_values/ut_data_value_anydata.tpb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ create or replace type body ut_data_value_anydata as
2828
l_path := '/*/*';
2929
else
3030
case when ut_metadata.has_collection_members(a_data_value) then
31-
l_path := '/*/*';
31+
l_path := '/*';
3232
else
3333
l_path := '/*';
3434
end case;
@@ -48,9 +48,7 @@ create or replace type body ut_data_value_anydata as
4848
begin
4949
l_status := l_value.get'||self.compound_type||'(l_data); '||
5050
case when self.compound_type = 'collection' then
51-
q'[ open :l_tmp_refcursor for select value(x) as "]'||
52-
ut_metadata.get_object_name(ut_metadata.get_collection_element(a_data_value))||
53-
q'[" from table(l_data) x;]'
51+
q'[ open :l_tmp_refcursor for select * from table(l_data) x;]'
5452
else
5553
q'[ open :l_tmp_refcursor for select l_data as "]'||ut_metadata.get_object_name(self.data_type)||
5654
q'[" from dual;]'

test/ut3_user/expectations/test_expectation_anydata.pkb

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ create or replace package body test_expectation_anydata is
129129
l_expected_message := q'[%Actual: ut3_tester_helper.test_dummy_object_list [ count = ] was expected to equal: ut3_tester_helper.test_dummy_object_list [ count = 1 ]
130130
%Diff:
131131
%Rows: [ 1 differences ]
132-
%Row No. 1 - Missing: <TEST_DUMMY_OBJECT><ID>1</ID><name>A</name><Value>0</Value></TEST_DUMMY_OBJECT>]';
132+
%Row No. 1 - Missing: <ID>1</ID><name>A</name><Value>0</Value>]';
133133
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
134134
--Assert
135135
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -148,7 +148,7 @@ create or replace package body test_expectation_anydata is
148148
l_expected_message := q'[%Actual: ut3_tester_helper.test_dummy_object_list [ count = 0 ] was expected to equal: ut3_tester_helper.test_dummy_object_list [ count = 1 ]
149149
%Diff:
150150
%Rows: [ 1 differences ]
151-
%Row No. 1 - Missing: <TEST_DUMMY_OBJECT><ID>1</ID><name>A</name><Value>0</Value></TEST_DUMMY_OBJECT>]';
151+
%Row No. 1 - Missing: <ID>1</ID><name>A</name><Value>0</Value>]';
152152
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
153153
--Assert
154154
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -169,7 +169,7 @@ create or replace package body test_expectation_anydata is
169169
l_expected_message := q'[%Actual: ut3_tester_helper.test_dummy_object_list [ count = 2 ] was expected to equal: ut3_tester_helper.test_dummy_object_list [ count = 1 ]
170170
%Diff:
171171
%Rows: [ 1 differences ]
172-
%Row No. 2 - Extra: <TEST_DUMMY_OBJECT><ID>1</ID><name>A</name><Value>0</Value></TEST_DUMMY_OBJECT>]';
172+
%Row No. 2 - Extra: <ID>1</ID><name>A</name><Value>0</Value>]';
173173
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
174174
--Assert
175175
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -412,7 +412,7 @@ Rows: [ 1 differences ]
412412
l_expected := q'[Actual: ut3_tester_helper.test_dummy_object_list [ count = 2 ] was expected to equal: ut3_tester_helper.test_dummy_object_list [ count = 1 ]
413413
Diff:
414414
Rows: [ 1 differences ]
415-
Row No. 2 - Extra: <TEST_DUMMY_OBJECT><ID>1</ID><name>A</name><Value>0</Value></TEST_DUMMY_OBJECT>]';
415+
Row No. 2 - Extra: <ID>1</ID><name>A</name><Value>0</Value>]';
416416
--Act
417417
ut3.ut.expect( g_test_actual ).to_equal( g_test_expected );
418418
--Assert
@@ -548,7 +548,7 @@ Rows: [ 60 differences, showing first 20 ]
548548
l_expected ut3_tester_helper.test_dummy_object_list;
549549
l_list ut3.ut_varchar2_list;
550550
begin
551-
l_list := ut3.ut_varchar2_list('TEST_DUMMY_OBJECT/Value','TEST_DUMMY_OBJECT/ID');
551+
l_list := ut3.ut_varchar2_list('Value','ID');
552552
--Arrange
553553
select ut3_tester_helper.test_dummy_object( rownum, 'SomethingsDifferent '||rownum, rownum)
554554
bulk collect into l_actual
@@ -567,7 +567,7 @@ Rows: [ 60 differences, showing first 20 ]
567567
l_expected ut3_tester_helper.test_dummy_object_list;
568568
l_list ut3.ut_varchar2_list;
569569
begin
570-
l_list := ut3.ut_varchar2_list('TEST_DUMMY_OBJECT/Value','TEST_DUMMY_OBJECT/ID');
570+
l_list := ut3.ut_varchar2_list('Value','ID');
571571
--Arrange
572572
select ut3_tester_helper.test_dummy_object( rownum*2, 'Something '||rownum, rownum*2)
573573
bulk collect into l_actual
@@ -588,7 +588,7 @@ Rows: [ 60 differences, showing first 20 ]
588588
l_actual_message varchar2(32767);
589589
l_expected_message varchar2(32767);
590590
begin
591-
l_list := ut3.ut_varchar2_list('TEST_DUMMY_OBJECT/name');
591+
l_list := ut3.ut_varchar2_list('name');
592592
--Arrange
593593
select ut3_tester_helper.test_dummy_object( rownum, 'SomethingsDifferent '||rownum, rownum)
594594
bulk collect into l_actual
@@ -599,10 +599,13 @@ Rows: [ 60 differences, showing first 20 ]
599599
--Act
600600
ut3.ut.expect(anydata.convertCollection(l_actual)).to_equal(anydata.convertCollection(l_expected)).include( l_list );
601601

602-
l_expected_message := q'[%Actual: ut3_tester_helper.test_dummy_object_list [ count = 2 ] was expected to equal: ut3_tester_helper.test_dummy_object_list [ count = 2 ]
602+
l_expected_message := q'[%Actual: ut3_tester_helper.test_dummy_object_list [ count = 2 ] was expected to equal: ut3_tester_helper.test_dummy_object_list [ count = 2 ]%
603603
%Diff:
604604
%Rows: [ 2 differences ]
605-
%All rows are different as the columns are not matching.]';
605+
%Row No. 1 - Actual: <name>SomethingsDifferent 1</name>
606+
%Row No. 1 - Expected: <name>Something 1</name>
607+
%Row No. 2 - Actual: <name>SomethingsDifferent 2</name>
608+
%Row No. 2 - Expected: <name>Something 2</name>]';
606609
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
607610
--Assert
608611
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -630,8 +633,8 @@ Rows: [ 60 differences, showing first 20 ]
630633
l_expected_message := q'[%Actual: ut3_tester_helper.t_tab_varchar [ count = 1 ] was expected to equal: ut3_tester_helper.t_tab_varchar [ count = 1 ]
631634
%Diff:
632635
%Rows: [ 1 differences ]
633-
%Row No. 1 - Actual: <T_TAB_VARCHAR>B</T_TAB_VARCHAR>
634-
%Row No. 1 - Expected: <T_TAB_VARCHAR>A</T_TAB_VARCHAR>]';
636+
%Row No. 1 - Actual: <COLUMN_VALUE>B</COLUMN_VALUE>
637+
%Row No. 1 - Expected: <COLUMN_VALUE>A</COLUMN_VALUE>]';
635638
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
636639
--Assert
637640
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -665,7 +668,7 @@ Rows: [ 60 differences, showing first 20 ]
665668
l_expected_message := q'[%Actual: ut3_tester_helper.t_tab_varchar [ count = 1 ] was expected to equal: ut3_tester_helper.t_tab_varchar [ count = ]
666669
%Diff:
667670
%Rows: [ 1 differences ]
668-
%Row No. 1 - Extra: <T_TAB_VARCHAR>A</T_TAB_VARCHAR>]';
671+
%Row No. 1 - Extra: <COLUMN_VALUE>A</COLUMN_VALUE>]';
669672
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
670673
--Assert
671674
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -700,7 +703,7 @@ Rows: [ 60 differences, showing first 20 ]
700703
l_expected_message := q'[%Actual: ut3_tester_helper.t_tab_varchar [ count = 1 ] was expected to equal: ut3_tester_helper.t_tab_varchar [ count = 0 ]
701704
%Diff:
702705
%Rows: [ 1 differences ]
703-
%Row No. 1 - Extra: <T_TAB_VARCHAR>A</T_TAB_VARCHAR>]';
706+
%Row No. 1 - Extra: <COLUMN_VALUE>A</COLUMN_VALUE>]';
704707
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
705708
--Assert
706709
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -750,8 +753,8 @@ Rows: [ 60 differences, showing first 20 ]
750753
l_expected_message := q'[%Actual: ut3_tester_helper.t_varray [ count = 1 ] was expected to equal: ut3_tester_helper.t_varray [ count = 1 ]
751754
%Diff:
752755
%Rows: [ 1 differences ]
753-
%Row No. 1 - Actual: <T_VARRAY>2</T_VARRAY>
754-
%Row No. 1 - Expected: <T_VARRAY>1</T_VARRAY>]';
756+
%Row No. 1 - Actual: <COLUMN_VALUE>2</COLUMN_VALUE>
757+
%Row No. 1 - Expected: <COLUMN_VALUE>1</COLUMN_VALUE>]';
755758
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
756759
--Assert
757760
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -785,7 +788,7 @@ Rows: [ 60 differences, showing first 20 ]
785788
l_expected_message := q'[%Actual: ut3_tester_helper.t_varray [ count = 1 ] was expected to equal: ut3_tester_helper.t_varray [ count = ]
786789
%Diff:
787790
%Rows: [ 1 differences ]
788-
%Row No. 1 - Extra: <T_VARRAY>1</T_VARRAY>]';
791+
%Row No. 1 - Extra: <COLUMN_VALUE>1</COLUMN_VALUE>]';
789792
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
790793
--Assert
791794
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -820,7 +823,7 @@ Rows: [ 60 differences, showing first 20 ]
820823
l_expected_message := q'[%Actual: ut3_tester_helper.t_varray [ count = 1 ] was expected to equal: ut3_tester_helper.t_varray [ count = 0 ]
821824
%Diff:
822825
%Rows: [ 1 differences ]
823-
%Row No. 1 - Extra: <T_VARRAY>1</T_VARRAY>]';
826+
%Row No. 1 - Extra: <COLUMN_VALUE>1</COLUMN_VALUE>]';
824827
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
825828
--Assert
826829
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -841,7 +844,7 @@ Rows: [ 60 differences, showing first 20 ]
841844
from dual connect by level <=2
842845
order by rownum desc;
843846
--Act
844-
ut3.ut.expect(anydata.convertCollection(l_actual)).to_equal(anydata.convertCollection(l_expected)).join_by('TEST_DUMMY_OBJECT/ID');
847+
ut3.ut.expect(anydata.convertCollection(l_actual)).to_equal(anydata.convertCollection(l_expected)).join_by('ID');
845848
ut.expect(ut3_tester_helper.main_helper.get_failed_expectations_num).to_equal(0);
846849
end;
847850

@@ -860,16 +863,16 @@ Rows: [ 60 differences, showing first 20 ]
860863
from dual connect by level <=2
861864
order by rownum desc;
862865
--Act
863-
ut3.ut.expect(anydata.convertCollection(l_actual)).to_equal(anydata.convertCollection(l_expected)).join_by('TEST_DUMMY_OBJECT/ID');
866+
ut3.ut.expect(anydata.convertCollection(l_actual)).to_equal(anydata.convertCollection(l_expected)).join_by('ID');
864867
l_expected_message := q'[%Actual: ut3_tester_helper.test_dummy_object_list [ count = 2 ] was expected to equal: ut3_tester_helper.test_dummy_object_list [ count = 2 ]
865868
%Diff:
866869
%Rows: [ 3 differences ]
867870
%PK <ID>2</ID> - Actual: <name>Something 2</name>
868871
%PK <ID>2</ID> - Actual: <Value>2</Value>
869872
%PK <ID>2</ID> - Expected: <name>Something 1</name>
870873
%PK <ID>2</ID> - Expected: <Value>1</Value>
871-
%PK <ID>1</ID> - Extra: <TEST_DUMMY_OBJECT><ID>1</ID><name>Something 1</name><Value>1</Value></TEST_DUMMY_OBJECT>
872-
%PK <ID>4</ID> - Missing: <TEST_DUMMY_OBJECT><ID>4</ID><name>Something 2</name><Value>2</Value></TEST_DUMMY_OBJECT>]';
874+
%PK <ID>1</ID> - Extra: <ID>1</ID><name>Something 1</name><Value>1</Value>
875+
%PK <ID>4</ID> - Missing: <ID>4</ID><name>Something 2</name><Value>2</Value>]';
873876
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);
874877
--Assert
875878
ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -910,10 +913,10 @@ Rows: [ 60 differences, showing first 20 ]
910913
l_expected_message := q'[%Actual: ut3_tester_helper.test_dummy_object_list [ count = 2 ] was expected to equal: ut3_tester_helper.test_dummy_object_list [ count = 2 ]
911914
%Diff:
912915
%Rows: [ 4 differences ]
913-
%Extra: <TEST_DUMMY_OBJECT><ID>1</ID><name>Something 1</name><Value>1</Value></TEST_DUMMY_OBJECT>
914-
%Extra: <TEST_DUMMY_OBJECT><ID>2</ID><name>Something 2</name><Value>2</Value></TEST_DUMMY_OBJECT>
915-
%Missing: <TEST_DUMMY_OBJECT><ID>4</ID><name>Something 2</name><Value>2</Value></TEST_DUMMY_OBJECT>
916-
%Missing: <TEST_DUMMY_OBJECT><ID>2</ID><name>Something 1</name><Value>1</Value></TEST_DUMMY_OBJECT>]';
916+
%Extra: <ID>1</ID><name>Something 1</name><Value>1</Value>
917+
%Extra: <ID>2</ID><name>Something 2</name><Value>2</Value>
918+
%Missing: <ID>4</ID><name>Something 2</name><Value>2</Value>
919+
%Missing: <ID>2</ID><name>Something 1</name><Value>1</Value>]';
917920

918921
ut3.ut.expect(anydata.convertCollection(l_actual)).to_equal(anydata.convertCollection(l_expected)).unordered;
919922
l_actual_message := ut3_tester_helper.main_helper.get_failed_expectations(1);

0 commit comments

Comments
 (0)