package com.opcoach.genmodeladdon.core.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.eclipse.core.resources.IFolder;
import org.eclipse.emf.codegen.ecore.genmodel.GenModel;
import org.eclipse.emf.common.util.URI;
import org.junit.Test;
import com.opcoach.genmodeladdon.core.EMFPatternExtractor;
import com.opcoach.genmodeladdon.core.GenerateCommon;
public class TestGenerateCommon extends GenModelAddonTestCase
{
private static final String PROJECT_SAMPLE_NAME = "com.opcoach.genmodeladdon.sample";
private String getWsHome()
{
return root.getLocation().toString();
}
@Test
public void testGetProjectNameFromSimpleURI()
{
URI u = URI.createURI(getWsHome() + "/com.opcoach.genmodeladdon.sample/model/project.genmodel");
String s = GenerateCommon.getProjectNameFromURI(u);
assertEquals("Project name must be " + PROJECT_SAMPLE_NAME, PROJECT_SAMPLE_NAME, s);
}
@Test
public void testGetProjectNameFromWindowsFileURI()
{
URI u = URI.createURI("file:/" + getWsHome() + "/com.opcoach.genmodeladdon.sample/model/project.genmodel");
String s = GenerateCommon.getProjectNameFromURI(u);
assertEquals("Project name must be " + PROJECT_SAMPLE_NAME, PROJECT_SAMPLE_NAME, s);
}
@Test
public void testGetProjectNameFromProjectGenModel()
{
GenModel gm = getGenModel(PROJECT_GENMODEL);
String s = GenerateCommon.getProjectName(gm);
assertEquals("Project name must be " + PROJECT_SAMPLE_NAME, PROJECT_SAMPLE_NAME, s);
}
@Test
public void testGetProjectNameFromFannoiseGenModel()
{
GenModel gm = getGenModel(FANNOISE_GENMODEL);
String s = GenerateCommon.getProjectName(gm);
assertEquals("Project name must be " + PROJECT_SAMPLE_NAME, PROJECT_SAMPLE_NAME, s);
}
@Test
public void testGetProjectNameFromPlatformResourceURI()
{
GenModel gm = getGenModel(FANNOISE_GENMODEL);
String s = GenerateCommon.getProjectNameFromURI(URI.createPlatformResourceURI("/projectName/model/project.genmodel", true));
assertEquals("Project name must be projectName", "projectName", s);
}
@Test
public void testGetModelPathNameFromPlatformResourceURI()
{
String s = GenerateCommon.getModelPathFromStringURI("com.opcoach.hotel","platform:/resource/com.opcoach.hotel/hotel.genmodel");
assertEquals("Model Path for this project must be '.'", ".", s);
}
@Test
public void testGetModelPathNameFromPlatformResourceURIInModel()
{
GenModel gm = getGenModel(FANNOISE_GENMODEL);
String s = GenerateCommon.getModelPathFromStringURI("com.opcoach.hotel","platform:/resource/com.opcoach.hotel/model/hotel.genmodel");
assertEquals("Model Path for this project must be 'model'", "model", s);
}
@Test
public void testCreateSourceDirectory()
{
EMFPatternExtractor epe = new EMFPatternExtractor(sampleProject, "{0}Impl", "{0}");
IFolder f = epe.createSourceDirectoryStructure();
assertNotNull("SourceDirectory must not be null", f);
}
}