Skip to content

Commit a7cb66e

Browse files
convert UtplsqlParserBugFixTest to Java, removing Xtend dependencies
1 parent 7bd2c80 commit a7cb66e

File tree

1 file changed

+92
-191
lines changed

1 file changed

+92
-191
lines changed
Lines changed: 92 additions & 191 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");
@@ -15,199 +15,100 @@
1515
*/
1616
package org.utplsql.sqldev.test.parser;
1717

18-
import org.eclipse.xtend2.lib.StringConcatenation;
1918
import org.junit.Assert;
2019
import org.junit.Test;
2120
import org.utplsql.sqldev.parser.UtplsqlParser;
2221

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

0 commit comments

Comments
 (0)