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

Skip to content

Commit 4d33463

Browse files
committed
Simple regression tests
1 parent a340746 commit 4d33463

2 files changed

Lines changed: 172 additions & 1 deletion

File tree

test/ut_expectations/test_expectations_cursor.pkb

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,21 @@ create or replace package body test_expectations_cursor is
1717
execute immediate 'drop table gtt_test_table';
1818
end;
1919

20+
/** Just returns a pre-made expected object
21+
*/
22+
function get_expected_obj return t_test_table
23+
as
24+
l_expected_obj t_test_table;
25+
begin
26+
27+
l_expected_obj(1).my_num := 1;
28+
l_expected_obj(1).my_string := 'This is my test string';
29+
l_expected_obj(1).my_clob := 'This is an even longer test clob';
30+
l_expected_obj(1).my_date := to_date('1984-09-05', 'YYYY-MM-DD');
31+
32+
return l_expected_obj;
33+
end;
34+
2035
procedure test_cursor_w_temp_table
2136
as
2237
pragma autonomous_transaction;
@@ -41,5 +56,138 @@ create or replace package body test_expectations_cursor is
4156

4257
rollback;
4358
end;
59+
60+
61+
procedure test_cursor_success
62+
as
63+
l_expected_obj t_test_table;
64+
l_actual_obj t_test_table;
65+
l_expected sys_refcursor;
66+
l_actual sys_refcursor;
67+
begin
68+
69+
-- Arrange
70+
l_expected_obj := get_expected_obj();
71+
l_actual_obj := get_expected_obj();
72+
73+
open l_expected for select * from table(l_expected_obj);
74+
open l_actual for select * from table(l_actual_obj);
75+
76+
--Act - execute the expectation on cursor opened on GTT
77+
ut3.ut.expect( l_actual ).to_equal( l_expected );
78+
79+
--Assert - check that expectation was executed successfully
80+
ut.expect(ut3.ut_expectation_processor.get_status()).to_equal(ut3.ut_utils.tr_success);
81+
82+
--Cleanup
83+
ut3.ut_expectation_processor.clear_expectations();
84+
85+
end;
86+
87+
--%test(Test cursor comparison success when both empty)
88+
procedure test_cursor_success_on_empty
89+
as
90+
l_expected_obj t_test_table;
91+
l_actual_obj t_test_table;
92+
l_expected sys_refcursor;
93+
l_actual sys_refcursor;
94+
begin
95+
96+
-- Arrange
97+
open l_expected for select * from table(l_expected_obj);
98+
open l_actual for select * from table(l_actual_obj);
99+
100+
--Act - execute the expectation on cursor opened on GTT
101+
ut3.ut.expect( l_actual ).to_equal( l_expected );
102+
103+
--Assert - check that expectation was executed successfully
104+
ut.expect(ut3.ut_expectation_processor.get_status()).to_equal(ut3.ut_utils.tr_success);
105+
106+
--Cleanup
107+
ut3.ut_expectation_processor.clear_expectations();
108+
109+
end;
110+
111+
--%test(Test cursor comparison fails on different content)
112+
procedure test_cursor_fail_on_difference
113+
as
114+
l_expected_obj t_test_table;
115+
l_actual_obj t_test_table;
116+
l_expected sys_refcursor;
117+
l_actual sys_refcursor;
118+
begin
119+
120+
-- Arrange
121+
l_expected_obj := get_expected_obj();
122+
l_actual_obj := get_expected_obj();
123+
l_actual_obj(1).my_clob := 'Another totally different story';
124+
125+
open l_expected for select * from table(l_expected_obj);
126+
open l_actual for select * from table(l_actual_obj);
127+
128+
--Act - execute the expectation on cursor opened on GTT
129+
ut3.ut.expect( l_actual ).to_equal( l_expected );
130+
131+
--Assert - check that expectation was executed successfully
132+
ut.expect(ut3.ut_expectation_processor.get_status()).to_equal(ut3.ut_utils.tr_failure);
133+
134+
--Cleanup
135+
ut3.ut_expectation_processor.clear_expectations();
136+
137+
end;
138+
139+
procedure test_cursor_fail_on_expected_missing
140+
as
141+
l_expected_obj t_test_table;
142+
l_actual_obj t_test_table;
143+
l_expected sys_refcursor;
144+
l_actual sys_refcursor;
145+
begin
146+
147+
-- Arrange
148+
l_expected_obj := get_expected_obj();
149+
l_actual_obj := get_expected_obj();
150+
l_actual_obj(2).my_num := 2;
151+
152+
open l_expected for select * from table(l_expected_obj);
153+
open l_actual for select * from table(l_actual_obj);
154+
155+
--Act - execute the expectation on cursor opened on GTT
156+
ut3.ut.expect( l_actual ).to_equal( l_expected );
157+
158+
--Assert - check that expectation was executed successfully
159+
ut.expect(ut3.ut_expectation_processor.get_status()).to_equal(ut3.ut_utils.tr_failure);
160+
161+
--Cleanup
162+
ut3.ut_expectation_processor.clear_expectations();
163+
164+
end;
165+
166+
procedure test_cursor_fail_on_actual_missing
167+
as
168+
l_expected_obj t_test_table;
169+
l_actual_obj t_test_table;
170+
l_expected sys_refcursor;
171+
l_actual sys_refcursor;
172+
begin
173+
174+
-- Arrange
175+
l_expected_obj := get_expected_obj();
176+
l_expected_obj(2).my_num := 2;
177+
l_actual_obj := get_expected_obj();
178+
179+
open l_expected for select * from table(l_expected_obj);
180+
open l_actual for select * from table(l_actual_obj);
181+
182+
--Act - execute the expectation on cursor opened on GTT
183+
ut3.ut.expect( l_actual ).to_equal( l_expected );
184+
185+
--Assert - check that expectation was executed successfully
186+
ut.expect(ut3.ut_expectation_processor.get_status()).to_equal(ut3.ut_utils.tr_failure);
187+
188+
--Cleanup
189+
ut3.ut_expectation_processor.clear_expectations();
190+
191+
end;
44192
end;
45193
/

test/ut_expectations/test_expectations_cursor.pks

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,36 @@ create or replace package test_expectations_cursor is
33
--%suite(expectations - cursor)
44
--%suitepath(utplsql.core.expectations.cursor)
55

6-
6+
type t_test_record is record (
7+
my_num number(9,0),
8+
my_string varchar2(4000),
9+
my_clob clob,
10+
my_date date);
11+
12+
type t_test_table is table of t_test_record index by binary_integer;
13+
14+
715
procedure setup_temp_table_test;
816
procedure cleanup_temp_table_test;
917

1018
--%test(Test cursor on temporary table)
1119
--%beforetest(setup_temp_table_test)
1220
--%aftertest(cleanup_temp_table_test)
1321
procedure test_cursor_w_temp_table;
22+
23+
--%test(Test cursor comparison success)
24+
procedure test_cursor_success;
25+
26+
--%test(Test cursor comparison success when both empty)
27+
procedure test_cursor_success_on_empty;
28+
29+
--%test(Test cursor comparison fails on different content)
30+
procedure test_cursor_fail_on_difference;
31+
32+
--%test(Test cursor comparison fails on missing row in expected cursor)
33+
procedure test_cursor_fail_on_expected_missing;
34+
35+
--%test(Test cursor comparison fails on missing row in actual cursor)
36+
procedure test_cursor_fail_on_actual_missing;
1437
end;
1538
/

0 commit comments

Comments
 (0)