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

Skip to content

Commit 30b0cfe

Browse files
committed
Adding set of tests:
core/test_file_mapper core/test_output_buffer core/test_suite_manager core/test_ut_executable
1 parent 29295b7 commit 30b0cfe

13 files changed

Lines changed: 1925 additions & 8 deletions

test/install_ut3_tester_tests.sql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ alter session set plsql_optimize_level=0;
1616
@@ut3_tester/core/test_ut_test.pks
1717
@@ut3_tester/core/test_ut_suite.pks
1818
@@ut3_tester/core/test_ut_executable.pks
19+
@@ut3_tester/core/test_suite_manager.pks
20+
@@ut3_tester/core/test_file_mapper.pks
21+
@@ut3_tester/core/test_output_buffer.pks
1922

2023

2124
@@ut3_tester/core.pkb
@@ -28,6 +31,9 @@ alter session set plsql_optimize_level=0;
2831
@@ut3_tester/core/test_ut_test.pkb
2932
@@ut3_tester/core/test_ut_suite.pkb
3033
@@ut3_tester/core/test_ut_executable.pkb
34+
@@ut3_tester/core/test_suite_manager.pkb
35+
@@ut3_tester/core/test_file_mapper.pkb
36+
@@ut3_tester/core/test_output_buffer.pkb
3137

3238

