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

Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
c787e47
Added support for multiple occurrences of before and after blocks.
jgebal Mar 4, 2018
2399981
tmp
jgebal Mar 14, 2018
2631355
Fixed issue with null items list.
jgebal Mar 15, 2018
a05475a
Redefined event listeners mechanism.
jgebal Mar 25, 2018
f955d2a
Redefined event listeners mechanism.
jgebal Mar 25, 2018
430f76f
Fixed minor bug in XUnit reporter (showing CDATA for errors even when…
jgebal Mar 25, 2018
2537ced
Changed propagation of rollback. Now rollback will propagate from par…
jgebal Mar 29, 2018
9308662
Fixed examples.
jgebal Mar 29, 2018
17ee8cb
Fixed test for empty description in 11g.
jgebal Mar 29, 2018
93be873
Fixed test for empty description in 11g.
jgebal Mar 29, 2018
75b96c3
Fixed double warning on missing endcontext annotation.
jgebal Mar 29, 2018
a6dadcc
fix in test to overcome 11g XML missing attributes in 3.0.4
jgebal Mar 30, 2018
4bc7ced
Merge branch 'develop' into feature/support_of_context
jgebal Apr 7, 2018
8a26845
Fixes after merging from develop.
jgebal Apr 7, 2018
e9c4e80
Fixed test failure on 11g R2 - some issues with LIKE operator, long p…
jgebal Apr 7, 2018
bfbfa43
Updated documentation.
jgebal Apr 7, 2018
9cd61bf
Marking first column as bold
jgebal Apr 7, 2018
1adf35d
Changed the way reporters events are registered.
jgebal Apr 14, 2018
71d0b70
Fixed issues with comment-replace in big package specs.
jgebal Apr 14, 2018
8617613
Updated test for comments removal to include multi-line comments with…
jgebal Apr 16, 2018
51ba943
Updated documentation with new and changed annotations.
jgebal Apr 16, 2018
ad3f830
Changed behaviour for duplicate annotations - first wins.
jgebal Apr 19, 2018
4346b57
Updates to documentation.
jgebal Apr 20, 2018
b1ff0fc
Updates to documentation.
jgebal Apr 20, 2018
ab5a1ca
Updated and extended documentation for annotations.
jgebal Apr 22, 2018
e672ef0
Added description of `context` to annotations documentation.
jgebal Apr 22, 2018
9897247
Merge remote-tracking branch 'origin/develop' into feature/support_of…
jgebal Apr 22, 2018
b2df93e
Integrated with develop branch changes.
jgebal Apr 22, 2018
d604127
Removed empty header from documentation.
jgebal Apr 24, 2018
9afb7be
A bit of code cleanup and tests alignment.
jgebal Apr 25, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Changed propagation of rollback. Now rollback will propagate from par…
…ent suite to child suite.

Added `ut_utils.gc_rollback_default` and `ut_suite_item.get_rollback_type` to return default when rollback not set explicitly.
Added support for `--%context`/`--%endcontext` annotations.
Refactored `ut_executable` and `ut_executable_test` to have suite-agnostic constructor.
Extended constructor for `ut_suite` to accept `a_name` separately from `a_object_name`.
Removed `ut_suite_item_base` - leftover from refactoring of listener model.
Significant changes to suite builder - added mechanism to display warnings for invalid annotations.
Removed mis-located old tests.
  • Loading branch information
jgebal committed Mar 29, 2018
commit 2537ced2ee6fb1cdddab41c00dca974e8d98924e
1 change: 0 additions & 1 deletion old_tests/RunAll.sql
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,6 @@ begin
'source/core/types/ut_suite_item.tpb',
'source/core/types/ut_suite_item.tps',
'source/core/types/ut_suite_items.tps',
'source/core/types/ut_suite_item_base.tps',
'source/core/types/ut_test.tpb',
'source/core/types/ut_test.tps',
'source/core/types/ut_varchar2_list.tps',
Expand Down
2 changes: 1 addition & 1 deletion old_tests/ut_test/ut_test.AfterEachExecuted.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_passing_test'
);
begin
simple_test.after_each_list := ut_executables(ut_executable(simple_test, 'aftereach', ut_utils.gc_after_each));
simple_test.after_each_list := ut_executables(ut_executable(user, 'ut_example_tests', 'aftereach', ut_utils.gc_after_each));
--Act
simple_test.do_execute();
--Assert
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_exampletest'
);
begin
simple_test.after_each_list := ut_executables(ut_executable(simple_test, 'invalid setup name', ut_utils.gc_after_each));
simple_test.after_each_list := ut_executables(ut_executable(user, 'ut_example_tests', 'invalid setup name', ut_utils.gc_after_each));
ut_example_tests.g_char := 'x';
ut_example_tests.g_char2 := 'x';
--Act
Expand Down
2 changes: 1 addition & 1 deletion old_tests/ut_test/ut_test.AfterEachProcedureNameNull.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_passing_test'
);
begin
simple_test.after_each_list := ut_executables(ut_executable(simple_test, '', ut_utils.gc_after_each));
simple_test.after_each_list := ut_executables(ut_executable(user, 'ut_example_tests', '', ut_utils.gc_after_each));
--Act
simple_test.do_execute();
--Assert
Expand Down
2 changes: 1 addition & 1 deletion old_tests/ut_test/ut_test.BeforeEachExecuted.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_passing_test'
);
begin
simple_test.before_each_list := ut_executables(ut_executable(simple_test, 'beforeeach', ut_utils.gc_before_each));
simple_test.before_each_list := ut_executables(ut_executable(user, 'ut_example_tests', 'beforeeach', ut_utils.gc_before_each));
ut_example_tests.g_number2 := null;
--Act
simple_test.do_execute();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_exampletest'
);
begin
simple_test.before_each_list := ut_executables(ut_executable(simple_test, 'invalid setup name', ut_utils.gc_before_each));
simple_test.before_each_list := ut_executables(ut_executable(user, 'ut_example_tests', 'invalid setup name', ut_utils.gc_before_each));
ut_example_tests.g_char2 := null;
--Act
simple_test.do_execute();
Expand Down
2 changes: 1 addition & 1 deletion old_tests/ut_test/ut_test.BeforeEachProcedureNameNull.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_passing_test'
);
begin
simple_test.before_each_list := ut_executables(ut_executable(simple_test, '', ut_utils.gc_before_each));
simple_test.before_each_list := ut_executables(ut_executable(user, 'ut_example_tests', '', ut_utils.gc_before_each));
ut_example_tests.g_number2 := null;
--Act
simple_test.do_execute();
Expand Down
2 changes: 1 addition & 1 deletion old_tests/ut_test/ut_test.SetupExecutedBeforeTest.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_passing_test'
);
begin
simple_test.before_test_list := ut_executables(ut_executable(simple_test, 'setup', ut_utils.gc_before_test));
simple_test.before_test_list := ut_executables(ut_executable(user, 'ut_example_tests', 'setup', ut_utils.gc_before_test));
ut_example_tests.g_number := null;
--Act
simple_test.do_execute();
Expand Down
2 changes: 1 addition & 1 deletion old_tests/ut_test/ut_test.SetupProcedureNameInvalid.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_exampletest'
);
begin
simple_test.before_test_list := ut_executables(ut_executable(simple_test, 'invalid setup name', ut_utils.gc_before_test));
simple_test.before_test_list := ut_executables(ut_executable(user, 'ut_example_tests', 'invalid setup name', ut_utils.gc_before_test));
ut_example_tests.g_char := null;
--Act
simple_test.do_execute();
Expand Down
2 changes: 1 addition & 1 deletion old_tests/ut_test/ut_test.SetupProcedureNameNull.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_passing_test'
);
begin
simple_test.before_test_list := ut_executables(ut_executable(simple_test, null, ut_utils.gc_before_test));
simple_test.before_test_list := ut_executables(ut_executable(user, 'ut_example_tests', null, ut_utils.gc_before_test));
ut_example_tests.g_number := null;
--Act
simple_test.do_execute();
Expand Down
2 changes: 1 addition & 1 deletion old_tests/ut_test/ut_test.TeardownExecutedAfterTest.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_passing_test'
);
begin
simple_test.after_test_list := ut_executables(ut_executable(simple_test, 'teardown', ut_utils.gc_after_test));
simple_test.after_test_list := ut_executables(ut_executable(user, 'ut_example_tests', 'teardown', ut_utils.gc_after_test));
--Act
simple_test.do_execute();
--Assert
Expand Down
2 changes: 1 addition & 1 deletion old_tests/ut_test/ut_test.TeardownProcedureNameInvalid.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_exampletest'
);
begin
simple_test.after_test_list := ut_executables(ut_executable(simple_test, 'invalid setup name', ut_utils.gc_after_test));
simple_test.after_test_list := ut_executables(ut_executable(user, 'ut_example_tests', 'invalid setup name', ut_utils.gc_after_test));
ut_example_tests.g_char := 'x';
--Act
simple_test.do_execute();
Expand Down
2 changes: 1 addition & 1 deletion old_tests/ut_test/ut_test.TeardownProcedureNameNull.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ declare
,a_name => 'ut_passing_test'
);
begin
simple_test.after_test_list := ut_executables(ut_executable(simple_test, null, ut_utils.gc_after_test));
simple_test.after_test_list := ut_executables(ut_executable(user, 'ut_example_tests', null, ut_utils.gc_after_test));
--Act
simple_test.do_execute();
--Assert
Expand Down
7 changes: 4 additions & 3 deletions source/core/types/ut_executable.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,14 @@ create or replace type body ut_executable is
*/

