[jbosstools-commits] JBoss Tools SVN: r7042 - in trunk/seam/tests/org.jboss.tools.seam.core.test: src/org/jboss/tools/seam/core/test/refactoring and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Mar 20 10:23:11 EDT 2008


Author: akazakov
Date: 2008-03-20 10:23:10 -0400 (Thu, 20 Mar 2008)
New Revision: 7042

Modified:
   trunk/seam/tests/org.jboss.tools.seam.core.test/META-INF/MANIFEST.MF
   trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamPropertyRefactoringTest.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1919 Added JUnit tests for source folder renaming.

Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/META-INF/MANIFEST.MF	2008-03-20 13:51:37 UTC (rev 7041)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/META-INF/MANIFEST.MF	2008-03-20 14:23:10 UTC (rev 7042)
@@ -6,7 +6,8 @@
 Bundle-ClassPath: seam-core-tests.jar
 Bundle-Vendor: Red Hat, Inc.
 Export-Package: org.jboss.tools.seam.core.test,
- org.jboss.tools.seam.core.test.project.facet
+ org.jboss.tools.seam.core.test.project.facet,
+ org.jboss.tools.seam.core.test.refactoring
 Require-Bundle: 
  org.junit,
  org.eclipse.core.runtime,
@@ -30,5 +31,6 @@
  org.eclipse.jdt.core,
  org.eclipse.jdt.ui,
  org.eclipse.ui.ide,
- org.eclipse.jface
+ org.eclipse.jface,
+ org.eclipse.jdt.core.manipulation
 Provide-Package: org.jboss.tools.seam.core.test

Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamPropertyRefactoringTest.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamPropertyRefactoringTest.java	2008-03-20 13:51:37 UTC (rev 7041)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/refactoring/SeamPropertyRefactoringTest.java	2008-03-20 14:23:10 UTC (rev 7042)
@@ -14,16 +14,21 @@
 
 import junit.framework.TestCase;
 
+import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
 import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jdt.ui.refactoring.RenameSupport;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IWorkbenchWindow;
+import org.jboss.tools.common.model.util.EclipseResourceUtil;
 import org.jboss.tools.seam.core.ISeamProject;
 import org.jboss.tools.seam.core.SeamCorePlugin;
 import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
@@ -38,10 +43,14 @@
 	static String warProjectName = "RefactoringTestProject-war";
 	static String ejbProjectName = "RefactoringTestProject-ejb";
 	static String testProjectName = "RefactoringTestProject-test";
-	static String actionSourceFolderName = "/" + ejbProjectName + "/src";
-	static String modelSourceFolderName = "/" + warProjectName + "/src";
-	static String testSourceFolderName = "/" + testProjectName + "/src";
-	static String viewFolderName = "/" + warProjectName + "/WebContent";
+	static String actionSourceFolderName = "src";
+	static String modelSourceFolderName = "src";
+	static String testSourceFolderName = "src";
+	static String actionSourceFolderPath = "/" + ejbProjectName + "/" + actionSourceFolderName;
+	static String modelSourceFolderPath = "/" + warProjectName + "/" + modelSourceFolderName;
+	static String testSourceFolderPath = "/" + testProjectName + "/" + testSourceFolderName;
+	static String viewFolderName = "WebContent";
+	static String viewFolderPath = "/" + warProjectName + "/" + viewFolderName;
 	static IProject warProject;
 	static IProject ejbProject;
 	static IProject testProject;
