1+ create or replace package body test_ut_suite is
2+
3+ procedure cleanup_package_state is
4+ begin
5+ ut3_tester_helper.ut_example_tests.g_number := null;
6+ end;
7+
8+ procedure create_trans_control is
9+ begin
10+ ut3_tester_helper.run_helper.create_trans_control;
11+ end;
12+
13+ procedure drop_trans_control is
14+ begin
15+ ut3_tester_helper.run_helper.drop_trans_control;
16+ end;
17+
18+ procedure disabled_suite is
19+ l_suite ut3.ut_suite;
20+ begin
21+ --Arrange
22+ l_suite := ut3.ut_suite(a_object_owner => USER, a_object_name => 'UT_EXAMPLE_TESTS', a_line_no=> 1);
23+ l_suite.path := 'ut3_tester_helper.ut_example_tests';
24+ l_suite.disabled_flag := ut3.ut_utils.boolean_to_int(true);
25+ l_suite.before_all_list := ut3.ut_executables(ut3.ut_executable(USER, 'UT_EXAMPLE_TESTS', 'set_g_number_0', ut3.ut_utils.gc_before_all));
26+ l_suite.after_all_list := ut3.ut_executables(ut3.ut_executable(USER, 'UT_EXAMPLE_TESTS', 'add_1_to_g_number', ut3.ut_utils.gc_before_all));
27+ l_suite.items.extend;
28+ l_suite.items(l_suite.items.last) := ut3.ut_test(a_object_owner => 'ut3_tester_helper', a_object_name => 'UT_EXAMPLE_TESTS',a_name => 'add_1_to_g_number', a_line_no=> 1);
29+ l_suite.items.extend;
30+ l_suite.items(l_suite.items.last) := ut3.ut_test(a_object_owner => 'ut3_tester_helper', a_object_name => 'UT_EXAMPLE_TESTS',a_name => 'add_1_to_g_number', a_line_no=> 1);
31+ --Act
32+ l_suite.do_execute();
33+ --Assert
34+ ut.expect(ut3_tester_helper.ut_example_tests.g_number).to_be_null;
35+ ut.expect(l_suite.result).to_equal(ut3.ut_utils.gc_disabled);
36+ ut.expect(l_suite.results_count.disabled_count).to_equal(2);
37+ ut.expect(l_suite.results_count.warnings_count).to_equal(0);
38+ ut.expect(l_suite.results_count.success_count).to_equal(0);
39+ ut.expect(l_suite.results_count.failure_count).to_equal(0);
40+ ut.expect(l_suite.results_count.errored_count).to_equal(0);
41+ end;
42+
43+ procedure beforeall_errors is
44+ l_suite ut3.ut_suite;
45+ begin
46+ --Arrange
47+ l_suite := ut3.ut_suite(a_object_owner => USER, a_object_name => 'UT_EXAMPLE_TESTS', a_line_no=> 1);
48+ l_suite.path := 'ut3_tester_helper.ut_example_tests';
49+ l_suite.before_all_list := ut3.ut_executables(ut3.ut_executable(USER, 'UT_EXAMPLE_TESTS', 'failing_procedure', ut3.ut_utils.gc_before_all));
50+ l_suite.items.extend;
51+ l_suite.items(l_suite.items.last) := ut3.ut_test(a_object_owner => 'ut3_tester_helper',a_object_name => 'UT_EXAMPLE_TESTS',a_name => 'set_g_number_0', a_line_no=> 1);
52+ --Act
53+ l_suite.do_execute();
54+ --Assert
55+ ut.expect(ut3_tester_helper.ut_example_tests.g_number).to_be_null;
56+ ut.expect(l_suite.result).to_equal(ut3.ut_utils.gc_error);
57+ ut.expect(l_suite.results_count.disabled_count).to_equal(0);
58+ ut.expect(l_suite.results_count.warnings_count).to_equal(0);
59+ ut.expect(l_suite.results_count.success_count).to_equal(0);
60+ ut.expect(l_suite.results_count.failure_count).to_equal(0);
61+ ut.expect(l_suite.results_count.errored_count).to_equal(1);
62+ end;
63+
64+ procedure aftereall_errors is
65+ l_suite ut3.ut_suite;
66+ begin
67+ --Arrange
68+ l_suite := ut3.ut_suite(a_object_owner => USER, a_object_name => 'UT_EXAMPLE_TESTS', a_line_no=> 1);
69+ l_suite.path := 'ut3_tester_helper.ut_example_tests';
70+ l_suite.after_all_list := ut3.ut_executables(ut3.ut_executable(USER, 'UT_EXAMPLE_TESTS', 'failing_procedure', ut3.ut_utils.gc_after_all));
71+
72+ l_suite.items.extend;
73+ l_suite.items(l_suite.items.last) := ut3.ut_test(a_object_owner => 'ut3_tester_helper', a_object_name => 'UT_EXAMPLE_TESTS',a_name => 'set_g_number_0', a_line_no=> 1);
74+ l_suite.items.extend;
75+ l_suite.items(l_suite.items.last) := ut3.ut_test(a_object_owner => 'ut3_tester_helper', a_object_name => 'UT_EXAMPLE_TESTS',a_name => 'add_1_to_g_number', a_line_no=> 1);
76+ --Act
77+ l_suite.do_execute();
78+ --Assert
79+ ut.expect(ut3_tester_helper.ut_example_tests.g_number).to_equal(1);
80+ ut.expect(l_suite.result).to_equal(ut3.ut_utils.gc_success);
81+ ut.expect(l_suite.results_count.disabled_count).to_equal(0);
82+ ut.expect(l_suite.results_count.warnings_count).to_equal(1);
83+ ut.expect(l_suite.results_count.success_count).to_equal(2);
84+ ut.expect(l_suite.results_count.failure_count).to_equal(0);
85+ ut.expect(l_suite.results_count.errored_count).to_equal(0);
86+ end;
87+
88+ procedure package_without_body is
89+ l_suite ut3.ut_suite;
90+ begin
91+ l_suite := ut3.ut_suite(a_object_owner => USER, a_object_name => 'UT_WITHOUT_BODY', a_line_no=> 1);
92+ l_suite.path := 'UT_WITHOUT_BODY';
93+ l_suite.items.extend;
94+ l_suite.items(l_suite.items.last) := ut3.ut_test(a_object_name => 'ut_without_body',a_name => 'test1', a_line_no=> 1);
95+ --Act
96+ l_suite.do_execute();
97+ --Assert
98+ ut.expect(l_suite.result).to_equal(ut3.ut_utils.gc_error);
99+ end;
100+
101+ procedure package_with_invalid_body is
102+ l_suite ut3.ut_suite;
103+ begin
104+ l_suite := ut3.ut_suite(a_object_owner => USER, a_object_name => 'UT_WITH_INVALID_BODY', a_line_no=> 1);
105+ l_suite.path := 'UT_WITH_INVALID_BODY';
106+ l_suite.items.extend;
107+ l_suite.items(l_suite.items.last) := ut3.ut_test(a_object_name => 'ut_with_invalid_body',a_name => 'test1', a_line_no=> 1);
108+ --Act
109+ l_suite.do_execute();
110+ --Assert
111+ ut.expect(l_suite.result).to_equal(ut3.ut_utils.gc_error);
112+ end;
113+
114+ procedure rollback_auto is
115+ l_suite ut3.ut_suite;
116+ begin
117+ --Arrange
118+ execute immediate 'delete from ut3_tester_helper.ut$test_table';
119+ l_suite := ut3.ut_suite(a_object_owner => USER, a_object_name => 'UT_TRANSACTION_CONTROL', a_line_no=> 1);
120+ l_suite.path := 'ut3_tester_helper.ut_transaction_control';
121+ l_suite.before_all_list := ut3.ut_executables(ut3.ut_executable(USER, 'UT_TRANSACTION_CONTROL', 'setup', ut3.ut_utils.gc_before_all));
122+ l_suite.items.extend;
123+ l_suite.items(l_suite.items.last) := ut3.ut_test(a_object_owner => USER, a_object_name => 'ut_transaction_control',a_name => 'test', a_line_no=> 1);
124+ l_suite.set_rollback_type(ut3.ut_utils.gc_rollback_auto);
125+
126+ --Act
127+ l_suite.do_execute();
128+
129+ --Assert
130+ ut.expect(ut3_tester_helper.main_helper.get_value(q'[ut3_tester_helper.ut_transaction_control.count_rows('t')]')).to_equal(0);
131+ ut.expect(ut3_tester_helper.main_helper.get_value(q'[ut3_tester_helper.ut_transaction_control.count_rows('s')]')).to_equal(0);
132+ end;
133+
134+ procedure rollback_auto_on_failure is
135+ begin
136+ ut3_tester_helper.run_helper.test_rollback_type('test_failure', ut3.ut_utils.gc_rollback_auto, equal(0) );
137+ end;
138+
139+ procedure rollback_manual is
140+ begin
141+ ut3_tester_helper.run_helper.test_rollback_type('test', ut3.ut_utils.gc_rollback_manual, be_greater_than(0) );
142+ end;
143+
144+ procedure rollback_manual_on_failure is
145+ begin
146+ ut3_tester_helper.run_helper.test_rollback_type('test_failure', ut3.ut_utils.gc_rollback_manual, be_greater_than(0) );
147+ end;
148+
149+ procedure trim_transaction_invalidators is
150+ l_suite ut3.ut_suite;
151+ begin
152+ --arrange
153+ l_suite := ut3.ut_suite(a_object_owner => USER, a_object_name => 'UT_EXAMPLE_TESTS', a_line_no=> 1);
154+ for i in 1 .. 100 loop
155+ l_suite.add_transaction_invalidator('schema_name.package_name.procedure_name'||i);
156+ end loop;
157+ --Act
158+ l_suite.rollback_to_savepoint('dummy_savepoint');
159+ --Assert
160+ ut.expect(l_suite.warnings.count).to_equal(1);
161+ end;
162+
163+ end;
164+ /
0 commit comments