Skip to content

Commit 7bd2c80

Browse files
add UtplsqlParserBugFixTest.java generated by Xtend 2.20.0
1 parent 48c4060 commit 7bd2c80

File tree

1 file changed

+196
-98
lines changed

1 file changed

+196
-98
lines changed
Lines changed: 196 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*
1+
/**
22
* Copyright 2018 Philipp Salvisberg <philipp.salvisberg@trivadis.com>
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,103 +13,201 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package org.utplsql.sqldev.test.parser
16+
package org.utplsql.sqldev.test.parser;
1717

18-
import org.junit.Assert
19-
import org.junit.Test
20-
import org.utplsql.sqldev.parser.UtplsqlParser
21-
22-
class UtplsqlParserBugFixTest {
23-
24-
@Test
25-
// https://github.com/utPLSQL/utPLSQL-SQLDeveloper/issues/1
26-
def issue1MatchingExprInStringLiterals() {
27-
val plsql = '''
28-
create or replace package body test_expect_not_to_be_null
29-
is
30-
gc_object_name constant varchar2(30) := 't_not_to_be_null_test';
31-
gc_nested_table_name constant varchar2(30) := 'tt_not_to_be_null_test';
32-
gc_varray_name constant varchar2(30) := 'tv_not_to_be_null_test';
33-
34-
procedure cleanup_expectations
35-
is
36-
begin
37-
ut3.ut_expectation_processor.clear_expectations();
38-
end;
39-
40-
procedure create_types
41-
is
42-
pragma autonomous_transaction;
43-
begin
44-
execute immediate 'create type '||gc_object_name||' is object (dummy number)';
45-
execute immediate ' create type '||gc_nested_table_name||' is table of number';
46-
execute immediate '
47-
create type '||gc_varray_name||' is varray(1) of number';
48-
end;
49-
50-
procedure drop_types
51-
is
52-
pragma autonomous_transaction;
53-
begin
54-
execute immediate 'drop type '||gc_object_name;
55-
execute immediate ' drop type '||gc_nested_table_name;
56-
execute immediate '
57-
drop type '||gc_varray_name;
58-
end;
59-
60-
procedure blob_not_null
61-
is
62-
begin
63-
--Act
64-
execute immediate expectations_helpers.unary_expectation_block('not_to_be_null', 'blob', 'to_blob(''abc'')');
65-
--Assert
66-
ut.expect(anydata.convertCollection(ut3.ut_expectation_processor.get_failed_expectations())).to_be_empty();
67-
end;
68-
69-
--and so on...
70-
71-
end;
72-
'''
73-
val parser = new UtplsqlParser(plsql)
74-
Assert.assertEquals("test_expect_not_to_be_null.cleanup_expectations", parser.getPathAt(parser.toPosition(7,1)))
75-
Assert.assertEquals("test_expect_not_to_be_null.create_types", parser.getPathAt(parser.toPosition(13,1)))
76-
// was: '||gc_varray_name||'.drop_types
77-
Assert.assertEquals("test_expect_not_to_be_null.drop_types", parser.getPathAt(parser.toPosition(23,1)))
78-
// was: '||gc_varray_name||'.blob_not_null
79-
Assert.assertEquals("test_expect_not_to_be_null.blob_not_null", parser.getPathAt(parser.toPosition(33,1)))
80-
}
81-
82-
@Test
83-
// https://github.com/utPLSQL/utPLSQL-SQLDeveloper/issues/7
84-
def issue7WrongPositionWithWindowsLineSeparator() {
85-
val plsql = '''
86-
create or replace package test_expect_not_to_be_null
87-
is
88-
--%suite(expectations - not_to_be_null)
89-
--%suitepath(utplsql.core.expectations.unary)
90-
91-
--%aftereach
92-
procedure cleanup_expectations;
93-
94-
--%beforeall
95-
procedure create_types;
96-
97-
--%afterall
98-
procedure drop_types;
99-
100-
--%test(Gives success for not null blob)
101-
procedure blob_not_null;
102-
103-
--%test(Gives success for blob with length 0)
104-
procedure blob_0_length;
105-
106-
-- ...
107-
end test_expect_not_to_be_null;
108-
/
109-
'''
110-
val parser = new UtplsqlParser(plsql)
111-
// was: test_expect_not_to_be_null.create_types
112-
Assert.assertEquals("test_expect_not_to_be_null.blob_not_null", parser.getPathAt(parser.toPosition(13,26)))
113-
}
18+
import org.eclipse.xtend2.lib.StringConcatenation;
19+
import org.junit.Assert;
20+
import org.junit.Test;
21+
import org.utplsql.sqldev.parser.UtplsqlParser;
11422

23+
@SuppressWarnings("all")
24+
public class UtplsqlParserBugFixTest {
25+
@Test
26+
public void issue1MatchingExprInStringLiterals() {
27+
StringConcatenation _builder = new StringConcatenation();
28+
_builder.append("create or replace package body test_expect_not_to_be_null");
29+
_builder.newLine();
30+
_builder.append("is");
31+
_builder.newLine();
32+
_builder.append(" ");
33+
_builder.append("gc_object_name constant varchar2(30) := \'t_not_to_be_null_test\';");
34+
_builder.newLine();
35+
_builder.append(" ");
36+
_builder.append("gc_nested_table_name constant varchar2(30) := \'tt_not_to_be_null_test\';");
37+
_builder.newLine();
38+
_builder.append(" ");
39+
_builder.append("gc_varray_name constant varchar2(30) := \'tv_not_to_be_null_test\';");
40+
_builder.newLine();
41+
_builder.newLine();
42+
_builder.append(" ");
43+
_builder.append("procedure cleanup_expectations");
44+
_builder.newLine();
45+
_builder.append(" ");
46+
_builder.append("is");
47+
_builder.newLine();
48+
_builder.append(" ");
49+
_builder.append("begin");
50+
_builder.newLine();
51+
_builder.append(" ");
52+
_builder.append("ut3.ut_expectation_processor.clear_expectations();");
53+
_builder.newLine();
54+
_builder.append(" ");
55+
_builder.append("end;");
56+
_builder.newLine();
57+
_builder.newLine();
58+
_builder.append(" ");
59+
_builder.append("procedure create_types");
60+
_builder.newLine();
61+
_builder.append(" ");
62+
_builder.append("is");
63+
_builder.newLine();
64+
_builder.append(" ");
65+
_builder.append("pragma autonomous_transaction;");
66+
_builder.newLine();
67+
_builder.append(" ");
68+
_builder.append("begin");
69+
_builder.newLine();
70+
_builder.append(" ");
71+
_builder.append("execute immediate \'create type \'||gc_object_name||\' is object (dummy number)\';");
72+
_builder.newLine();
73+
_builder.append(" ");
74+
_builder.append("execute immediate \' create type \'||gc_nested_table_name||\' is table of number\';");
75+
_builder.newLine();
76+
_builder.append(" ");
77+
_builder.append("execute immediate \'");
78+
_builder.newLine();
79+
_builder.append(" ");
80+
_builder.append("create type \'||gc_varray_name||\' is varray(1) of number\';");
81+
_builder.newLine();
82+
_builder.append(" ");
83+
_builder.append("end;");
84+
_builder.newLine();
85+
_builder.newLine();
86+
_builder.append(" ");
87+
_builder.append("procedure drop_types");
88+
_builder.newLine();
89+
_builder.append(" ");
90+
_builder.append("is");
91+
_builder.newLine();
92+
_builder.append(" ");
93+
_builder.append("pragma autonomous_transaction;");
94+
_builder.newLine();
95+
_builder.append(" ");
96+
_builder.append("begin");
97+
_builder.newLine();
98+
_builder.append(" ");
99+
_builder.append("execute immediate \'drop type \'||gc_object_name;");
100+
_builder.newLine();
101+
_builder.append(" ");
102+
_builder.append("execute immediate \' drop type \'||gc_nested_table_name;");
103+
_builder.newLine();
104+
_builder.append(" ");
105+
_builder.append("execute immediate \'");
106+
_builder.newLine();
107+
_builder.append(" ");
108+
_builder.append("drop type \'||gc_varray_name;");
109+
_builder.newLine();
110+
_builder.append(" ");
111+
_builder.append("end;");
112+
_builder.newLine();
113+
_builder.newLine();
114+
_builder.append(" ");
115+
_builder.append("procedure blob_not_null");
116+
_builder.newLine();
117+
_builder.append(" ");
118+
_builder.append("is");
119+
_builder.newLine();
120+
_builder.append(" ");
121+
_builder.append("begin");
122+
_builder.newLine();
123+
_builder.append(" ");
124+
_builder.append("--Act");
125+
_builder.newLine();
126+
_builder.append(" ");
127+
_builder.append("execute immediate expectations_helpers.unary_expectation_block(\'not_to_be_null\', \'blob\', \'to_blob(\'\'abc\'\')\');");
128+
_builder.newLine();
129+
_builder.append(" ");
130+
_builder.append("--Assert");
131+
_builder.newLine();
132+
_builder.append(" ");
133+
_builder.append("ut.expect(anydata.convertCollection(ut3.ut_expectation_processor.get_failed_expectations())).to_be_empty();");
134+
_builder.newLine();
135+
_builder.append(" ");
136+
_builder.append("end;");
137+
_builder.newLine();
138+
_builder.newLine();
139+
_builder.append("--and so on...");
140+
_builder.newLine();
141+
_builder.newLine();
142+
_builder.append("end;");
143+
_builder.newLine();
144+
final String plsql = _builder.toString();
145+
final UtplsqlParser parser = new UtplsqlParser(plsql);
146+
Assert.assertEquals("test_expect_not_to_be_null.cleanup_expectations", parser.getPathAt(parser.toPosition(7, 1)));
147+
Assert.assertEquals("test_expect_not_to_be_null.create_types", parser.getPathAt(parser.toPosition(13, 1)));
148+
Assert.assertEquals("test_expect_not_to_be_null.drop_types", parser.getPathAt(parser.toPosition(23, 1)));
149+
Assert.assertEquals("test_expect_not_to_be_null.blob_not_null", parser.getPathAt(parser.toPosition(33, 1)));
150+
}
151+
152+
@Test
153+
public void issue7WrongPositionWithWindowsLineSeparator() {
154+
StringConcatenation _builder = new StringConcatenation();
155+
_builder.append("create or replace package test_expect_not_to_be_null");
156+
_builder.newLine();
157+
_builder.append("is");
158+
_builder.newLine();
159+
_builder.append(" ");
160+
_builder.append("--%suite(expectations - not_to_be_null)");
161+
_builder.newLine();
162+
_builder.append(" ");
163+
_builder.append("--%suitepath(utplsql.core.expectations.unary)");
164+
_builder.newLine();
165+
_builder.newLine();
166+
_builder.append(" ");
167+
_builder.append("--%aftereach");
168+
_builder.newLine();
169+
_builder.append(" ");
170+
_builder.append("procedure cleanup_expectations;");
171+
_builder.newLine();
172+
_builder.newLine();
173+
_builder.append(" ");
174+
_builder.append("--%beforeall");
175+
_builder.newLine();
176+
_builder.append(" ");
177+
_builder.append("procedure create_types;");
178+
_builder.newLine();
179+
_builder.newLine();
180+
_builder.append(" ");
181+
_builder.append("--%afterall");
182+
_builder.newLine();
183+
_builder.append(" ");
184+
_builder.append("procedure drop_types;");
185+
_builder.newLine();
186+
_builder.newLine();
187+
_builder.append(" ");
188+
_builder.append("--%test(Gives success for not null blob)");
189+
_builder.newLine();
190+
_builder.append(" ");
191+
_builder.append("procedure blob_not_null;");
192+
_builder.newLine();
193+
_builder.newLine();
194+
_builder.append(" ");
195+
_builder.append("--%test(Gives success for blob with length 0)");
196+
_builder.newLine();
197+
_builder.append(" ");
198+
_builder.append("procedure blob_0_length;");
199+
_builder.newLine();
200+
_builder.append(" ");
201+
_builder.newLine();
202+
_builder.append(" ");
203+
_builder.append("-- ...");
204+
_builder.newLine();
205+
_builder.append("end test_expect_not_to_be_null;");
206+
_builder.newLine();
207+
_builder.append("/");
208+
_builder.newLine();
209+
final String plsql = _builder.toString();
210+
final UtplsqlParser parser = new UtplsqlParser(plsql);
211+
Assert.assertEquals("test_expect_not_to_be_null.blob_not_null", parser.getPathAt(parser.toPosition(13, 26)));
212+
}
115213
}

0 commit comments

Comments
 (0)