Author: akazakov
Date: 2011-05-03 18:41:46 -0400 (Tue, 03 May 2011)
New Revision: 31050
Modified:
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.ui.test/META-INF/MANIFEST.MF
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java
Log:
https://issues.jboss.org/browse/JBIDE-8798
Modified:
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.ui.test/META-INF/MANIFEST.MF
===================================================================
---
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.ui.test/META-INF/MANIFEST.MF 2011-05-03
22:37:47 UTC (rev 31049)
+++
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.ui.test/META-INF/MANIFEST.MF 2011-05-03
22:41:46 UTC (rev 31050)
@@ -20,5 +20,6 @@
org.eclipse.jdt.ui,
org.eclipse.ui.ide,
org.jboss.tools.jst.jsp.base.test,
- org.eclipse.ltk.core.refactoring;bundle-version="3.5.100"
+ org.eclipse.ltk.core.refactoring,
+ org.jboss.tools.jst.web.kb
Export-Package: org.jboss.tools.cdi.ui.test
Modified:
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java
===================================================================
---
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java 2011-05-03
22:37:47 UTC (rev 31049)
+++
branches/jbosstools-3.2.x/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java 2011-05-03
22:41:46 UTC (rev 31050)
@@ -10,7 +10,6 @@
************************************************************************************/
package org.jboss.tools.cdi.ui.test.marker;
-
import java.io.IOException;
import java.io.InputStream;
@@ -23,7 +22,6 @@
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.ltk.core.refactoring.CompositeChange;
import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.RefactoringStatusEntry;
import org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor;
import org.eclipse.ui.IMarkerResolution;
import org.eclipse.ui.ide.IDE;
@@ -37,6 +35,7 @@
import org.jboss.tools.cdi.ui.marker.MakeMethodPublicMarkerResolution;
import org.jboss.tools.cdi.ui.marker.TestableResolutionWithRefactoringProcessor;
import org.jboss.tools.common.util.FileUtil;
+import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
import org.jboss.tools.test.util.JobUtils;
/**
@@ -55,11 +54,12 @@
assertTrue("File - "+file.getFullPath()+" must be
exist",file.exists());
+ ValidatorManager.setStatus("TESTING");
copyFiles(project, fileNames);
+ waitForIdle(project);
- tckProject.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
-
try{
+ file = project.getFile(fileNames[0]);
IMarker[] markers = file.findMarkers(markerType, true, IResource.DEPTH_INFINITE);
for (int i = 0; i < markers.length; i++) {
@@ -74,6 +74,9 @@
for (int j = 0; j < resolutions.length; j++) {
IMarkerResolution resolution = resolutions[j];
if (resolution.getClass().equals(resolutionClass)) {
+
+ ValidatorManager.setStatus("TESTING");
+
if(resolution instanceof TestableResolutionWithRefactoringProcessor){
RefactoringProcessor processor =
((TestableResolutionWithRefactoringProcessor)resolution).getRefactoringProcessor();
@@ -83,35 +86,34 @@
// for(RefactoringStatusEntry entry : entries){
// System.out.println("Refactor status - "+entry.getMessage());
// }
-
+
assertNull("Rename processor returns fatal error",
status.getEntryMatchingSeverity(RefactoringStatus.FATAL));
-
+
status = processor.checkFinalConditions(new NullProgressMonitor(), null);
-
+
// entries = status.getEntries();
// for(RefactoringStatusEntry entry : entries){
// System.out.println("Refactor status - "+entry.getMessage());
// }
-
+
assertNull("Rename processor returns fatal error",
status.getEntryMatchingSeverity(RefactoringStatus.FATAL));
-
-
+
CompositeChange rootChange = (CompositeChange)processor.createChange(new
NullProgressMonitor());
-
+
rootChange.perform(new NullProgressMonitor());
- }else{
+ } else {
resolution.run(marker);
}
-
- refresh(project);
-
+
+ waitForIdle(project);
+
+ file = project.getFile(fileNames[0]);
IMarker[] newMarkers = file.findMarkers(markerType,
true, IResource.DEPTH_INFINITE);
-
+
assertTrue("Marker resolution did not decrease number of problems. was:
"+markers.length+" now: "+newMarkers.length, newMarkers.length <
markers.length);
-
+
checkResults(project, fileNames, results);
-
-
+
return;
}
}
@@ -122,27 +124,29 @@
fail("Problem marker with id: "+id+" not found");
}finally{
restoreFiles(project, fileNames);
-
- refresh(project);
+ waitForIdle(project);
}
}
-
- private void refresh(IProject project) throws CoreException{
- project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+
+ private void waitForIdle(IProject project) throws CoreException{
JobUtils.waitForIdle();
- project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
- JobUtils.waitForIdle();
-
+ for (int i = 0; i < 50; i++) {
+ if(ValidatorManager.getStatus().equals("Sleeping")) {
+ break;
+ }
+ JobUtils.delay(100);
+ JobUtils.waitForIdle();
+ }
}
-
+
private void copyFiles(IProject project, String[] fileNames) throws CoreException{
for(String fileName : fileNames){
IFile file = project.getFile(fileName);
IFile copyFile = project.getFile(fileName+".copy");
-
+
if(copyFile.exists())
copyFile.delete(true, null);
-
+
InputStream is = null;
try{
is = file.getContents();
@@ -158,7 +162,7 @@
}
}
}
-
+
private void restoreFiles(IProject project, String[] fileNames) throws CoreException {
for(String fileName : fileNames){
IFile file = project.getFile(fileName);
@@ -179,20 +183,19 @@
copyFile.delete(true, null);
}
}
-
+
private void checkResults(IProject project, String[] fileNames, String[] results) throws
CoreException{
for(int i = 0; i < results.length; i++){
IFile file = project.getFile(fileNames[i]);
IFile resultFile = project.getFile(results[i]);
-
+
String fileContent = FileUtil.readStream(file);
String resultContent = FileUtil.readStream(resultFile);
-
+
assertEquals("Wrong result of resolution", resultContent, fileContent);
}
-
}
-
+
public void testMakeProducerFieldStaticResolution() throws CoreException {
checkResolution(tckProject,
new String[]{
@@ -206,7 +209,7 @@
CDIValidationErrorManager.ILLEGAL_PRODUCER_FIELD_IN_SESSION_BEAN_ID,
MakeFieldStaticMarkerResolution.class);
}
-
+
public void testMakeProducerMethodBusinessResolution() throws CoreException {
checkResolution(
tckProject,
@@ -223,7 +226,7 @@
CDIValidationErrorManager.ILLEGAL_PRODUCER_METHOD_IN_SESSION_BEAN_ID,
MakeMethodBusinessMarkerResolution.class);
}
-
+
public void testAddLocalBeanResolution() throws CoreException {
checkResolution(
tckProject,