constructor function ut_executable(
self in out nocopy ut_executable, a_context ut_suite_item,
self in out nocopy ut_executable, a_owner varchar2, a_package varchar2,
a_procedure_name varchar2, a_associated_event_name varchar2
) return self as result is
begin
self.self_type := $$plsql_unit;
self.associated_event_name := a_associated_event_name;
self.owner_name := a_context.object_owner;
self.object_name := a_context.object_name;
self.owner_name := a_owner;
self.object_name := a_package;
self.procedure_name := a_procedure_name;
return;
end;
Expand Down
2 changes: 1 addition & 1 deletion source/core/types/ut_executable.tps
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ create or replace type ut_executable under ut_event_item(
error_backtrace varchar2(4000),
error_stack varchar2(4000),
serveroutput clob,
constructor function ut_executable( self in out nocopy ut_executable, a_context ut_suite_item, a_procedure_name varchar2, a_associated_event_name varchar2) return self as result,
constructor function ut_executable( self in out nocopy ut_executable, a_owner varchar2, a_package varchar2, a_procedure_name varchar2, a_associated_event_name varchar2) return self as result,
member function is_valid(self in out nocopy ut_executable) return boolean,
member function form_name return varchar2,
member procedure do_execute(self in out nocopy ut_executable, a_item in out nocopy ut_suite_item),
Expand Down
7 changes: 4 additions & 3 deletions source/core/types/ut_executable_test.tpb
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
create or replace type body ut_executable_test as
constructor function ut_executable_test(
self in out nocopy ut_executable_test, a_context ut_suite_item,
self in out nocopy ut_executable_test, a_owner varchar2, a_package varchar2,
a_procedure_name varchar2, a_associated_event_name varchar2
) return self as result is
begin
self.self_type := $$plsql_unit;
self.associated_event_name := a_associated_event_name;
self.owner_name := a_context.object_owner;
self.object_name := a_context.object_name;
self.owner_name := a_owner;
self.object_name := a_package;
self.procedure_name := a_procedure_name;
return;
end;
Expand Down
2 changes: 1 addition & 1 deletion source/core/types/ut_executable_test.tps
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ create or replace type ut_executable_test authid current_user under ut_executabl
limitations under the License.
*/
constructor function ut_executable_test(
self in out nocopy ut_executable_test, a_context ut_suite_item,
self in out nocopy ut_executable_test, a_owner varchar2, a_package varchar2,
a_procedure_name varchar2, a_associated_event_name varchar2
) return self as result,

Expand Down
4 changes: 2 additions & 2 deletions source/core/types/ut_logical_suite.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ create or replace type body ut_logical_suite as
self.calc_execution_result();
end;

overriding member procedure set_default_rollback_type(self in out nocopy ut_logical_suite, a_rollback_type integer) is
overriding member procedure set_rollback_type(self in out nocopy ut_logical_suite, a_rollback_type integer) is
begin
self.rollback_type := coalesce(self.rollback_type, a_rollback_type);
for i in 1 .. self.items.count loop
self.items(i).set_default_rollback_type(a_rollback_type);
self.items(i).set_rollback_type(self.rollback_type);
end loop;
end;

Expand Down
2 changes: 1 addition & 1 deletion source/core/types/ut_logical_suite.tps
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ create or replace type ut_logical_suite under ut_suite_item (
member function is_valid(self in out nocopy ut_logical_suite) return boolean,
member procedure add_item(self in out nocopy ut_logical_suite, a_item ut_suite_item),
overriding member procedure mark_as_skipped(self in out nocopy ut_logical_suite),
overriding member procedure set_default_rollback_type(self in out nocopy ut_logical_suite, a_rollback_type integer),
overriding member procedure set_rollback_type(self in out nocopy ut_logical_suite, a_rollback_type integer),
overriding member function do_execute(self in out nocopy ut_logical_suite) return boolean,
overriding member procedure calc_execution_result(self in out nocopy ut_logical_suite),
overriding member procedure mark_as_errored(self in out nocopy ut_logical_suite, a_error_stack_trace varchar2),
Expand Down
6 changes: 4 additions & 2 deletions source/core/types/ut_suite.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@ create or replace type body ut_suite as
limitations under the License.
*/

constructor function ut_suite (self in out nocopy ut_suite , a_object_owner varchar2, a_object_name varchar2) return self as result is
constructor function ut_suite (
self in out nocopy ut_suite, a_object_owner varchar2, a_object_name varchar2, a_suite_name varchar2 := null
) return self as result is
begin
self.self_type := $$plsql_unit;
self.init(a_object_owner, a_object_name, a_object_name);
self.init(a_object_owner, a_object_name, nvl(a_suite_name, a_object_name));
self.items := ut_suite_items();
before_all_list := ut_executables();
after_all_list := ut_executables();
Expand Down
4 changes: 3 additions & 1 deletion source/core/types/ut_suite.tps
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ create or replace type ut_suite under ut_logical_suite (
* Procedure exists within the package of the suite
*/
after_all_list ut_executables,
constructor function ut_suite (self in out nocopy ut_suite , a_object_owner varchar2, a_object_name varchar2) return self as result,
constructor function ut_suite (
self in out nocopy ut_suite, a_object_owner varchar2, a_object_name varchar2, a_suite_name varchar2 := null
) return self as result,
overriding member function do_execute(self in out nocopy ut_suite) return boolean,
overriding member function get_error_stack_traces(self ut_suite) return ut_varchar2_list,
overriding member function get_serveroutputs return clob
Expand Down
13 changes: 9 additions & 4 deletions source/core/types/ut_suite_item.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,17 @@ create or replace type body ut_suite_item as
return ut_utils.int_to_boolean(self.disabled_flag);
end;

member procedure set_default_rollback_type(self in out nocopy ut_suite_item, a_rollback_type integer) is
member procedure set_rollback_type(self in out nocopy ut_suite_item, a_rollback_type integer) is
begin
self.rollback_type := coalesce(self.rollback_type, a_rollback_type);
end;

final member procedure do_execute(self in out nocopy ut_suite_item) is
member function get_rollback_type return integer is
begin
return nvl(self.rollback_type, ut_utils.gc_rollback_default);
end;

final member procedure do_execute(self in out nocopy ut_suite_item) is
l_completed_without_errors boolean;
begin
l_completed_without_errors := self.do_execute();
Expand All @@ -51,7 +56,7 @@ create or replace type body ut_suite_item as
member function create_savepoint_if_needed return varchar2 is
l_savepoint varchar2(30);
begin
if self.rollback_type = ut_utils.gc_rollback_auto then
if get_rollback_type() = ut_utils.gc_rollback_auto then
l_savepoint := ut_utils.gen_savepoint_name();
execute immediate 'savepoint ' || l_savepoint;
end if;
Expand All @@ -62,7 +67,7 @@ create or replace type body ut_suite_item as
ex_savepoint_not_exists exception;
pragma exception_init(ex_savepoint_not_exists, -1086);
begin
if self.rollback_type = ut_utils.gc_rollback_auto and a_savepoint is not null then
if get_rollback_type() = ut_utils.gc_rollback_auto and a_savepoint is not null then
execute immediate 'rollback to ' || a_savepoint;
end if;
exception
Expand Down
39 changes: 37 additions & 2 deletions source/core/types/ut_suite_item.tps
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
create or replace type ut_suite_item force under ut_suite_item_base (
create or replace type ut_suite_item force under ut_event_item (
/*
utPLSQL - Version 3
Copyright 2016 - 2017 utPLSQL Project
Expand All @@ -16,13 +16,48 @@ create or replace type ut_suite_item force under ut_suite_item_base (
limitations under the License.
*/

/**
* owner of the database object (package)
*/
object_owner varchar2(4000 byte),
/**
* name of the database object (package)
*/
object_name varchar2(4000 byte),
/**
* Name of the object (suite, sub-suite, test)
*/
name varchar2(4000 byte),
/**
* Description fo the suite item (as given by the annotation)
*/
description varchar2(4000 byte),

/**
* Full path of the invocation of the item (including the items name itself)
*/
path varchar2(4000 byte),
/**
* The type of the rollback behavior
*/
rollback_type integer(1),
/**
* Indicates if the test is to be disabled by execution
*/
disabled_flag integer(1),
--execution result fields
start_time timestamp with time zone,
end_time timestamp with time zone,
result integer(1),
warnings ut_varchar2_list,
results_count ut_results_counter,
transaction_invalidators ut_varchar2_list,
member procedure init(self in out nocopy ut_suite_item, a_object_owner varchar2, a_object_name varchar2, a_name varchar2),
member procedure set_disabled_flag(self in out nocopy ut_suite_item, a_disabled_flag boolean),
member function get_disabled_flag return boolean,
not instantiable member procedure mark_as_skipped(self in out nocopy ut_suite_item),
member procedure set_default_rollback_type(self in out nocopy ut_suite_item, a_rollback_type integer),
member procedure set_rollback_type(self in out nocopy ut_suite_item, a_rollback_type integer),
member function get_rollback_type return integer,
member function create_savepoint_if_needed return varchar2,
member procedure rollback_to_savepoint(self in out nocopy ut_suite_item, a_savepoint varchar2),
member function get_transaction_invalidators return ut_varchar2_list,
Expand Down
56 changes: 0 additions & 56 deletions source/core/types/ut_suite_item_base.tps

This file was deleted.

2 changes: 1 addition & 1 deletion source/core/types/ut_test.tpb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ create or replace type body ut_test as
begin
self.self_type := $$plsql_unit;
self.init(a_object_owner, a_object_name, a_name);
self.item := ut_executable_test(self, a_name, ut_utils.gc_test_execute);
self.item := ut_executable_test(a_object_owner, a_object_name, a_name, ut_utils.gc_test_execute);
self.before_each_list := ut_executables();
self.before_test_list := ut_executables();
self.after_test_list := ut_executables();
Expand Down
Loading