package org.erlide.engine.model.erlang.configuration; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import java.util.Collection; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.erlide.engine.internal.model.root.ProjectConfiguratorFactory; import org.erlide.engine.model.erlang.ErlangProjectPropertiesMatcher; import org.erlide.engine.model.root.ErlangProjectProperties; import org.erlide.engine.model.root.IProjectConfigurator; import org.erlide.engine.model.root.ProjectConfigType; import org.junit.Test; public class EmakeProjectConfigurationTest extends AbstractProjectConfigurationTest { @Test public void configuratorExists() { project.setConfigType(ProjectConfigType.EMAKE); final IProjectConfigurator config = ProjectConfiguratorFactory.getDefault() .getConfig(project.getConfigType(), project); assertThat(config, is(notNullValue())); // final ProjectConfigurator configurator = config.getConfigurator(); // assertThat(configurator, is(notNullValue())); } @Override @Test public void configCanBeParsed() throws CoreException { project.setConfigType(ProjectConfigType.EMAKE); final IProjectConfigurator config = ProjectConfiguratorFactory.getDefault() .getConfig(project.getConfigType(), project); final ErlangProjectProperties expected = ErlangProjectProperties.DEFAULT; final ErlangProjectProperties actual = config.getConfiguration(); assertThat(actual, is(ErlangProjectPropertiesMatcher.sameAs(expected))); } @Test public void propertiesShouldFollowConfigFileChange() throws CoreException { project.setConfigType(ProjectConfigType.EMAKE); final String cfgFile = ProjectConfigType.EMAKE.getConfigName(); final String config1 = "{'src/*',[debug_info,{i,\"myinclude\"}]}. " + "{'src2/*',[debug_info,{i,\"myinclude\"}]}."; setFileContent(cfgFile, config1); project.getWorkspaceProject().refreshLocal(IResource.DEPTH_ONE, null); final Collection<IPath> actualSources = project.getProperties().getSourceDirs(); assertThat(actualSources, hasSize(2)); assertThat(actualSources, hasItem(new Path("src2"))); final Collection<IPath> actualIncludes = project.getProperties().getIncludeDirs(); assertThat(actualIncludes, hasSize(1)); assertThat(actualIncludes, hasItem(new Path("myinclude"))); } }