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

Skip to content

Commit 1d3109b

Browse files
Pavel KaplyaPazus
authored andcommitted
object model with pl/sql beautifier rules
1 parent 5b5767c commit 1d3109b

41 files changed

Lines changed: 1083 additions & 842 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

examples/RunExampleTestSuite.sql

Lines changed: 49 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,53 @@
1+
PL/SQL Developer Test script 3.0
2+
45
13
--Shows how to create a test suite in code and call the test runner.
24
--No tables are used for this.
35
--Suite Management packages are when developed will make this easier.
4-
Clear Screen
5-
Set Serveroutput On Size Unlimited
6-
7-
Declare
8-
testtoexecute ut_types.single_test;
9-
Suite Ut_Types.Test_Suite;
10-
testresults ut_types.test_suite_results;
11-
Begin
12-
Suite.Suite_name := 'Test Suite Name';
13-
Suite.Tests := ut_Types.Test_List();
14-
15-
Testtoexecute.object_name := 'ut_exampletest';
16-
Testtoexecute.setup_procedure := 'Setup';
17-
TestToExecute.teardown_procedure := 'TearDown';
18-
TestToExecute.test_procedure := 'ut_exampletest';
19-
20-
Suite.Tests.Extend;
21-
Suite.Tests(Suite.Tests.Last) := Testtoexecute;
22-
23-
Testtoexecute.object_name := 'ut_exampletest2';
24-
Testtoexecute.setup_procedure := 'Setup';
25-
TestToExecute.teardown_procedure := 'TearDown';
26-
TestToExecute.test_procedure := 'ut_exampletest';
27-
28-
Suite.Tests.Extend;
29-
Suite.Tests(Suite.Tests.LAST) := TestToExecute;
30-
31-
ut_Test_Runner.Execute_Tests(Suite,null,TestResults);
32-
33-
-- No reporter used in this example so outputing the results manually.
34-
FOR test_idx in TestResults.first .. TestResults.last
35-
LOOP
36-
Dbms_Output.Put_Line('---------------------------------------------------');
37-
Dbms_Output.Put_Line('Test:' || Testresults(Test_Idx).Test.Object_Name || '.' || Testresults(Test_Idx).Test.Test_Procedure );
38-
dbms_output.put_line('Result: ' || Ut_Types.Test_Result_To_Char(TestResults(test_idx).result) );
39-
Dbms_Output.Put_Line('Assert Results:');
40-
FOR I in TestResults(test_idx).Assert_Results.First .. TestResults(test_idx).Assert_Results.Last
41-
Loop
42-
Dbms_Output.Put_Line(I || ' - result: ' || Ut_Types.Test_Result_To_Char(Testresults(Test_Idx).Assert_Results(I).Result) );
43-
dbms_output.put_line(I || ' - Message: ' || TestResults(test_idx).Assert_Results(I).Message);
44-
END LOOP;
45-
END LOOP;
46-
dbms_output.put_line('---------------------------------------------------');
47-
End;
48-
/
6+
--Clear Screen
7+
--Set Serveroutput On Size Unlimited
498

9+
declare
10+
testtoexecute ut_single_test;
11+
suite ut_test_suite;
12+
-- testresults ut_suite_results;
13+
test_item ut_single_test;
14+
begin
15+
suite := ut_test_suite(a_suite_name => 'Test Suite Name' /*,a_tests => ut_Test_List()*/);
16+
17+
testtoexecute := ut_single_test(a_object_name => 'ut_exampletest'
18+
,a_test_procedure => 'ut_exAmpletest'
19+
,a_setup_procedure => 'Setup'
20+
,a_teardown_procedure => 'tEardown');
21+
22+
suite.add_test(testtoexecute);
23+
24+
testtoexecute := ut_single_test(a_object_name => 'UT_EXAMPLETEST2'
25+
,a_test_procedure => 'UT_EXAMPLETEST'
26+
,a_setup_procedure => 'SETUP'
27+
,a_teardown_procedure => 'TEARDOWN');
28+
29+
suite.add_test(testtoexecute);
30+
suite.execute;
31+
32+
-- No reporter used in this example so outputing the results manually.
33+
for test_idx in suite.items.first .. suite.items.last loop
34+
test_item := treat(suite.items(test_idx) as ut_single_test);
35+
dbms_output.put_line('---------------------------------------------------');
36+
dbms_output.put_line('Test:' || test_item.call_params.object_name || '.' || test_item.call_params.test_procedure);
37+
dbms_output.put_line('Result: ' || test_item.execution_result.result_to_char);
38+
dbms_output.put_line('Assert Results:');
39+
for i in test_item.assert_results.first .. test_item.assert_results.last loop
40+
dbms_output.put_line(i || ' - result: ' ||
41+
test_item.assert_results(i).result_to_char);
42+
dbms_output.put_line(i || ' - Message: ' || test_item.assert_results(i).message);
43+
end loop;
44+
end loop;
45+
dbms_output.put_line('---------------------------------------------------');
46+
end;
47+
48+
0
49+
4
50+
call_params.owner
51+
52+
schema
53+
part1

examples/ut_exampletest.pkb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ AS
2020
ut_assert.are_Equal('Test 2 Should Fail',1,2);
2121
end;
2222

23-
END;
23+
END;
24+
/

