Search in sources :

Example 46 with IErlProject

use of org.erlide.engine.model.root.IErlProject in project erlide_eclipse by erlang.

the class IErlProjectTest method getModule.

// IErlModule getModule(String name) throws ErlModelException;
@Test
public void getModule() throws Exception {
    final IErlProject aProject = ErlModelTestBase.projects[0];
    final Collection<IPath> sourceDirs = aProject.getProperties().getSourceDirs();
    try {
        // given
        // an Erlang project and a module
        final IErlModule aModule = ErlideTestUtils.createModule(aProject, "aa.erl", "-module(aa).\n");
        final IPath srcxPath = new Path("srcx");
        final List<IPath> srcxDirs = Lists.newArrayList(srcxPath);
        aProject.open(null);
        // when
        // setting source dirs so the module is on source path
        final IErlModule module2 = aProject.getModule("aa");
        final IErlModule nullModule = aProject.getModule("aa.hrl");
        final IErlModule nullModule2 = aProject.getModule("AA");
        final IErlModule nullModule3 = aProject.getModule("aA");
        final IErlModule nullModule4 = aProject.getModule("AA.erl");
        final IErlModule module4 = aProject.getModule("aa.erl");
        ((ErlProject) aProject).setSourceDirs(srcxDirs);
        aProject.open(null);
        final IErlModule srcxModule = aProject.getModule("aa");
        ((ErlProject) aProject).setSourceDirs(sourceDirs);
        aProject.open(null);
        final IErlModule module3 = aProject.getModule("aa");
        // then
        // the it should be returned, but not otherwise
        assertEquals(aModule, module2);
        assertNull(srcxModule);
        assertNull(nullModule);
        assertNull(nullModule2);
        assertNull(nullModule3);
        assertNull(nullModule4);
        assertEquals(aModule, module3);
        assertEquals(aModule, module4);
    } finally {
        ((ErlProject) aProject).setSourceDirs(sourceDirs);
    }
}
Also used : IErlProject(org.erlide.engine.model.root.IErlProject) IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) IPath(org.eclipse.core.runtime.IPath) ErlProject(org.erlide.engine.internal.model.root.ErlProject) IErlProject(org.erlide.engine.model.root.IErlProject) IErlModule(org.erlide.engine.model.root.IErlModule) Test(org.junit.Test)

Example 47 with IErlProject

use of org.erlide.engine.model.root.IErlProject in project erlide_eclipse by erlang.

the class IErlProjectTest method getRuntimeInfo.

// RuntimeInfo getRuntimeInfo();
@Test
public void getRuntimeInfo() throws Exception {
    final IErlProject aProject = ErlModelTestBase.projects[0];
    final RuntimeInfo info = aProject.getRuntimeInfo();
    // final String expected = ResourcesPlugin.getWorkspace().getRoot()
    // .getLocation().toString();
    assertNotNull(info);
// The working dir might be relative to the project and can also be "."
// We need to convert it to a canonical absolute path in order to be
// able to compare it with a value.
// This is not very portable across OSs
}
Also used : IErlProject(org.erlide.engine.model.root.IErlProject) RuntimeInfo(org.erlide.runtime.runtimeinfo.RuntimeInfo) Test(org.junit.Test)

Example 48 with IErlProject

use of org.erlide.engine.model.root.IErlProject in project erlide_eclipse by erlang.

the class IErlProjectTest method setIncludeDirs.

// void setIncludeDirs(Collection<IPath> includeDirs)
// throws BackingStoreException;
@Test
public void setIncludeDirs() throws Exception {
    File externalFile = null;
    final IErlProject aProject = ErlModelTestBase.projects[0];
    final Collection<IPath> includeDirs = aProject.getProperties().getIncludeDirs();
    try {
        // given
        // an erlang project and an external file not in any project
        final String externalFileName = "external.hrl";
        externalFile = ErlideTestUtils.createTmpFile(externalFileName, "-define(E, hej).\n");
        final String absolutePath = externalFile.getAbsolutePath();
        final List<IPath> newIncludeDirs = Lists.newArrayList(includeDirs);
        aProject.open(null);
        final Collection<IErlModule> otpIncludes = aProject.getExternalIncludes();
        final IPath absoluteDir = new Path(absolutePath).removeLastSegments(1);
        newIncludeDirs.add(absoluteDir);
        ((ErlProject) aProject).setIncludeDirs(newIncludeDirs);
        aProject.open(null);
        // when
        // fetching all external includes
        final Collection<IErlModule> externalIncludes = aProject.getExternalIncludes();
        // then
        // the external file should be returned
        final Set<IErlModule> otpSet = Sets.newHashSet(otpIncludes);
        final Set<IErlModule> externalSet = Sets.newHashSet(externalIncludes);
        final Set<IErlModule> difference = Sets.difference(externalSet, otpSet);
        assertEquals(1, difference.size());
        final IErlModule externalInclude = difference.iterator().next();
        assertNotNull(externalInclude);
        assertEquals(new Path(absolutePath), new Path(externalInclude.getFilePath()));
    } finally {
        if (externalFile != null && externalFile.exists()) {
            externalFile.delete();
        }
        ((ErlProject) aProject).setIncludeDirs(includeDirs);
    }
}
Also used : IErlProject(org.erlide.engine.model.root.IErlProject) IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) IPath(org.eclipse.core.runtime.IPath) ErlProject(org.erlide.engine.internal.model.root.ErlProject) IErlProject(org.erlide.engine.model.root.IErlProject) IErlModule(org.erlide.engine.model.root.IErlModule) File(java.io.File) Test(org.junit.Test)

Example 49 with IErlProject

use of org.erlide.engine.model.root.IErlProject in project erlide_eclipse by erlang.

the class IErlProjectTest method getExternalIncludes_includeDirs.

