package org.zend.php.zendserver.deployment.core.descriptor; import junit.framework.TestCase; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Path; public class DescriptorContainerManagerTest extends TestCase { private IProject testProject; public void setUp() throws CoreException { IWorkspaceRoot ws = ResourcesPlugin.getWorkspace().getRoot(); IProgressMonitor mon = new NullProgressMonitor(); testProject = ws.getProject("example"); if (testProject.exists()) { testProject.delete(true, mon); } testProject.create(mon); testProject.open(mon); } public void testOpenNonExistingFile() { DescriptorContainerManager service = DescriptorContainerManager.getService(); IFile nonExistingFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("nonExistentProject/nonExistingFile.xml")); IDescriptorContainer descr = service.openDescriptorContainer(nonExistingFile); assertNotNull(descr); } public void testCreateDescriptorFile() throws CoreException { DescriptorContainerManager service = DescriptorContainerManager.getService(); IFile nonExistingFile = testProject.getFile("descriptor.xml"); assertFalse(nonExistingFile.exists()); IDescriptorContainer descr = service.openDescriptorContainer(nonExistingFile); descr.save(); assertTrue(nonExistingFile.exists()); } public void testEmptyDescriptorFile() throws CoreException { DescriptorContainerManager service = DescriptorContainerManager.getService(); IFile nonExistingFile = testProject.getFile("descriptor.xml"); assertFalse(nonExistingFile.exists()); IDescriptorContainer descr = service.openDescriptorContainer(nonExistingFile); IDeploymentDescriptor model = descr.getDescriptorModel(); assertEquals(null, model.getName()); assertEquals(null, model.getDescription()); assertEquals(null, model.getSummary()); assertEquals(null, model.getDocumentRoot()); assertEquals(null, model.getEulaLocation()); assertEquals(null, model.getApiVersion()); assertEquals(null, model.getHealthcheck()); assertEquals(null, model.getIconLocation()); assertEquals(null, model.getReleaseVersion()); assertEquals(null, model.getScriptsRoot()); assertEquals(0, model.getPHPDependencies().size()); assertEquals(0, model.getDirectiveDependencies().size()); assertEquals(0, model.getExtensionDependencies().size()); assertEquals(0, model.getZendServerDependencies().size()); assertEquals(0, model.getZendFrameworkDependencies().size()); assertEquals(0, model.getZendComponentDependencies().size()); assertEquals(0, model.getPersistentResources().size()); assertEquals(0, model.getParameters().size()); assertEquals(0, model.getVariables().size()); } public void testEditDescriptorFile() throws CoreException { DescriptorContainerManager service = DescriptorContainerManager.getService(); IFile nonExistingFile = testProject.getFile("descriptor.xml"); assertFalse(nonExistingFile.exists()); IDescriptorContainer descr = service.openDescriptorContainer(nonExistingFile); IDeploymentDescriptor model = descr.getDescriptorModel(); model.setName("new name"); descr.save(); assertTrue(nonExistingFile.exists()); } }