PLSQL/Execution/test/unit/src/org/netbeans/modules/plsql/execution/PlsqlExecutableBlocksMakerTest.java
EADS-3749 encountering issues with the displaying of code in Developer Studio when code folding is enabled
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
5 package org.netbeans.modules.plsql.execution;
7 import java.io.BufferedReader;
9 import java.io.FileInputStream;
10 import java.io.IOException;
11 import java.io.InputStream;
12 import java.io.InputStreamReader;
13 import java.io.OutputStream;
14 import java.util.List;
15 import javax.swing.text.BadLocationException;
16 import javax.swing.text.Document;
17 import org.junit.Test;
18 import static org.junit.Assert.*;
19 import org.junit.Before;
20 import org.netbeans.api.lexer.Language;
21 import org.netbeans.api.lexer.TokenHierarchy;
22 import org.netbeans.api.lexer.TokenSequence;
23 import org.netbeans.junit.NbTestCase;
24 import org.netbeans.modules.plsql.lexer.PlsqlBlockFactory;
25 import org.netbeans.modules.plsql.lexer.PlsqlTokenId;
26 import org.netbeans.modules.plsqlsupport.db.PlsqlExecutableObject;
27 import org.openide.cookies.EditorCookie;
28 import org.openide.filesystems.FileObject;
29 import org.openide.filesystems.FileSystem;
30 import org.openide.filesystems.FileUtil;
31 import org.openide.loaders.DataFolder;
32 import org.openide.loaders.DataObject;
33 import org.openide.util.Exceptions;
34 import org.openide.util.Task;
40 public class PlsqlExecutableBlocksMakerTest extends TestRecordPlayer {
42 private static FileSystem fs = null;
44 public PlsqlExecutableBlocksMakerTest(String name) {
50 fs = FileUtil.createMemoryFileSystem();
55 * Test of makeExceutableObjects method, of class PlsqlExecutableBlocksMaker.
58 public void testMakeExceutableObjects() throws IOException {
60 System.out.println(" Test Exceutable Objects creation");
62 final String plsqlFileName = "Actor.apy";
64 FileObject fileObject = null;
66 fileObject = fs.getRoot().createData(plsqlFileName);
67 doc = getDocument(fileObject, plsqlFileName);
69 PlsqlExecutableBlocksMaker instance = new PlsqlExecutableBlocksMaker(doc);
70 List<PlsqlExecutableObject> makeExceutableObjects = instance.makeExceutableObjects();
72 int size = makeExceutableObjects.size();
73 assertEquals(31, size);
74 processExecutableBLocksBlocks(plsqlFileName,makeExceutableObjects);
76 } catch (BadLocationException ex) {
77 Exceptions.printStackTrace(ex);
78 } catch (IOException ex) {
79 Exceptions.printStackTrace(ex);
81 if (fileObject != null) {
88 public void test1() throws IOException {
90 System.out.println("test 1 - api file");
92 final String plsqlFileName = "FndEvent.api";
94 FileObject fileObject = null;
96 fileObject = fs.getRoot().createData(plsqlFileName);
97 doc = getDocument(fileObject, plsqlFileName);
99 PlsqlExecutableBlocksMaker instance = new PlsqlExecutableBlocksMaker(doc);
100 List<PlsqlExecutableObject> makeExceutableObjects = instance.makeExceutableObjects();
102 int size = makeExceutableObjects.size();
103 assertEquals(12, size);
104 processExecutableBLocksBlocks(plsqlFileName,makeExceutableObjects);
106 } catch (BadLocationException ex) {
107 Exceptions.printStackTrace(ex);
108 } catch (IOException ex) {
109 Exceptions.printStackTrace(ex);
111 if (fileObject != null) {
118 public void test2() throws IOException {
120 System.out.println("test 2 - apy file");
122 final String plsqlFileName = "FndEvent.apy";
124 FileObject fileObject = null;
126 fileObject = fs.getRoot().createData(plsqlFileName);
127 doc = getDocument(fileObject, plsqlFileName);
129 PlsqlExecutableBlocksMaker instance = new PlsqlExecutableBlocksMaker(doc);
130 List<PlsqlExecutableObject> makeExceutableObjects = instance.makeExceutableObjects();
132 int size = makeExceutableObjects.size();
133 assertEquals(41, size);
134 processExecutableBLocksBlocks(plsqlFileName,makeExceutableObjects);
136 } catch (BadLocationException ex) {
137 Exceptions.printStackTrace(ex);
138 } catch (IOException ex) {
139 Exceptions.printStackTrace(ex);
141 if (fileObject != null) {
148 public void test3() throws IOException {
150 System.out.println("test 3 - rdf file");
152 final String plsqlFileName = "FndSecurityPerObject.rdf";
154 FileObject fileObject = null;
156 fileObject = fs.getRoot().createData(plsqlFileName);
157 doc = getDocument(fileObject, plsqlFileName);
159 PlsqlExecutableBlocksMaker instance = new PlsqlExecutableBlocksMaker(doc);
160 List<PlsqlExecutableObject> makeExceutableObjects = instance.makeExceutableObjects();
162 int size = makeExceutableObjects.size();
163 assertEquals(37, size);
164 processExecutableBLocksBlocks(plsqlFileName,makeExceutableObjects);
166 } catch (BadLocationException ex) {
167 Exceptions.printStackTrace(ex);
168 } catch (IOException ex) {
169 Exceptions.printStackTrace(ex);
171 if (fileObject != null) {
178 public void test4() throws IOException {
180 System.out.println("test 4 - ins file");
182 final String plsqlFileName = "FndSetting.ins";
184 FileObject fileObject = null;
186 fileObject = fs.getRoot().createData(plsqlFileName);
187 doc = getDocument(fileObject, plsqlFileName);
189 PlsqlExecutableBlocksMaker instance = new PlsqlExecutableBlocksMaker(doc);
190 List<PlsqlExecutableObject> makeExceutableObjects = instance.makeExceutableObjects();
192 int size = makeExceutableObjects.size();
193 assertEquals(7, size);
194 processExecutableBLocksBlocks(plsqlFileName,makeExceutableObjects);
196 } catch (BadLocationException ex) {
197 Exceptions.printStackTrace(ex);
198 } catch (IOException ex) {
199 Exceptions.printStackTrace(ex);
201 if (fileObject != null) {
208 public void test5() throws IOException {
210 System.out.println("test 5 - sql file");
212 final String plsqlFileName = "fndbasdr.sql";
214 FileObject fileObject = null;
216 fileObject = fs.getRoot().createData(plsqlFileName);
217 doc = getDocument(fileObject, plsqlFileName);
219 PlsqlExecutableBlocksMaker instance = new PlsqlExecutableBlocksMaker(doc);
220 List<PlsqlExecutableObject> makeExceutableObjects = instance.makeExceutableObjects();
222 int size = makeExceutableObjects.size();
223 assertEquals(81, size);
224 processExecutableBLocksBlocks(plsqlFileName,makeExceutableObjects);
226 } catch (BadLocationException ex) {
227 Exceptions.printStackTrace(ex);
228 } catch (IOException ex) {
229 Exceptions.printStackTrace(ex);
231 if (fileObject != null) {
238 public void test6() throws IOException {
240 System.out.println("test 6 - cdb file");
242 final String plsqlFileName = "event.cdb";
244 FileObject fileObject = null;
246 fileObject = fs.getRoot().createData(plsqlFileName);
247 doc = getDocument(fileObject, plsqlFileName);
249 PlsqlExecutableBlocksMaker instance = new PlsqlExecutableBlocksMaker(doc);
250 List<PlsqlExecutableObject> makeExceutableObjects = instance.makeExceutableObjects();
252 int size = makeExceutableObjects.size();
253 assertEquals(9, size);
254 processExecutableBLocksBlocks(plsqlFileName,makeExceutableObjects);
256 } catch (BadLocationException ex) {
257 Exceptions.printStackTrace(ex);
258 } catch (IOException ex) {
259 Exceptions.printStackTrace(ex);
261 if (fileObject != null) {
267 private Document getDocument(FileObject fileObj, String fileName) throws IOException, BadLocationException {
268 InputStream inputStream = new FileInputStream(new File(getDataDir(), fileName));
269 InputStreamReader indexReader = new InputStreamReader(inputStream);
270 BufferedReader input = new BufferedReader(indexReader);
272 while (input.ready()) {
273 content = content + input.readLine() + "\n";
278 writeFile(content, fileObj);
280 DataObject dataObj = DataFolder.find(fileObj);
281 EditorCookie ec = dataObj.getLookup().lookup(EditorCookie.class);
283 Task task = ec.prepareDocument();
285 PlsqlBlockFactory blockFac = dataObj.getLookup().lookup(PlsqlBlockFactory.class);
286 assertNotNull(blockFac);
287 Document doc = ec.getDocument();
289 doc.putProperty(Language.class, PlsqlTokenId.language());
291 TokenHierarchy tokenHier = TokenHierarchy.get(doc);
292 assertNotNull(tokenHier);
293 TokenSequence<PlsqlTokenId> ts = tokenHier.tokenSequence(PlsqlTokenId.language());
295 blockFac.initHierarchy(doc);
301 private void writeFile(String content, FileObject file) throws IOException {
302 OutputStream os = file.getOutputStream();
303 os.write(content.getBytes("UTF-8"));