@Test
public void getExternalIncludes_includeDirs() throws Exception {
    File externalFile = null;
    final IErlProject aProject = ErlModelTestBase.projects[0];
    final Collection<IPath> includeDirs = aProject.getProperties().getIncludeDirs();
    try {
        // given
        // an erlang project and an external file not in any project, but on
        // the include-path
        final String externalFileName = "external.hrl";
        externalFile = ErlideTestUtils.createTmpFile(externalFileName, "-define(E, hej).\n");
        final String absolutePath = externalFile.getAbsolutePath();
        final List<IPath> newIncludeDirs = Lists.newArrayList(includeDirs);
        aProject.open(null);
        final Collection<IErlModule> otpIncludes = aProject.getExternalIncludes();
        final IPath absoluteDir = new Path(absolutePath).removeLastSegments(1);
        newIncludeDirs.add(absoluteDir);
        ((ErlProject) aProject).setIncludeDirs(newIncludeDirs);
        aProject.open(null);
        // when
        // fetching all external includes
        final Collection<IErlModule> externalIncludes = aProject.getExternalIncludes();
        // then
        // the external file should be returned
        final Set<IErlModule> otpSet = Sets.newHashSet(otpIncludes);
        final Set<IErlModule> externalSet = Sets.newHashSet(externalIncludes);
        final Set<IErlModule> difference = Sets.difference(externalSet, otpSet);
        final IErlModule externalInclude = difference.iterator().next();
        assertNotNull(externalInclude);
        assertEquals(absolutePath, externalInclude.getFilePath());
    } finally {
        if (externalFile != null && externalFile.exists()) {
            externalFile.delete();
        }
        ((ErlProject) aProject).setIncludeDirs(includeDirs);
    }
}
Also used : IErlProject(org.erlide.engine.model.root.IErlProject) IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) IPath(org.eclipse.core.runtime.IPath) ErlProject(org.erlide.engine.internal.model.root.ErlProject) IErlProject(org.erlide.engine.model.root.IErlProject) IErlModule(org.erlide.engine.model.root.IErlModule) File(java.io.File) Test(org.junit.Test)

Example 50 with IErlProject

use of org.erlide.engine.model.root.IErlProject in project erlide_eclipse by erlang.

the class IErlProjectTest method getExternalModules.

// Collection<IErlModule> getExternalModules() throws ErlModelException;
// void setExternalModulesFile(String absolutePath)
// throws BackingStoreException;
@Test
public void getExternalModules() throws Exception {
    File externalFile = null;
    File externalsFile = null;
    final IErlProject aProject = ErlModelTestBase.projects[0];
    final String externalModulesString = aProject.getProperties().getExternalModules();
    try {
        // given
        // an erlang project and an external file not in any project
        final String externalFileName = "external6.erl";
        externalFile = ErlideTestUtils.createTmpFile(externalFileName, "-module(external6).\nf([_ | _]=L ->\n    atom_to_list(L).\n");
        final String absolutePath = externalFile.getAbsolutePath();
        externalsFile = ErlideTestUtils.createTmpFile(IErlProjectTest.XX_ERLIDEX, absolutePath);
        aProject.open(null);
        final Collection<IErlModule> otpModules = aProject.getExternalModules();
        ((ErlProject) aProject).setExternalModulesFile(externalsFile.getAbsolutePath());
        aProject.open(null);
        // when
        // fetching all external modules
        final Collection<IErlModule> externalModules = aProject.getExternalModules();
        // then
        // the external file should be returned
        final Set<IErlModule> otpSet = Sets.newHashSet(otpModules);
        final Set<IErlModule> externalSet = Sets.newHashSet(externalModules);
        final Set<IErlModule> difference = Sets.difference(externalSet, otpSet);
        assertEquals(1, difference.size());
        final IErlModule externalModule = difference.iterator().next();
        assertNotNull(externalModule);
        assertEquals(absolutePath, externalModule.getFilePath());
    } finally {
        if (externalFile != null && externalFile.exists()) {
            externalFile.delete();
        }
        if (externalsFile != null && externalsFile.exists()) {
            externalsFile.delete();
        }
        ((ErlProject) aProject).setExternalModulesFile(externalModulesString);
    }
}
Also used : IErlProject(org.erlide.engine.model.root.IErlProject) ErlProject(org.erlide.engine.internal.model.root.ErlProject) IErlProject(org.erlide.engine.model.root.IErlProject) IErlModule(org.erlide.engine.model.root.IErlModule) File(java.io.File) Test(org.junit.Test)

Aggregations

IErlProject (org.erlide.engine.model.root.IErlProject)123 IErlModule (org.erlide.engine.model.root.IErlModule)57 Test (org.junit.Test)47 IPath (org.eclipse.core.runtime.IPath)30 IProject (org.eclipse.core.resources.IProject)29 ErlProject (org.erlide.engine.internal.model.root.ErlProject)25 File (java.io.File)19 Path (org.eclipse.core.runtime.Path)16 CoreException (org.eclipse.core.runtime.CoreException)13 ErlModelException (org.erlide.engine.model.ErlModelException)13 IErlElementLocator (org.erlide.engine.model.root.IErlElementLocator)13 IErlModel (org.erlide.engine.model.root.IErlModel)13 ArrayList (java.util.ArrayList)11 IErlElement (org.erlide.engine.model.IErlElement)10 IFile (org.eclipse.core.resources.IFile)9 IResource (org.eclipse.core.resources.IResource)9 HashSet (java.util.HashSet)7 IProjectDescription (org.eclipse.core.resources.IProjectDescription)7 OtpErlangString (com.ericsson.otp.erlang.OtpErlangString)6 IErlPreprocessorDef (org.erlide.engine.model.erlang.IErlPreprocessorDef)6