1 33 34 package edu.rice.cs.drjava.model; 35 36 import edu.rice.cs.drjava.model.definitions.InvalidPackageException; 37 38 import java.io.*; 39 40 import javax.swing.text.BadLocationException ; 41 42 49 public final class GlobalModelCompileSuccessTest extends GlobalModelCompileSuccessTestCase { 50 51 54 public void testCompileAllDifferentSourceRoots() 55 throws BadLocationException , IOException, InterruptedException 56 { 57 File aDir = new File(_tempDir, "a"); 59 File bDir = new File(_tempDir, "b"); 60 aDir.mkdir(); 61 bDir.mkdir(); 62 OpenDefinitionsDocument doc = setupDocument(FOO_TEXT); 63 final File file = new File(aDir, "DrJavaTestFoo.java"); 64 doc.saveFile(new FileSelector(file)); 65 OpenDefinitionsDocument doc2 = setupDocument(BAR_TEXT); 66 final File file2 = new File(bDir, "DrJavaTestBar.java"); 67 doc2.saveFile(new FileSelector(file2)); 68 69 CompileShouldSucceedListener listener = new CompileShouldSucceedListener(false); 70 _model.addListener(listener); 71 _model.getCompilerModel().compileAll(); 72 if (_model.getCompilerModel().getNumErrors() > 0) { 73 fail("compile failed: " + getCompilerErrorString()); 74 } 75 assertCompileErrorsPresent(_name(), false); 76 listener.checkCompileOccurred(); 77 78 File compiled = classForJava(file, "DrJavaTestFoo"); 80 assertTrue(_name() + "Foo Class file doesn't exist after compile", 81 compiled.exists()); 82 File compiled2 = classForJava(file2, "DrJavaTestBar"); 83 assertTrue(_name() + "Bar Class file doesn't exist after compile", 84 compiled2.exists()); 85 _model.removeListener(listener); 86 } 87 88 89 97 public void testCompileClassPathOKDefaultPackage() 98 throws BadLocationException , IOException, InterruptedException 99 { 100 OpenDefinitionsDocument doc1 = setupDocument(FOO_PACKAGE_AS_PART_OF_FIELD); 103 final File fooFile = new File(_tempDir, "DrJavaTestFoo.java"); 104 105 doc1.saveFile(new FileSelector(fooFile)); 106 CompileShouldSucceedListener listener = new CompileShouldSucceedListener(false); 107 _model.addListener(listener); 108 doc1.startCompile(); 109 if (_model.getCompilerModel().getNumErrors() > 0) { 110 fail("compile failed: " + getCompilerErrorString()); 111 } 112 listener.checkCompileOccurred(); 113 _model.removeListener(listener); 114 115 OpenDefinitionsDocument doc2 = setupDocument(FOO2_EXTENDS_FOO_TEXT); 116 final File foo2File = new File(_tempDir, "DrJavaTestFoo2.java"); 117 doc2.saveFile(new FileSelector(foo2File)); 118 119 CompileShouldSucceedListener listener2 = new CompileShouldSucceedListener(false); 120 _model.addListener(listener2); 121 doc2.startCompile(); 122 if (_model.getCompilerModel().getNumErrors() > 0) { 123 fail("compile failed: " + getCompilerErrorString()); 124 } 125 assertCompileErrorsPresent(_name(), false); 126 listener2.checkCompileOccurred(); 127 128 File compiled = classForJava(foo2File, "DrJavaTestFoo2"); 130 assertTrue(_name() + "Class file doesn't exist after compile", 131 compiled.exists()); 132 _model.removeListener(listener2); 133 } 134 135 142 public void testCompileClassPathOKDifferentPackages() throws BadLocationException , IOException, InterruptedException , 143 InvalidPackageException { 144 File aDir = new File(_tempDir, "a"); 146 File bDir = new File(_tempDir, "b"); 147 aDir.mkdir(); 148 bDir.mkdir(); 149 150 OpenDefinitionsDocument doc1 = setupDocument("package a;\n" + "public " + FOO_TEXT); 153 final File fooFile = new File(aDir, "DrJavaTestFoo.java"); 154 doc1.saveFile(new FileSelector(fooFile)); 156 assertEquals("Check package name of doc1", "a", ((AbstractGlobalModel.ConcreteOpenDefDoc) doc1)._packageName); 158 CompileShouldSucceedListener listener = new CompileShouldSucceedListener(false); 161 _model.addListener(listener); 162 163 doc1.startCompile(); 164 if (_model.getCompilerModel().getNumErrors() > 0) { 165 fail("compile failed: " + getCompilerErrorString()); 166 } 167 listener.checkCompileOccurred(); 168 _model.removeListener(listener); 169 170 OpenDefinitionsDocument doc2 = 171 setupDocument("package b;\nimport a.DrJavaTestFoo;\n" + FOO2_EXTENDS_FOO_TEXT); 172 final File foo2File = new File(bDir, "DrJavaTestFoo2.java"); 173 doc2.saveFile(new FileSelector(foo2File)); 175 assertEquals("Check packangeName of doc2", "b", ((AbstractGlobalModel.ConcreteOpenDefDoc) doc2)._packageName); 177 179 CompileShouldSucceedListener listener2 = new CompileShouldSucceedListener(false); 180 _model.addListener(listener2); 181 182 doc2.startCompile(); 183 if (_model.getCompilerModel().getNumErrors() > 0) { 184 fail("compile failed: " + getCompilerErrorString()); 185 } 186 assertCompileErrorsPresent(_name(), false); 187 listener2.checkCompileOccurred(); 188 _model.removeListener(listener2); 189 190 File compiled = classForJava(foo2File, "DrJavaTestFoo2"); 192 assertTrue(_name() + "Class file doesn't exist after compile", 193 compiled.exists()); 194 } 195 } 196 | Popular Tags |