diff --git a/source/expectations/data_values/ut_data_value_refcursor.tpb b/source/expectations/data_values/ut_data_value_refcursor.tpb index 497493a9e..fd6556d46 100644 --- a/source/expectations/data_values/ut_data_value_refcursor.tpb +++ b/source/expectations/data_values/ut_data_value_refcursor.tpb @@ -30,9 +30,9 @@ create or replace type body ut_data_value_refcursor as begin if self.datavalue is not null then ut_assert_processor.set_xml_nls_params(); + dbms_xmlgen.restartQuery(self.datavalue); dbms_xmlgen.setMaxRows(self.datavalue, 100); l_result := dbms_xmlgen.getxml(self.datavalue); - dbms_xmlgen.restartQuery(self.datavalue); ut_assert_processor.reset_nls_params(); end if; return ut_utils.to_string(l_result); diff --git a/tests/RunAll.sql b/tests/RunAll.sql index c9c572d3d..82591fb6b 100644 --- a/tests/RunAll.sql +++ b/tests/RunAll.sql @@ -40,6 +40,7 @@ create table ut$test_table (val varchar2(1)); @@lib/RunTest.sql asssertions/ut.expect.to_equal.anydata.PutsObjectStrucureIntoAssert.sql @@lib/RunTest.sql asssertions/ut.expect.to_equal.cursor.GivesFailureForDifferentValues.sql @@lib/RunTest.sql asssertions/ut.expect.to_equal.cursor.GivesSuccessForEqualValues.sql +@@lib/RunTest.sql asssertions/ut.expect.to_equal.cursor.ReturnsCursorDataForFailure.sql @@lib/RunTest.sql asssertions/ut.expect.to_equal.GivesFailureForDifferentDataTypes.sql @@lib/RunTest.sql asssertions/ut.expect.to_equal.GivesFailureForDifferentValues.sql @@lib/RunTest.sql asssertions/ut.expect.to_equal.GivesFailureWhenActualIsNull.sql diff --git a/tests/asssertions/ut.expect.to_equal.cursor.GivesFailureForDifferentValues.sql b/tests/asssertions/ut.expect.to_equal.cursor.GivesFailureForDifferentValues.sql index 0dec91dd2..fa22e5e03 100644 --- a/tests/asssertions/ut.expect.to_equal.cursor.GivesFailureForDifferentValues.sql +++ b/tests/asssertions/ut.expect.to_equal.cursor.GivesFailureForDifferentValues.sql @@ -6,8 +6,8 @@ declare l_result integer; begin --Act - open l_actual for select * from user_objects; - open l_expected for select * from user_objects where rownum <5; + open l_actual for select * from user_objects where rownum <=4; + open l_expected for select * from user_objects where rownum <=5; ut.expect(l_actual).to_equal(l_expected); l_result := ut_assert_processor.get_aggregate_asserts_result(); --Assert diff --git a/tests/asssertions/ut.expect.to_equal.cursor.GivesSuccessForEqualValues.sql b/tests/asssertions/ut.expect.to_equal.cursor.GivesSuccessForEqualValues.sql index df6baedf7..01ccc1d32 100644 --- a/tests/asssertions/ut.expect.to_equal.cursor.GivesSuccessForEqualValues.sql +++ b/tests/asssertions/ut.expect.to_equal.cursor.GivesSuccessForEqualValues.sql @@ -6,8 +6,8 @@ declare l_result integer; begin --Act - open l_actual for select * from user_objects; - open l_expected for select * from user_objects; + open l_actual for select * from user_objects where rownum <=4; + open l_expected for select * from user_objects where rownum <=4; ut.expect(l_actual).to_equal(l_expected); l_result := ut_assert_processor.get_aggregate_asserts_result(); --Assert diff --git a/tests/asssertions/ut.expect.to_equal.cursor.ReturnsCursorDataForFailure.sql b/tests/asssertions/ut.expect.to_equal.cursor.ReturnsCursorDataForFailure.sql new file mode 100644 index 000000000..b8ca8ae5b --- /dev/null +++ b/tests/asssertions/ut.expect.to_equal.cursor.ReturnsCursorDataForFailure.sql @@ -0,0 +1,25 @@ +PROMPT Gives a success when comparing values of different cursors +--Arrange +declare + l_actual SYS_REFCURSOR; + l_expected SYS_REFCURSOR; + l_result ut_assert_result; + l_expected_string varchar2(32767); + l_actual_string varchar2(32767); +begin +--Act + open l_actual for select * from user_objects where rownum <=2; + open l_expected for select * from user_objects where rownum <=3; + ut.expect(l_actual).to_equal(l_expected); + + l_result := treat( ut_assert_processor.get_asserts_results()(1) as ut_assert_result ); + l_expected_string := l_result.expected_value_string; + l_actual_string := l_result.actual_value_string; +--Assert + if nvl(:test_result, ut_utils.tr_success) = ut_utils.tr_success and l_expected_string != 'NULL' and l_actual_string != 'NULL' then + :test_result := ut_utils.tr_success; + else + dbms_output.put_line('expected not null values and got: '''||l_expected_string||''', '''||l_actual_string||'''' ); + end if; +end; +/