@@ -92,55 +101,142 @@
 
 	public void testWarProjectRename() throws CoreException {
 		warProjectName = "NewWarProjectName";
-		modelSourceFolderName = "/" + warProjectName + "/src";
-		viewFolderName = "/" + warProjectName + "/WebContent"; 
+		updateFields();
 		warProject = renameProject(warProject, warProjectName);
 		seamWarProject = SeamCorePlugin.getSeamProject(warProject, true);
 
 		String newParentName = seamEjbProject.getParentProjectName();
-		assertEquals(warProjectName, newParentName);
+		assertEquals("WAR project was renamed but parent seam project property for EJB project was not.", warProjectName, newParentName);
 		newParentName = seamTestProject.getParentProjectName();
-		assertEquals(warProjectName, newParentName);
+		assertEquals("WAR project was renamed but parent seam project property for test project was not.", warProjectName, newParentName);
 
 		IEclipsePreferences pref = SeamCorePlugin.getSeamPreferences(warProject);
 		String modelSources = pref.get(ISeamFacetDataModelProperties.ENTITY_BEAN_SOURCE_FOLDER, "");
-		assertEquals(modelSourceFolderName, modelSources);
+		assertEquals("WAR project was renamed but model source folder property was not.", modelSourceFolderPath, modelSources);
 
 		String viewFolder = pref.get(ISeamFacetDataModelProperties.WEB_CONTENTS_FOLDER, "");
-		assertEquals(viewFolderName, viewFolder);
+		assertEquals("WAR project was renamed but view folder property was not.", viewFolderPath, viewFolder);
 	}
 
 	public void testEjbProjectRename() throws CoreException {
 		ejbProjectName = "NewEjbProjectName";
-		actionSourceFolderName = "/" + ejbProjectName + "/src";
+		updateFields();
 		ejbProject = renameProject(ejbProject, ejbProjectName);
 		seamEjbProject = SeamCorePlugin.getSeamProject(ejbProject, true);
 
 		IEclipsePreferences pref = SeamCorePlugin.getSeamPreferences(warProject);
 		String newEjbName = pref.get(ISeamFacetDataModelProperties.SEAM_EJB_PROJECT, "");
-		assertEquals(ejbProjectName, newEjbName);
+		assertEquals("EJB project was renamed but property was not.", ejbProjectName, newEjbName);
 
 		String actionSources = pref.get(ISeamFacetDataModelProperties.SESSION_BEAN_SOURCE_FOLDER, "");
-		assertEquals(actionSourceFolderName, actionSources);
+		assertEquals("EJB project was renamed but action source folder property was not.", actionSourceFolderPath, actionSources);
 	}
 
 	public void testTestProjectRename() throws CoreException {
 		testProjectName = "NewTestProjectName";
-		testSourceFolderName = "/" + testProjectName + "/src";
+		updateFields();
 		testProject = renameProject(testProject, testProjectName);
 		seamTestProject = SeamCorePlugin.getSeamProject(testProject, true);
 
 		String newTestName = SeamCorePlugin.getSeamPreferences(warProject).get(ISeamFacetDataModelProperties.SEAM_TEST_PROJECT, "");
-		assertEquals(testProjectName, newTestName);
+		assertEquals("Test project was renamed but property was not.", testProjectName, newTestName);
 
 		IEclipsePreferences pref = SeamCorePlugin.getSeamPreferences(warProject);
 		String testSources = pref.get(ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER, "");
-		assertEquals(testSourceFolderName, testSources);
+		assertEquals("Test project was renamed but test source folder property was not.", testSourceFolderPath, testSources);
 	}
 
