@@ -62,6 +62,7 @@ create or replace package body test_expectations_cursor is
6262 l_actual sys_refcursor;
6363 begin
6464 -- Arrange
65+ ut.set_nls;
6566 open l_expected for
6667 select 1 as my_num,
6768 'This is my test string' as my_string,
@@ -74,6 +75,7 @@ create or replace package body test_expectations_cursor is
7475 to_clob('This is an even longer test clob') as my_clob,
7576 to_date('1984-09-05', 'YYYY-MM-DD') as my_date
7677 from dual;
78+ ut.reset_nls;
7779 --Act
7880 ut3.ut.expect( l_actual ).to_equal( l_expected );
7981 --Assert
@@ -661,9 +663,7 @@ Diff:
661663Columns:
662664 Column <COL_4> is misplaced. Expected position: 2, actual position: 4.
663665 Column <COL_2> is misplaced. Expected position: 3, actual position: 2.
664- Column <COL_3> is misplaced. Expected position: 4, actual position: 3.
665- Rows: [ 2 differences ]
666- All rows are different as the columns are not matching.]';
666+ Column <COL_3> is misplaced. Expected position: 4, actual position: 3.]';
667667 l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
668668 --Assert
669669 ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -893,8 +893,8 @@ Rows: [ 4 differences ]
893893 l_expected sys_refcursor;
894894 begin
895895 --Arrange
896- open l_actual for select object_name from all_objects where rownum <=1100;
897- open l_expected for select object_name from all_objects where rownum <=1100;
896+ open l_actual for select object_name from all_objects where rownum <=1100 order by object_id ;
897+ open l_expected for select object_name from all_objects where rownum <=1100 order by object_id ;
898898 --Act
899899 ut3.ut.expect(l_actual).to_equal(l_expected);
900900
@@ -908,8 +908,8 @@ Rows: [ 4 differences ]
908908 l_expected sys_refcursor;
909909 begin
910910 --Arrange
911- open l_actual for select object_name from all_objects where rownum <=11000;
912- open l_expected for select object_name from all_objects where rownum <=11000;
911+ open l_actual for select object_name from all_objects where rownum <=11000 order by object_id ;
912+ open l_expected for select object_name from all_objects where rownum <=11000 order by object_id ;
913913 --Act
914914 ut3.ut.expect(l_actual).to_equal(l_expected);
915915
@@ -1090,8 +1090,8 @@ Rows: [ 2 differences ]%
10901090 l_expected_message := q'[%Actual: refcursor [ count = 2 ] was expected to equal: refcursor [ count = 2 ]%
10911091%Diff:%
10921092%Rows: [ 2 differences ]%
1093- %Extra: <ROW>< USERNAME>test</USERNAME><USER_ID>-666</USER_ID></ROW >%
1094- %Missing: <ROW>< USERNAME>test</USERNAME><USER_ID>-667</USER_ID></ROW >%]';
1093+ %Extra: <USERNAME>test</USERNAME><USER_ID>-666</USER_ID>%
1094+ %Missing: <USERNAME>test</USERNAME><USER_ID>-667</USER_ID>%]';
10951095 l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
10961096 --Assert
10971097 ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -1289,6 +1289,32 @@ Diff:%
12891289 ut.expect(expectations.failed_expectations_data()).to_be_empty();
12901290 end;
12911291
1292+ procedure cursor_unorder_compare_1000 is
1293+ l_actual SYS_REFCURSOR;
1294+ l_expected SYS_REFCURSOR;
1295+ begin
1296+ --Arrange
1297+ open l_actual for select level object_id, level || '_TEST' object_name from dual connect by level <=1100;
1298+ open l_expected for select level object_id, level || '_TEST' object_name from dual connect by level <=1100;
1299+ --Act
1300+ ut3.ut.expect(l_actual).to_equal(l_expected).unordered;
1301+ --Assert
1302+ ut.expect(expectations.failed_expectations_data()).to_be_empty();
1303+ end;
1304+
1305+ procedure cursor_unorder_compare_10000 is
1306+ l_actual SYS_REFCURSOR;
1307+ l_expected SYS_REFCURSOR;
1308+ begin
1309+ --Arrange
1310+ open l_actual for select level object_id, level || '_TEST' object_name from dual connect by level <=11000;
1311+ open l_expected for select level object_id, level || '_TEST' object_name from dual connect by level <=11000;
1312+ --Act
1313+ ut3.ut.expect(l_actual).to_equal(l_expected).unordered;
1314+ --Assert
1315+ ut.expect(expectations.failed_expectations_data()).to_be_empty();
1316+ end;
1317+
12921318 procedure cursor_joinby_compare_fail is
12931319 l_actual SYS_REFCURSOR;
12941320 l_expected SYS_REFCURSOR;
@@ -1334,8 +1360,8 @@ Diff:%
13341360 l_expected_message := q'[%Actual: refcursor [ count = % ] was expected to equal: refcursor [ count = % ]
13351361%Diff:%
13361362%Rows: [ 2 differences ]%
1337- %PK <USERNAME>TEST</USERNAME><USER_ID>-610</USER_ID> - Extra: <ROW>< USERNAME>TEST</USERNAME><USER_ID>-610</USER_ID></ROW >%
1338- %PK <USERNAME>TEST</USERNAME><USER_ID>-600</USER_ID> - Missing: <ROW>< USERNAME>TEST</USERNAME><USER_ID>-600</USER_ID></ROW >%]';
1363+ %PK <USERNAME>TEST</USERNAME><USER_ID>-610</USER_ID> - Extra: <USERNAME>TEST</USERNAME><USER_ID>-610</USER_ID>%
1364+ %PK <USERNAME>TEST</USERNAME><USER_ID>-600</USER_ID> - Missing: <USERNAME>TEST</USERNAME><USER_ID>-600</USER_ID>%]';
13391365 l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
13401366 --Assert
13411367 ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -1516,12 +1542,12 @@ Diff:%
15161542 ut3.ut.expect(l_actual).to_equal(l_expected).unordered;
15171543 l_expected_message := q'[%Actual: refcursor [ count = 2 ] was expected to equal: refcursor [ count = 3 ]%
15181544Diff:%
1519- Rows: [ 5 differences ]
1520- %Extra: <ROW>< COLVAL><ID>2 </ID><name>Something 2 </name><Value>2 </Value></COLVAL></ROW >%
1521- %Extra: <ROW>< COLVAL><ID>1 </ID><name>Something 1 </name><Value>1 </Value></COLVAL></ROW >%
1522- %Missing: <ROW>< COLVAL><ID>1</ID><name>Somethings 1</name><Value>1</Value></COLVAL></ROW >%
1523- %Missing: <ROW>< COLVAL><ID>2</ID><name>Somethings 2</name><Value>2</Value></COLVAL></ROW >%
1524- %Missing: <ROW>< COLVAL><ID>3</ID><name>Somethings 3</name><Value>3</Value></COLVAL></ROW >%]';
1545+ Rows: [ 5 differences 1
1546+ %Extra: <COLVAL><ID>1 </ID><name>Something 1 </name><Value>1 </Value></COLVAL>%
1547+ %Extra: <COLVAL><ID>2 </ID><name>Something 2 </name><Value>2 </Value></COLVAL>%
1548+ %Missing: <COLVAL><ID>1</ID><name>Somethings 1</name><Value>1</Value></COLVAL>%
1549+ %Missing: <COLVAL><ID>2</ID><name>Somethings 2</name><Value>2</Value></COLVAL>%
1550+ %Missing: <COLVAL><ID>3</ID><name>Somethings 3</name><Value>3</Value></COLVAL>%]';
15251551 l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
15261552 --Assert
15271553 ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -2036,7 +2062,7 @@ Diff:%
20362062 l_expected_message := q'[%Actual: refcursor [ count = 2 ] was expected to equal: refcursor [ count = 3 ]
20372063%Diff:
20382064%Rows: [ 1 differences ]
2039- %Missing: <ROW>< NAME>Table</NAME></ROW >%]';
2065+ %Missing: <NAME>Table</NAME>%]';
20402066 l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
20412067 --Assert
20422068 ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -2077,11 +2103,11 @@ Diff:%
20772103 l_expected_message := q'[%Actual: refcursor [ count = 4 ] was expected to include: refcursor [ count = 9 ]
20782104%Diff:
20792105%Rows: [ 5 differences ]
2080- %Missing: <ROW>< OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE></ROW>
2081- %Missing: <ROW>< OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE></ROW>
2082- %Missing: <ROW>< OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE></ROW>
2083- %Missing: <ROW>< OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE></ROW>
2084- %Missing: <ROW>< OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE></ROW >%]';
2106+ %Missing: <OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE>%
2107+ %Missing: <OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE>%
2108+ %Missing: <OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE>%
2109+ %Missing: <OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE>%
2110+ %Missing: <OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE>%]';
20852111 l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
20862112 --Assert
20872113 ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -2121,11 +2147,11 @@ Diff:%
21212147 l_expected_message := q'[%Actual: refcursor [ count = 4 ] was expected to include: refcursor [ count = 9 ]
21222148%Diff:
21232149%Rows: [ 5 differences ]
2124- %Missing: <ROW>< OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE></ROW>
2125- %Missing: <ROW>< OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE></ROW>
2126- %Missing: <ROW>< OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE></ROW>
2127- %Missing: <ROW>< OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE></ROW>
2128- %Missing: <ROW>< OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE></ROW >%]';
2150+ %Missing: <OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE>%
2151+ %Missing: <OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE>%
2152+ %Missing: <OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE>%
2153+ %Missing: <OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE>%
2154+ %Missing: <OWNER>%</OWNER><OBJECT_NAME>%</OBJECT_NAME><OBJECT_TYPE>%</OBJECT_TYPE>%]';
21292155 l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
21302156 --Assert
21312157 ut.expect(l_actual_message).to_be_like(l_expected_message);
@@ -2478,9 +2504,9 @@ Diff:%
24782504 l_expected_message := q'[%Actual: refcursor [ count = 9 ] was expected to include: refcursor [ count = 6 ]
24792505%Diff:
24802506%Rows: [ 3 differences ]
2481- %Missing: <ROW>< RN>%</RN></ROW >
2482- %Missing: <ROW>< RN>%</RN></ROW >
2483- %Missing: <ROW>< RN>%</RN></ROW >]';
2507+ %Missing: <RN>%</RN>
2508+ %Missing: <RN>%</RN>
2509+ %Missing: <RN>%</RN>]';
24842510 l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
24852511 --Assert
24862512 ut.expect(l_actual_message).to_be_like(l_expected_message);
0 commit comments