examples/ut_exampletest.pks

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ AS
33
procedure Setup;
44
procedure TearDown;
55
procedure ut_exampletest;
6-
END;
6+
END;
7+
/

examples/ut_exampletest2.pkb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ AS
2020
ut_assert.are_Equal('Test 2 Should Pass',2,2);
2121
end;
2222

23-
END;
23+
END;
24+
/

examples/ut_exampletest2.pks

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ AS
33
procedure Setup;
44
procedure TearDown;
55
procedure ut_exampletest;
6-
END;
6+
END;
7+
/

source/PLSQL beautifier rules.br

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
Version=1
2+
RightMargin=120
3+
Indent=2
4+
UseTabCharacter=FALSE
5+
TabCharacterSize=2
6+
AlignDeclarationGroups=TRUE
7+
AlignAssignmentGroups=TRUE
8+
KeywordCase=2
9+
IdentifierCase=2
10+
UseSpecialCase=TRUE
11+
ItemList.Format=1
12+
ItemList.Align=TRUE
13+
ItemList.CommaAfter=FALSE
14+
ItemList.AtLeftMargin=FALSE
15+
EmptyLines=1
16+
ThenOnNewLine=FALSE
17+
LoopOnNewLine=FALSE
18+
DML.LeftAlignKeywords=FALSE
19+
DML.LeftAlignItems=TRUE
20+
DML.OnOneLineIfPossible=TRUE
21+
DML.WhereSplitAndOr=TRUE
22+
DML.WhereAndOrAfterExpression=FALSE
23+
DML.WhereAndOrUnderWhere=TRUE
24+
DML.JoinSplitBeforeOn=TRUE
25+
DML.InsertItemList.Format=1
26+
DML.InsertItemList.Align=FALSE
27+
DML.InsertItemList.CommaAfter=FALSE
28+
DML.InsertItemList.AtLeftMargin=FALSE
29+
DML.SelectItemList.Format=2
30+
DML.SelectItemList.Align=TRUE
31+
DML.SelectItemList.CommaAfter=FALSE
32+
DML.SelectItemList.AtLeftMargin=FALSE
33+
DML.UpdateItemList.Format=2
34+
DML.UpdateItemList.Align=TRUE
35+
DML.UpdateItemList.CommaAfter=FALSE
36+
DML.UpdateItemList.AtLeftMargin=FALSE
37+
ParameterDeclarationList.Format=0
38+
ParameterDeclarationList.Align=TRUE
39+
ParameterDeclarationList.CommaAfter=FALSE
40+
ParameterDeclarationList.AtLeftMargin=FALSE
41+
RecordFieldList.Format=1
42+
RecordFieldList.Align=TRUE
43+
RecordFieldList.CommaAfter=FALSE
44+
RecordFieldList.AtLeftMargin=FALSE
45+
SplitAndOr=FALSE
46+
AndOrAfterExpression=FALSE
47+
[SpecialCase]
48+
ADD_MONTHS
49+
CEIL
50+
FLOOR
51+
JSON
52+
JSON_LIST
53+
MONTHS_BETWEEN
54+
ROUND

source/install.sql

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
1-
@@ut_types.pks
1+
@@types/ut_test_call_params.tps
2+
@@types/ut_assert_result.tps
3+
@@types/ut_assert_list.tps
24
@@ut_metadata.pks
3-
@@ut_test_runner.pks
4-
@@ut_reporter_execution.pks
55
@@ut_assert.pks
6-
@@ut_dbms_ouput_reporter.pks
7-
@@ut_test_execute.pks
8-
6+
@@types/ut_execution_result.tps
7+
@@types/ut_suite_reporter.tps
8+
@@types/ut_test_object.tps
9+
@@types/ut_test_objects_list.tps
10+
@@types/ut_single_test.tps
11+
@@types/ut_test_suite.tps
12+
@@types/ut_suite_reporters.tps
13+
@@types/ut_complex_suite_reporter.tps
14+
@@types/ut_dbms_output_suite_reporter.tps
15+
@@ut_types.pks
16+
@@ut_test_runner.pks
917
@@ut_types.pkb
18+
@@types/ut_assert_result.tpb
19+
@@types/ut_execution_result.tpb
20+
@@types/ut_single_test.tpb
21+
@@types/ut_test_suite.tpb
22+
@@types/ut_dbms_output_suite_reporter.tpb
1023
@@ut_metadata.pkb
1124
@@ut_test_runner.pkb
12-
@@ut_reporter_execution.pkb
1325
@@ut_assert.pkb
14-
@@ut_dbms_ouput_reporter.pkb
15-
@@ut_test_execute.pkb
1626

source/types/ut_assert_list.tps

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
create or replace type ut_assert_list as table of ut_assert_result;
2+
/

source/types/ut_assert_result.tpb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
create or replace type body ut_assert_result is
2+
3+
member function result_to_char(self in ut_assert_result) return varchar2 is
4+
begin
5+
return ut_types.test_result_to_char(result);
6+
end;
7+
8+
end;
9+
/

source/types/ut_assert_result.tps

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
create or replace type ut_assert_result as object
2+
(
3+
result integer(1),
4+
message varchar2(4000 char),
5+
6+
member function result_to_char(self in ut_assert_result) return varchar2
7+
)
8+
not final
9+
/

0 commit comments

Comments
 (0)