3339
set linesize 200
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
create or replace package body test_file_mapper is
2+
3+
procedure default_mappings is
4+
l_actual ut3.ut_file_mappings;
5+
l_expected ut3.ut_file_mappings;
6+
begin
7+
--Arrange
8+
l_expected := ut3.ut_file_mappings(
9+
ut3.ut_file_mapping('C:\tests\helpers\core.pkb',sys_context('USERENV', 'CURRENT_USER'),'CORE','PACKAGE BODY'),
10+
ut3.ut_file_mapping('tests/helpers/test_file_mapper.pkb',sys_context('USERENV', 'CURRENT_USER'),'TEST_FILE_MAPPER','PACKAGE BODY')
11+
);
12+
--Act
13+
l_actual := ut3.ut_file_mapper.build_file_mappings(
14+
ut3.ut_varchar2_list(
15+
'C:\tests\helpers\core.pkb',
16+
'tests/helpers/test_file_mapper.pkb'
17+
)
18+
);
19+
--Assert
20+
ut.expect(anydata.convertCollection(l_actual)).to_equal(anydata.convertCollection(l_expected));
21+
end;
22+
23+
procedure specific_owner is
24+
l_actual ut3.ut_file_mappings;
25+
l_expected ut3.ut_file_mappings;
26+
begin
27+
--Arrange
28+
l_expected := ut3.ut_file_mappings(
29+
ut3.ut_file_mapping('C:\source\core\types\ut_file_mapping.tpb','UT3','UT_FILE_MAPPING','TYPE BODY'),
30+
ut3.ut_file_mapping('source/core/ut_file_mapper.pkb','UT3','UT_FILE_MAPPER','PACKAGE BODY')
31+
);
32+
--Act
33+
l_actual := ut3.ut_file_mapper.build_file_mappings(
34+
'UT3',
35+
ut3.ut_varchar2_list(
36+
'C:\source\core\types\ut_file_mapping.tpb',
37+
'source/core/ut_file_mapper.pkb'
38+
)
39+
);
40+
--Assert
41+
ut.expect(anydata.convertCollection(l_actual)).to_equal(anydata.convertCollection(l_expected));
42+
end;
43+
44+
end;
45+
/
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
create or replace package test_file_mapper is
2+
3+
--%suite(file_mapper)
4+
--%suitepath(utplsql.framework_tester.core)
5+
6+
--%test(Maps file paths into database objects using default mappings)
7+
procedure default_mappings;
8+
9+
--%test(Used specified object owner to perform mapping when files have no owner indication)
10+
procedure specific_owner;
11+
12+
end;
13+
/
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
create or replace package body test_output_buffer is
2+
3+
procedure test_receive is
4+
l_actual_text clob;
5+
l_actual_item_type varchar2(1000);
6+
l_remaining integer;
7+
l_expected_text clob;
8+
l_expected_item_type varchar2(1000);
9+
l_buffer ut3.ut_output_buffer_base;
10+
begin
11+
--Arrange
12+
l_buffer := ut3.ut_output_table_buffer();
13+
l_expected_text := to_clob(lpad('a text', 31000, ',a text'))
14+
|| chr(10) || to_clob(lpad('a text', 31000, ',a text'))
15+
|| chr(13) || to_clob(lpad('a text', 31000, ',a text'))
16+
|| chr(13) || chr(10) || to_clob(lpad('a text', 31000, ',a text')) || to_clob(lpad('a text', 31000, ',a text'));
17+
l_expected_item_type := lpad('some item type',1000,'-');
18+
--Act
19+
l_buffer.send_clob(l_expected_text, l_expected_item_type);
20+
l_buffer.close();
21+
22+
select text, item_type
23+
into l_actual_text, l_actual_item_type
24+
from table(l_buffer.get_lines(0,0));
25+
26+
--Assert
27+
ut.expect(l_actual_text).to_equal(l_expected_text);
28+
ut.expect(l_actual_item_type).to_equal(l_expected_item_type);
29+
30+
select count(1) into l_remaining from table(ut3_tester_helper.run_helper.ut_output_buffer_tmp)
31+
where output_id = l_buffer.output_id;
32+
33+
ut.expect(l_remaining).to_equal(0);
34+
end;
35+
36+
procedure test_doesnt_send_on_null_text is
37+
l_cur sys_refcursor;
38+
l_result integer;
39+
l_buffer ut3.ut_output_buffer_base := ut3.ut_output_table_buffer();
40+
begin
41+
ut3_tester_helper.run_helper.delete_buffer();
42+
--Act
43+
l_buffer.send_line(null);
44+
45+
open l_cur for select * from table(ut3_tester_helper.run_helper.ut_output_buffer_tmp);
46+
ut.expect(l_cur).to_be_empty;
47+
end;
48+
49+
procedure test_send_line is
50+
l_result varchar2(4000);
51+
c_expected constant varchar2(4000) := lpad('a text',4000,',a text');
52+
l_buffer ut3.ut_output_buffer_base := ut3.ut_output_table_buffer();
53+
begin
54+
l_buffer.send_line(c_expected);
55+
56+
select text into l_result from table(ut3_tester_helper.run_helper.ut_output_buffer_tmp) where output_id = l_buffer.output_id;
57+
58+
ut.expect(l_result).to_equal(c_expected);
59+
end;
60+
61+
procedure test_waiting_for_data is
62+
l_result clob;
63+
l_remaining integer;
64+
l_expected clob;
65+
l_buffer ut3.ut_output_buffer_base := ut3.ut_output_table_buffer();
66+
l_start timestamp;
67+
l_duration interval day to second;
68+
begin
69+
--Arrange
70+
l_expected := 'a text';
71+
l_buffer.send_line(l_expected);
72+
l_start := localtimestamp;
73+
--Act
74+
begin
75+
select text into l_result from table(l_buffer.get_lines(1,1));
76+
ut.fail('Expected a timeout exception but nothing was raised');
77+
exception
78+
when others then
79+
l_duration := localtimestamp - l_start;
80+
--Assert
81+
--Fetches data from output
82+
ut.expect(l_result).to_equal(l_expected);
83+
--Throws a timeout exception
84+
ut.expect(dbms_utility.format_error_stack()).to_match('ORA'||ut3.ut_utils.gc_out_buffer_timeout);
85+
--Waited for one second
86+
ut.expect(l_duration).to_be_greater_than(interval '0.99' second);
87+
end;
88+
89+
select count(1) into l_remaining from table(ut3_tester_helper.run_helper.ut_output_buffer_tmp) where output_id = l_buffer.output_id;
90+
--Data got removed from output buffer
91+
ut.expect(l_remaining).to_equal(0);
92+
93+
end;
94+
95+
end test_output_buffer;
96+
/
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
create or replace package test_output_buffer is
2+
3+
--%suite(output_buffer)
4+
--%suitepath(utplsql.framework_tester.core)
5+
6+
--%test(Receives a line from buffer table and deletes)
7+
procedure test_receive;
8+
9+
--%test(Does not send line if null text given)
10+
procedure test_doesnt_send_on_null_text;
11+
12+
--%test(Sends a line into buffer table)
13+
procedure test_send_line;
14+
15+
--%test(Waits For The Data To Appear For Specified Time)
16+
procedure test_waiting_for_data;
17+
18+
end test_output_buffer;
19+
/

0 commit comments

Comments
 (0)