+	public void testActionSourceFolderRename() throws CoreException {
+		actionSourceFolderName = "newActionSrc";
+		renameSourceFolder(actionSourceFolderPath, actionSourceFolderName);
+		updateFields();
+
+		IEclipsePreferences pref = SeamCorePlugin.getSeamPreferences(warProject);
+		String actionSources = pref.get(ISeamFacetDataModelProperties.SESSION_BEAN_SOURCE_FOLDER, "");
+		assertEquals("Action source folder was renamed but property was not.", actionSourceFolderPath, actionSources);
+	}
+
+	public void testModelSourceFolderRename() throws CoreException {
+		modelSourceFolderName = "newModelSrc";
+		renameSourceFolder(modelSourceFolderPath, modelSourceFolderName);
+		updateFields();
+
+		IEclipsePreferences pref = SeamCorePlugin.getSeamPreferences(warProject);
+		String modelSources = pref.get(ISeamFacetDataModelProperties.ENTITY_BEAN_SOURCE_FOLDER, "");
+		assertEquals("Model source folder was renamed but property was not.", modelSourceFolderPath, modelSources);
+	}
+
+	public void testTestSourceFolderRename() throws CoreException {
+		testSourceFolderName = "newTestSrc";
+		renameSourceFolder(testSourceFolderPath, testSourceFolderName);
+		updateFields();
+
+		IEclipsePreferences pref = SeamCorePlugin.getSeamPreferences(warProject);
+		String testSources = pref.get(ISeamFacetDataModelProperties.TEST_SOURCE_FOLDER, "");
+		assertEquals("Test source folder was renamed but property was not.", testSourceFolderPath, testSources);
+	}
+
+	public void testViewFolderRename() throws CoreException {
+		viewFolderName = "newViewFolder";
+		renameFolder(viewFolderPath, viewFolderName);
+		updateFields();
+
+		IEclipsePreferences pref = SeamCorePlugin.getSeamPreferences(warProject);
+		String viewFolder = pref.get(ISeamFacetDataModelProperties.WEB_CONTENTS_FOLDER, "");
+		assertEquals("View folder was renamed but property was not.", viewFolderPath, viewFolder);
+	}
+
+	private void updateFields() {
+		actionSourceFolderPath = "/" + ejbProjectName + "/" + actionSourceFolderName;
+		modelSourceFolderPath = "/" + warProjectName + "/" + modelSourceFolderName;
+		testSourceFolderPath = "/" + testProjectName + "/" + testSourceFolderName;
+		viewFolderPath = "/" + warProjectName + "/" + viewFolderName;
+	}
+
+	private IPackageFragmentRoot renameSourceFolder(String folderPath, String newFolderName) throws CoreException {
+		IPackageFragmentRoot packageFragmentRoot = getSourceFolder(folderPath);
+		IProject project = packageFragmentRoot.getResource().getProject();
+		performRename(RenameSupport.create(packageFragmentRoot, newFolderName));
+		String newPath = project.getFullPath().toString() + "/" + newFolderName;
+		IPackageFragmentRoot newPackageFragmentRoot = getSourceFolder(newPath);
+		assertNotNull("Cannot find renamed source folder: " + newPath, newPackageFragmentRoot);
+		return newPackageFragmentRoot;
+	}
+
+	private IPackageFragmentRoot getSourceFolder(String folderPath) {
+		IResource initSourceFolder = ResourcesPlugin.getWorkspace().getRoot().findMember(folderPath);
+		assertNotNull("Can't find source folder: " + folderPath, initSourceFolder);
+		IProject project = initSourceFolder.getProject();
+		IJavaProject javaProject = EclipseResourceUtil.getJavaProject(project);
+		IPackageFragmentRoot packageFragmentRoot = null;
+		try {
+			IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
+			for (int i = 0; i < roots.length; i++) {
+				if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE && roots[i].getResource().equals(initSourceFolder)) {
+					packageFragmentRoot = roots[i];
+					break;
+				}
+			}
+		} catch (JavaModelException e) {
+			JUnitUtils.fail("Exception during searching source folder: " + folderPath, e);
+		}
+		assertNotNull("Can't find source folder: " + folderPath, packageFragmentRoot);
+		return packageFragmentRoot;
+	}
+
+	private IFolder renameFolder(String folderPath, String newFolderName) throws CoreException {
+		return null;
+	}
+
 	private IProject renameProject(IProject project, String newProjectName) throws CoreException {
-		RenameSupport support = RenameSupport.create(JavaCore.create(project), newProjectName, RenameSupport.UPDATE_REFERENCES);
+		performRename(RenameSupport.create(JavaCore.create(project), newProjectName, RenameSupport.UPDATE_REFERENCES));
 
+		IProject renamedProject = (IProject)ResourcesPlugin.getWorkspace().getRoot().findMember(newProjectName);
+		assertNotNull("Can't load renamed project " + newProjectName, renamedProject);
+		return renamedProject;
+	}
+
+	private void performRename(RenameSupport support) throws CoreException {
 		Shell parent = WorkbenchUtils.getActiveShell();
 		IWorkbenchWindow context = WorkbenchUtils.getWorkbench().getActiveWorkbenchWindow();
 		try {
@@ -150,11 +246,6 @@
 		} catch (InvocationTargetException e) {
 			JUnitUtils.fail("Rename failed", e);
 		}
-
 		EditorTestHelper.joinBackgroundActivities();
-
-		IProject renamedProject = (IProject)ResourcesPlugin.getWorkspace().getRoot().findMember(newProjectName);
-		assertNotNull("Can't load renamed project " + newProjectName, renamedProject);
-		return renamedProject;
 	}
 }
\ No newline at end of file




More information about the jbosstools-commits mailing list