@@ -579,16 +579,25 @@ Rows: [ 2 differences ]
579579 end;
580580
581581 procedure char_and_varchar2_col_is_equal is
582- l_expected sys_refcursor;
583- l_actual sys_refcursor;
582+ l_expected sys_refcursor;
583+ l_actual sys_refcursor;
584+ l_actual_message varchar2(32767);
585+ l_expected_message varchar2(32767);
584586 begin
585587 --Arrange
586- open l_actual for select cast('a' as char(1)) a_column from dual;
587- open l_expected for select cast('a' as varchar2(10)) a_column from dual;
588+ open l_actual for select cast('a' as char(1)) a_column, 1 as id from dual;
589+ open l_expected for select cast('a' as varchar2(10)) a_column from dual;
588590 --Act
589591 ut3.ut.expect(l_actual).to_equal(l_expected);
592+ l_expected_message := q'[Actual: refcursor [ count = 1 ] was expected to equal: refcursor [ count = 1 ]
593+ Diff:
594+ Columns:
595+ Column <ID> [position: 2, data-type: NUMBER] is not expected in results.
596+ Rows: [ 1 differences ]
597+ All rows are different as the columns are not matching.]';
598+ l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
590599 --Assert
591- ut.expect(expectations.failed_expectations_data()).to_be_empty( );
600+ ut.expect(l_actual_message).to_be_like(l_expected_message );
592601 end;
593602
594603 procedure column_diff_on_data_type_diff is
@@ -730,35 +739,31 @@ Rows: [ 60 differences, showing first 20 ]
730739 l_expected_message varchar2(32767);
731740 begin
732741 --Arrange
733- ut3.ut.set_nls();
734- open l_actual for
735- select 10 id, 'Norris' last_name, 'Chuck' first_name, systimestamp as create_tmstmp, user as created_by from dual union all
736- select 20 id, 'Skywalker' last_name, 'Luke' first_name, systimestamp as create_tmstmp, user as created_by from dual union all
737- select 30 id, 'Bear' last_name, 'Teddy' first_name, systimestamp as create_tmstmp, user as created_by from dual union all
738- select 40 id, 'Lee' last_name, 'Bruce' first_name, systimestamp as create_tmstmp, user as created_by from dual;
739742 open l_expected for
740- select 10 id, 'Chuck' first_name, 'Norris' last_name, sysdate as birth_date from dual union all
741- select 20 id, 'Luke' first_name, 'Skywalker' last_name, sysdate as birth_date from dual union all
742- select 31 id, 'Teddy' first_name, 'Bear' last_name, sysdate as birth_date from dual union all
743- select 40 id, 'Brandon' first_name, 'Lee' last_name, sysdate as birth_date from dual union all
744- select 50 id, 'Mona' first_name, 'Lisa' last_name, date '1550-01-01' as birth_date from dual;
745- ut3.ut.reset_nls();
743+ select 1 as ID, 'JACK' as FIRST_NAME, 'SPARROW' AS LAST_NAME, 10000 AS SALARY from dual union all
744+ select 2 as ID, 'LUKE' as FIRST_NAME, 'SKYWALKER' AS LAST_NAME, 1000 AS SALARY from dual union all
745+ select 3 as ID, 'TONY' as FIRST_NAME, 'STARK' AS LAST_NAME, 100000 AS SALARY from dual;
746+ open l_actual for
747+ select 'M' AS GENDER, 'JACK' as FIRST_NAME, 'SPARROW' AS LAST_NAME, 1 as ID, '25000' AS SALARY from dual union all
748+ select 'M' AS GENDER, 'TONY' as FIRST_NAME, 'STARK' AS LAST_NAME, 3 as ID, '100000' AS SALARY from dual union all
749+ select 'F' AS GENDER, 'JESSICA' as FIRST_NAME, 'JONES' AS LAST_NAME, 4 as ID, '2345' AS SALARY from dual union all
750+ select 'M' AS GENDER, 'LUKE' as FIRST_NAME, 'SKYWALKER' AS LAST_NAME, 2 as ID, '1000' AS SALARY from dual;
746751 --Act
747752 ut3.ut.expect(l_actual).to_equal(l_expected);
748- l_expected_message := q'[% Actual: refcursor [ count = 4 ] was expected to equal: refcursor [ count = 5 ]
753+ l_expected_message := q'[Actual: refcursor [ count = 4 ] was expected to equal: refcursor [ count = 3 ]
749754Diff:
750755Columns:
751- Column <FIRST_NAME > is misplaced. Expected position: 2 , actual position: 3 .
752- Column <LAST_NAME> is misplaced . Expected position: 3 , actual position: 2 .
753- Column <BIRTH_DATE > [data-type: DATE ] is missing. Expected column position: 4 .
754- Column <CREATE_TMSTMP> [position: 4, data-type: TIMESTAMP WITH TIME ZONE] is not expected in results.
755- Column <CREATED_BY> [position: 5, data-type: VARCHAR2] is not expected in results.
756- Rows: [ 5 differences ]
757- Row No. 3 - Actual: <ID>30 </ID>
758- Row No. 3 - Expected: <ID>31 </ID>
759- Row No. 4 - Actual: <FIRST_NAME>Bruce </FIRST_NAME>
760- Row No. 4 - Expected: <FIRST_NAME>Brandon </FIRST_NAME>
761- Row No. 5 - Missing : <ID>50</ID ><FIRST_NAME>Mona </FIRST_NAME><LAST_NAME>Lisa </LAST_NAME><BIRTH_DATE>1550-01-01%</BIRTH_DATE >]';
756+ Column <ID > is misplaced. Expected position: 1 , actual position: 4 .
757+ Column <SALARY> data-type is invalid . Expected: NUMBER , actual: VARCHAR2 .
758+ Column <GENDER > [position: 1, data-type: CHAR ] is not expected in results .
759+ Rows: [ 4 differences ]
760+ Row No. 1 - Actual: <SALARY>25000</SALARY>
761+ Row No. 1 - Expected: <SALARY>10000</SALARY>
762+ Row No. 2 - Actual: <FIRST_NAME>TONY</FIRST_NAME><LAST_NAME>STARK</LAST_NAME>< ID>3 </ID><SALARY>100000</SALARY >
763+ Row No. 2 - Expected: <ID>2 </ID><FIRST_NAME>LUKE</FIRST_NAME><LAST_NAME>SKYWALKER</LAST_NAME><SALARY>1000</SALARY >
764+ Row No. 3 - Actual: <FIRST_NAME>JESSICA </FIRST_NAME><LAST_NAME>JONES</LAST_NAME><ID>4</ID><SALARY>2345</SALARY >
765+ Row No. 3 - Expected: <ID>3</ID>< FIRST_NAME>TONY </FIRST_NAME><LAST_NAME>STARK</LAST_NAME><SALARY>100000</SALARY >
766+ Row No. 4 - Extra : <GENDER>M</GENDER ><FIRST_NAME>LUKE </FIRST_NAME><LAST_NAME>SKYWALKER </LAST_NAME><ID>2</ID><SALARY>1000</SALARY >]';
762767 l_actual_message := ut3.ut_expectation_processor.get_failed_expectations()(1).message;
763768 --Assert
764769 ut.expect(l_actual_message).to_be_like(l_expected_message);
0 commit comments