1- package org .utplsql .sqldev .test .parser
1+ package org .utplsql .sqldev .test .parser ;
22
3- import org .junit .Assert
4- import org .junit .Test
5- import org .utplsql .sqldev .parser .SqlDevParser
3+ import java .util .Set ;
4+ import oracle .dbtools .raptor .navigator .plsql .Member ;
5+ import org .eclipse .xtend2 .lib .StringConcatenation ;
6+ import org .eclipse .xtext .xbase .lib .Conversions ;
7+ import org .eclipse .xtext .xbase .lib .Functions .Function0 ;
8+ import org .junit .Assert ;
9+ import org .junit .Test ;
10+ import org .utplsql .sqldev .parser .SqlDevParser ;
611
7- class SqlDevParserTest {
8- val packageSpec = '''
9- CREATE OR REPLACE PACKAGE junit_utplsql_test1_pkg is
10- --%suite (JUnit testing )
11- --%suitepath (a )
12-
13- --%context (test context )
14-
15- --%test (test 1 - OK )
16- PRoCeDURE test_1_ok ;
17-
18- --%test (test 2 - NOK )
19- PROCEDURE test_2_nok ;
20-
21- --%test (test 3 - disabled )
22- --%disabled
23- PROCEDURE test_3_disabled ;
24-
25- --%test (test 4 - errored )
26- PROCEDURE test_4_errored ;
27-
28- --%test (test 5 - warnings )
29- PROCEDURE test_5_warnings ;
30- --%endcontext
31-
32- function my_Func (p IN number ) RETURN BOOLEAN ;
33- END ;
34- '''
35-
36- val packageBody = '''
37- CREATE OR REPLACE PACKAGE BODY junit_utplsql_test1_pkg IS
38- PROCEDURE test_1_ok IS
39- BEGIN
40- dbms_output .put_line ('start test 1' );
41- dbms_session .sleep (1 );
42- ut .expect (1 ).to_equal (1 );
43- dbms_output .put_line ('end test 1' );
44- END ;
45-
46- PROCEDURE test_2_nok IS
47- BEGIN
48- dbms_output .put_line ('start test 2' );
49- dbms_session .sleep (2 );
50- ut .expect (1 , 'first assert.' ).to_equal (2 );
51- ut .expect (1 , 'second assert.' ).to_equal (2 );
52- dbms_output .put_line ('end test 2' );
53- END ;
54-
55- PROCEDURE test_3_disabled IS
56- BEGIN
57- NULL ;
58- END ;
59-
60- PROCEDURE test_4_errored IS
61- BEGIN
62- EXECUTE IMMEDIATE 'bla bla' ;
63- END ;
64-
65- PROCEDURE test_5_warnings IS
66- BEGIN
67- COMMIT ; -- will raise a warning
68- ut .expect (1 ).to_equal (1 );
69- END ;
70-
71- FUNCTION my_Func (p IN number ) RETURN BOOLEAN IS
72- RETURN TRUE ;
73- END ;
74- END ;
75- '''
76-
77- @ Test
78- def void packageSpecMembers () {
79- val parser = new SqlDevParser
80- val actual = parser .getMembers (packageSpec )
81- Assert .assertEquals (6 , actual .length )
82- val first = actual .get (0 )
83- Assert .assertEquals ("PROCEDURE" , first .type )
84- Assert .assertEquals ("test_1_ok" , first .name )
85- val last = actual .get (5 )
86- Assert .assertEquals ("FUNCTION" , last .type )
87- Assert .assertEquals ("my_Func" , last .name )
88- }
89-
90- @ Test
91- def void packageBodyMembers () {
92- val parser = new SqlDevParser
93- val actual = parser .getMembers (packageBody )
94- Assert .assertEquals (6 , actual .length )
95- val first = actual .get (0 )
96- Assert .assertEquals ("PROCEDURE" , first .type )
97- Assert .assertEquals ("test_1_ok" , first .name )
98- val last = actual .get (5 )
99- Assert .assertEquals ("FUNCTION" , last .type )
100- Assert .assertEquals ("my_Func" , last .name )
101- }
102-
103- @ Test
104- def void StartLineSpec () {
105- val parser = new SqlDevParser
106- val first = parser .getMemberStartLine (packageSpec , 'test_1_ok' )
107- Assert .assertEquals (8 , first )
108- val last = parser .getMemberStartLine (packageSpec , 'my_func' )
109- Assert .assertEquals (24 , last )
110- }
111-
112- @ Test
113- def void StartLineBody () {
114- val parser = new SqlDevParser
115- val first = parser .getMemberStartLine (packageBody , 'test_1_ok' )
116- Assert .assertEquals (2 , first )
117- val last = parser .getMemberStartLine (packageBody , 'my_func' )
118- Assert .assertEquals (35 , last )
119- }
120-
121-
122-
123- }
12+ @ SuppressWarnings ("all" )
13+ public class SqlDevParserTest {
14+ private final String packageSpec = new Function0 <String >() {
15+ public String apply () {
16+ StringConcatenation _builder = new StringConcatenation ();
17+ _builder .append ("CREATE OR REPLACE PACKAGE junit_utplsql_test1_pkg is" );
18+ _builder .newLine ();
19+ _builder .append (" " );
20+ _builder .append ("--%suite(JUnit testing)" );
21+ _builder .newLine ();
22+ _builder .append (" " );
23+ _builder .append ("--%suitepath(a)" );
24+ _builder .newLine ();
25+ _builder .newLine ();
26+ _builder .append (" " );
27+ _builder .append ("--%context(test context)" );
28+ _builder .newLine ();
29+ _builder .newLine ();
30+ _builder .append (" " );
31+ _builder .append ("--%test(test 1 - OK) " );
32+ _builder .newLine ();
33+ _builder .append (" " );
34+ _builder .append ("PRoCeDURE test_1_ok;" );
35+ _builder .newLine ();
36+ _builder .newLine ();
37+ _builder .append (" " );
38+ _builder .append ("--%test(test 2 - NOK)" );
39+ _builder .newLine ();
40+ _builder .append (" " );
41+ _builder .append ("PROCEDURE test_2_nok;" );
42+ _builder .newLine ();
43+ _builder .newLine ();
44+ _builder .append (" " );
45+ _builder .append ("--%test(test 3 - disabled)" );
46+ _builder .newLine ();
47+ _builder .append (" " );
48+ _builder .append ("--%disabled" );
49+ _builder .newLine ();
50+ _builder .append (" " );
51+ _builder .append ("PROCEDURE test_3_disabled;" );
52+ _builder .newLine ();
53+ _builder .newLine ();
54+ _builder .append (" " );
55+ _builder .append ("--%test(test 4 - errored)" );
56+ _builder .newLine ();
57+ _builder .append (" " );
58+ _builder .append ("PROCEDURE test_4_errored;" );
59+ _builder .newLine ();
60+ _builder .append (" " );
61+ _builder .newLine ();
62+ _builder .append (" " );
63+ _builder .append ("--%test(test 5 - warnings)" );
64+ _builder .newLine ();
65+ _builder .append (" " );
66+ _builder .append ("PROCEDURE test_5_warnings;" );
67+ _builder .newLine ();
68+ _builder .append (" " );
69+ _builder .append ("--%endcontext" );
70+ _builder .newLine ();
71+ _builder .newLine ();
72+ _builder .append (" " );
73+ _builder .append ("function my_Func (p IN number) RETURN BOOLEAN;" );
74+ _builder .newLine ();
75+ _builder .append ("END;" );
76+ _builder .newLine ();
77+ return _builder .toString ();
78+ }
79+ }.apply ();
80+
81+ private final String packageBody = new Function0 <String >() {
82+ public String apply () {
83+ StringConcatenation _builder = new StringConcatenation ();
84+ _builder .append ("CREATE OR REPLACE PACKAGE BODY junit_utplsql_test1_pkg IS" );
85+ _builder .newLine ();
86+ _builder .append (" " );
87+ _builder .append ("PROCEDURE test_1_ok IS" );
88+ _builder .newLine ();
89+ _builder .append (" " );
90+ _builder .append ("BEGIN" );
91+ _builder .newLine ();
92+ _builder .append (" " );
93+ _builder .append ("dbms_output.put_line(\' start test 1\' );" );
94+ _builder .newLine ();
95+ _builder .append (" " );
96+ _builder .append ("dbms_session.sleep(1);" );
97+ _builder .newLine ();
98+ _builder .append (" " );
99+ _builder .append ("ut.expect(1).to_equal(1);" );
100+ _builder .newLine ();
101+ _builder .append (" " );
102+ _builder .append ("dbms_output.put_line(\' end test 1\' );" );
103+ _builder .newLine ();
104+ _builder .append (" " );
105+ _builder .append ("END;" );
106+ _builder .newLine ();
107+ _builder .newLine ();
108+ _builder .append (" " );
109+ _builder .append ("PROCEDURE test_2_nok IS" );
110+ _builder .newLine ();
111+ _builder .append (" " );
112+ _builder .append ("BEGIN" );
113+ _builder .newLine ();
114+ _builder .append (" " );
115+ _builder .append ("dbms_output.put_line(\' start test 2\' );" );
116+ _builder .newLine ();
117+ _builder .append (" " );
118+ _builder .append ("dbms_session.sleep(2);" );
119+ _builder .newLine ();
120+ _builder .append (" " );
121+ _builder .append ("ut.expect(1, \' first assert.\' ).to_equal(2);" );
122+ _builder .newLine ();
123+ _builder .append (" " );
124+ _builder .append ("ut.expect(1, \' second assert.\' ).to_equal(2);" );
125+ _builder .newLine ();
126+ _builder .append (" " );
127+ _builder .append ("dbms_output.put_line(\' end test 2\' );" );
128+ _builder .newLine ();
129+ _builder .append (" " );
130+ _builder .append ("END;" );
131+ _builder .newLine ();
132+ _builder .append (" " );
133+ _builder .newLine ();
134+ _builder .append (" " );
135+ _builder .append ("PROCEDURE test_3_disabled IS" );
136+ _builder .newLine ();
137+ _builder .append (" " );
138+ _builder .append ("BEGIN" );
139+ _builder .newLine ();
140+ _builder .append (" " );
141+ _builder .append ("NULL;" );
142+ _builder .newLine ();
143+ _builder .append (" " );
144+ _builder .append ("END;" );
145+ _builder .newLine ();
146+ _builder .newLine ();
147+ _builder .append (" " );
148+ _builder .append ("PROCEDURE test_4_errored IS" );
149+ _builder .newLine ();
150+ _builder .append (" " );
151+ _builder .append ("BEGIN" );
152+ _builder .newLine ();
153+ _builder .append (" " );
154+ _builder .append ("EXECUTE IMMEDIATE \' bla bla\' ;" );
155+ _builder .newLine ();
156+ _builder .append (" " );
157+ _builder .append ("END;" );
158+ _builder .newLine ();
159+ _builder .newLine ();
160+ _builder .append (" " );
161+ _builder .append ("PROCEDURE test_5_warnings IS" );
162+ _builder .newLine ();
163+ _builder .append (" " );
164+ _builder .append ("BEGIN" );
165+ _builder .newLine ();
166+ _builder .append (" " );
167+ _builder .append ("COMMIT; -- will raise a warning" );
168+ _builder .newLine ();
169+ _builder .append ("\t " );
170+ _builder .append ("ut.expect(1).to_equal(1);" );
171+ _builder .newLine ();
172+ _builder .append (" " );
173+ _builder .append ("END;" );
174+ _builder .newLine ();
175+ _builder .newLine ();
176+ _builder .append (" " );
177+ _builder .append ("FUNCTION my_Func (p IN number) RETURN BOOLEAN IS" );
178+ _builder .newLine ();
179+ _builder .append (" " );
180+ _builder .append ("RETURN TRUE;" );
181+ _builder .newLine ();
182+ _builder .append (" " );
183+ _builder .append ("END;" );
184+ _builder .newLine ();
185+ _builder .append ("END;" );
186+ _builder .newLine ();
187+ return _builder .toString ();
188+ }
189+ }.apply ();
190+
191+ @ Test
192+ public void packageSpecMembers () {
193+ final SqlDevParser parser = new SqlDevParser ();
194+ final Set <Member > actual = parser .getMembers (this .packageSpec );
195+ Assert .assertEquals (6 , ((Object [])Conversions .unwrapArray (actual , Object .class )).length );
196+ final Member first = ((Member [])Conversions .unwrapArray (actual , Member .class ))[0 ];
197+ Assert .assertEquals ("PROCEDURE" , first .type );
198+ Assert .assertEquals ("test_1_ok" , first .name );
199+ final Member last = ((Member [])Conversions .unwrapArray (actual , Member .class ))[5 ];
200+ Assert .assertEquals ("FUNCTION" , last .type );
201+ Assert .assertEquals ("my_Func" , last .name );
202+ }
203+
204+ @ Test
205+ public void packageBodyMembers () {
206+ final SqlDevParser parser = new SqlDevParser ();
207+ final Set <Member > actual = parser .getMembers (this .packageBody );
208+ Assert .assertEquals (6 , ((Object [])Conversions .unwrapArray (actual , Object .class )).length );
209+ final Member first = ((Member [])Conversions .unwrapArray (actual , Member .class ))[0 ];
210+ Assert .assertEquals ("PROCEDURE" , first .type );
211+ Assert .assertEquals ("test_1_ok" , first .name );
212+ final Member last = ((Member [])Conversions .unwrapArray (actual , Member .class ))[5 ];
213+ Assert .assertEquals ("FUNCTION" , last .type );
214+ Assert .assertEquals ("my_Func" , last .name );
215+ }
216+
217+ @ Test
218+ public void StartLineSpec () {
219+ final SqlDevParser parser = new SqlDevParser ();
220+ final int first = parser .getMemberStartLine (this .packageSpec , "test_1_ok" );
221+ Assert .assertEquals (8 , first );
222+ final int last = parser .getMemberStartLine (this .packageSpec , "my_func" );
223+ Assert .assertEquals (24 , last );
224+ }
225+
226+ @ Test
227+ public void StartLineBody () {
228+ final SqlDevParser parser = new SqlDevParser ();
229+ final int first = parser .getMemberStartLine (this .packageBody , "test_1_ok" );
230+ Assert .assertEquals (2 , first );
231+ final int last = parser .getMemberStartLine (this .packageBody , "my_func" );
232+ Assert .assertEquals (35 , last );
233+ }
234+ }
0 commit comments