blob: 057cce471b38d5a857b58e750ea7d352afb2dda0 [file] [log] [blame]
package org.eclipse.wst.common.frameworks.componentcore.tests;
import java.io.IOException;
import java.net.URL;
import junit.framework.TestCase;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.etools.common.test.apitools.ProjectUnzipUtil;
import org.eclipse.jem.util.emf.workbench.EMFWorkbenchContextBase;
import org.eclipse.wst.common.componentcore.ModuleCoreNature;
import org.eclipse.wst.common.componentcore.UnresolveableURIException;
import org.eclipse.wst.common.componentcore.internal.ArtifactEditModel;
import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
import org.eclipse.wst.common.internal.emfworkbench.integration.EditModel;
import org.eclipse.wst.common.tests.CommonTestsPlugin;
public class ModuleCoreNatureAPITest extends TestCase {
public static String fileSep = System.getProperty("file.separator");
public static final String PROJECT_NAME = "TestArtifactEdit";
public static final String WEB_MODULE_NAME = "WebModule1";
public static final URI moduleURI = URI.createURI("module:/resource/TestArtifactEdit/WebModule1");
public static final String EDIT_MODEL_ID = "jst.web";
private Path zipFilePath = new Path("TestData" + fileSep + "TestArtifactEdit.zip");
private IProject project;
// /This should be extracted out, dont have time, just trying to get coverage
// for m4 integration....
protected void setUp() throws Exception {
if (!getTargetProject().exists())
if (!createProject())
fail();
project = getTargetProject();
}
public IProject getTargetProject() {
return ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT_NAME);
}
public boolean createProject() {
IPath localZipPath = getLocalPath();
ProjectUnzipUtil util = new ProjectUnzipUtil(localZipPath, new String[]{PROJECT_NAME});
return util.createProjects();
}
private IPath getLocalPath() {
URL url = CommonTestsPlugin.instance.find(zipFilePath);
try {
url = Platform.asLocalURL(url);
} catch (IOException e) {
e.printStackTrace();
}
return new Path(url.getPath());
}
public void testConfigure() {
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
try {
nature.configure();
} catch (CoreException e) {
e.printStackTrace();
fail();
}
}
public void testGetModuleCoreNature() {
new ModuleCoreNature();
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
assertNotNull(nature);
}
public void testGetModuleStructuralModelForRead() {
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
nature.getModuleStructuralModelForRead(this);
ArtifactEditModel model = nature.getArtifactEditModelForRead(moduleURI, this);
assertNotNull(model);
}
public void testGetModuleStructuralModelForWrite() {
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
ArtifactEditModel model = nature.getArtifactEditModelForWrite(moduleURI, this);
assertNotNull(model);
}
public void testGetArtifactEditModelForRead() {
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
EditModel model = nature.getEditModelForRead(EDIT_MODEL_ID, this);
assertNotNull(model);
}
public void testGetArtifactEditModelForWrite() {
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
EditModel model = nature.getEditModelForWrite(EDIT_MODEL_ID, this);
assertNotNull(model);
}
/*
* Class under test for String getNatureID()
*/
public void testGetNatureID() {
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
String id = nature.getNatureID();
assertTrue(id.equals(IModuleConstants.MODULE_NATURE_ID));
}
public void testPrimaryContributeToContext() {
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
EMFWorkbenchContextBase context = new EMFWorkbenchContextBase(project);
try {
nature.primaryContributeToContext(context);
} catch (Exception e) {
fail();
}
}
/*
* Class under test for ResourceSet getResourceSet()
*/
public void testGetResourceSet() {
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
ResourceSet set = nature.getResourceSet();
assertNotNull(set);
}
public void testSecondaryContributeToContext() {
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
EMFWorkbenchContextBase context = new EMFWorkbenchContextBase(project);
try {
nature.secondaryContributeToContext(context);
} catch (Exception e) {
fail();
}
}
/*
* Class under test for String getPluginID()
*/
public void testGetPluginID() {
// protected cant test unless in same package....
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
}
public void testAddModuleCoreNatureIfNecessary() {
try {
project.getDescription().setNatureIds(new String[0]);
} catch (CoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ModuleCoreNature.addModuleCoreNatureIfNecessary(project, new NullProgressMonitor());
ModuleCoreNature nature = ModuleCoreNature.getModuleCoreNature(project);
assertNotNull(nature);
}
public void testUnresolveableURIException() {
UnresolveableURIException uriEx = new UnresolveableURIException(moduleURI);
assertNotNull(uriEx);
}
}