/**********************************************************************
* Copyright (c) 2005-2009 ant4eclipse project team.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Nils Hartmann, Daniel Kasmeroglu, Gerd Wuetherich
**********************************************************************/
package org.ant4eclipse.ant.pydt;
import org.ant4eclipse.ant.pydt.test.AbstractWorkspaceBasedTest;
import org.ant4eclipse.ant.pydt.test.BuildResult;
import org.ant4eclipse.testframework.ProjectDescription;
import org.apache.tools.ant.BuildException;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.net.URL;
/**
* Basic test implementation for the ant task: 'getPythonSourcePath'.
*
* <ul>
* <li>The <i>emptyXXX</i> tests do show the functionality of the task.</li>
* <li>The <i>complexXXX</i> tests do show that dependencies don't alter the source pathes.</li>
* <li>The <i>cyclicXXX</i> tests do show that dependencies don't alter the source pathes.</li>
* </ul>
*
* @author Daniel Kasmeroglu (Daniel.Kasmeroglu@Kasisoft.net)
*/
public class AbstractSourcePathTest extends AbstractWorkspaceBasedTest {
private URL _sourcepathxml;
/**
* Initialises this set of tests.
*/
public AbstractSourcePathTest(boolean dltk) {
super(dltk);
}
/**
* {@inheritDoc}
*/
@Override
@Before
public void setup() {
super.setup();
this._sourcepathxml = getResource("/org/ant4eclipse/ant/pydt/sourcepath.xml");
}
/**
* {@inheritDoc}
*/
@Override
@After
public void teardown() {
super.teardown();
this._sourcepathxml = null;
}
@Test
public void emptyProject() {
ProjectDescription projectdescription = createEmptyProject(this._sourcepathxml, 0);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path");
String[] content = buildresult.getTargetOutput("get-source-path");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}" + File.separator + projectdescription.getPrimaryProjectname(), content[0]);
}
@Test(expected = BuildException.class)
public void emptyProjectMultipleFoldersFailure() {
ProjectDescription projectdescription = createEmptyProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path");
}
@Test
public void emptyProjectMultipleFolders() {
ProjectDescription projectdescription = createEmptyProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-multiple-folders");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}" + File.separator + projectdescription.getPrimaryProjectname()
+ File.pathSeparator + "${workspacedir}" + projectdescription.getSourceFolders()[0], content[0]);
}
@Test
public void emptyProjectRelative() {
ProjectDescription projectdescription = createEmptyProject(this._sourcepathxml, 0);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-relative");
String[] content = buildresult.getTargetOutput("get-source-path-relative");
Assert.assertEquals(1, content.length);
Assert.assertEquals(".", content[0]);
}
@Test(expected = BuildException.class)
public void emptyProjectMultipleFoldersRelativeFailure() {
ProjectDescription projectdescription = createEmptyProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path-relative");
}
@Test
public void emptyProjectMultipleFoldersRelative() {
ProjectDescription projectdescription = createEmptyProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(),
"get-source-path-multiple-folders-relative");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders-relative");
Assert.assertEquals(1, content.length);
String expectedpath = projectdescription.getSourceFolders()[0].substring(2 + projectdescription
.getPrimaryProjectname().length());
Assert.assertEquals("." + File.pathSeparator + expectedpath, content[0]);
}
@Test
public void emptyProjectDirseparator() {
ProjectDescription projectdescription = createEmptyProject(this._sourcepathxml, 0);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-dirseparator", "@");
String[] content = buildresult.getTargetOutput("get-source-path-dirseparator");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}@" + projectdescription.getPrimaryProjectname(), content[0]);
}
@Test(expected = BuildException.class)
public void emptyProjectMultipleFoldersFailureDirseparator() {
ProjectDescription projectdescription = createEmptyProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path-dirseparator", "@");
}
@Test
public void emptyProjectMultipleFoldersDirseparator() {
ProjectDescription projectdescription = createEmptyProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(),
"get-source-path-multiple-folders-dirseparator", "@");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders-dirseparator");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}@" + projectdescription.getPrimaryProjectname() + File.pathSeparator
+ "${workspacedir}" + projectdescription.getSourceFolders("@")[0], content[0]);
}
@Test
public void complexProject() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, 0);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path");
String[] content = buildresult.getTargetOutput("get-source-path");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}" + File.separator + projectdescription.getPrimaryProjectname(), content[0]);
}
@Test(expected = BuildException.class)
public void complexProjectMultipleFoldersFailure() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path");
}
@Test(expected = BuildException.class)
public void complexProjectMultipleFoldersBothFailure() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path");
}
@Test
public void complexProjectMultipleFolders() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-multiple-folders");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}" + File.separator + projectdescription.getPrimaryProjectname()
+ File.pathSeparator + "${workspacedir}" + projectdescription.getSourceFolders()[0], content[0]);
}
@Test
public void complexProjectMultipleFoldersBoth() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-multiple-folders");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}" + File.separator + projectdescription.getPrimaryProjectname()
+ File.pathSeparator + "${workspacedir}" + projectdescription.getSourceFolders()[0], content[0]);
}
@Test
public void complexProjectRelative() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, 0);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-relative");
String[] content = buildresult.getTargetOutput("get-source-path-relative");
Assert.assertEquals(1, content.length);
Assert.assertEquals(".", content[0]);
}
@Test(expected = BuildException.class)
public void complexProjectMultipleFoldersRelativeFailure() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path-relative");
}
@Test(expected = BuildException.class)
public void complexProjectMultipleFoldersRelativeBothFailure() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path-relative");
}
@Test
public void complexProjectMultipleFoldersRelative() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(),
"get-source-path-multiple-folders-relative");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders-relative");
Assert.assertEquals(1, content.length);
String expectedpath = projectdescription.getSourceFolders()[0].substring(2 + projectdescription
.getPrimaryProjectname().length());
Assert.assertEquals("." + File.pathSeparator + expectedpath, content[0]);
}
@Test
public void complexProjectMultipleFoldersRelativeBoth() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(),
"get-source-path-multiple-folders-relative");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders-relative");
Assert.assertEquals(1, content.length);
String expectedpath = projectdescription.getSourceFolders()[0].substring(2 + projectdescription
.getPrimaryProjectname().length());
Assert.assertEquals("." + File.pathSeparator + expectedpath, content[0]);
}
@Test
public void complexProjectDirseparator() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, 0);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-dirseparator", "@");
String[] content = buildresult.getTargetOutput("get-source-path-dirseparator");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}@" + projectdescription.getPrimaryProjectname(), content[0]);
}
@Test(expected = BuildException.class)
public void complexProjectMultipleFoldersFailureDirseparator() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path-dirseparator", "@");
}
@Test(expected = BuildException.class)
public void complexProjectMultipleFoldersBothFailureDirseparator() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path-dirseparator", "@");
}
@Test
public void complexProjectMultipleFoldersDirseparator() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(),
"get-source-path-multiple-folders-dirseparator", "@");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders-dirseparator");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}@" + projectdescription.getPrimaryProjectname() + File.pathSeparator
+ "${workspacedir}" + projectdescription.getSourceFolders("@")[0], content[0]);
}
@Test
public void complexProjectMultipleFoldersBothDirseparator() {
ProjectDescription projectdescription = createComplexProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(),
"get-source-path-multiple-folders-dirseparator", "@");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders-dirseparator");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}@" + projectdescription.getPrimaryProjectname() + File.pathSeparator
+ "${workspacedir}" + projectdescription.getSourceFolders("@")[0], content[0]);
}
@Test
public void cyclicProject() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, 0);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path");
String[] content = buildresult.getTargetOutput("get-source-path");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}" + File.separator + projectdescription.getPrimaryProjectname(), content[0]);
}
@Test(expected = BuildException.class)
public void cyclicProjectMultipleFoldersFailure() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path");
}
@Test(expected = BuildException.class)
public void cyclicProjectMultipleFoldersBothFailure() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path");
}
@Test
public void cyclicProjectMultipleFolders() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-multiple-folders");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}" + File.separator + projectdescription.getPrimaryProjectname()
+ File.pathSeparator + "${workspacedir}" + projectdescription.getSourceFolders()[0], content[0]);
}
@Test
public void cyclicProjectMultipleFoldersBoth() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-multiple-folders");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}" + File.separator + projectdescription.getPrimaryProjectname()
+ File.pathSeparator + "${workspacedir}" + projectdescription.getSourceFolders()[0], content[0]);
}
@Test
public void cyclicProjectRelative() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, 0);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-relative");
String[] content = buildresult.getTargetOutput("get-source-path-relative");
Assert.assertEquals(1, content.length);
Assert.assertEquals(".", content[0]);
}
@Test(expected = BuildException.class)
public void cyclicProjectMultipleFoldersRelativeFailure() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path-relative");
}
@Test(expected = BuildException.class)
public void cyclicProjectMultipleFoldersRelativeBothFailure() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path-relative");
}
@Test
public void cyclicProjectMultipleFoldersRelative() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(),
"get-source-path-multiple-folders-relative");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders-relative");
Assert.assertEquals(1, content.length);
String expectedpath = projectdescription.getSourceFolders()[0].substring(2 + projectdescription
.getPrimaryProjectname().length());
Assert.assertEquals("." + File.pathSeparator + expectedpath, content[0]);
}
@Test
public void cyclicProjectMultipleFoldersRelativeBoth() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(),
"get-source-path-multiple-folders-relative");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders-relative");
Assert.assertEquals(1, content.length);
String expectedpath = projectdescription.getSourceFolders()[0].substring(2 + projectdescription
.getPrimaryProjectname().length());
Assert.assertEquals("." + File.pathSeparator + expectedpath, content[0]);
}
@Test
public void cyclicProjectDirseparator() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, 0);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(), "get-source-path-dirseparator", "@");
String[] content = buildresult.getTargetOutput("get-source-path-dirseparator");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}@" + projectdescription.getPrimaryProjectname(), content[0]);
}
@Test(expected = BuildException.class)
public void cyclicProjectMultipleFoldersFailureDirseparator() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path-dirseparator", "@");
}
@Test(expected = BuildException.class)
public void cyclicProjectMultipleFoldersBothFailureDirseparator() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
execute(projectdescription.getPrimaryProjectname(), "get-source-path-dirseparator", "@");
}
@Test
public void cyclicProjectMultipleFoldersDirseparator() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(),
"get-source-path-multiple-folders-dirseparator", "@");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders-dirseparator");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}@" + projectdescription.getPrimaryProjectname() + File.pathSeparator
+ "${workspacedir}" + projectdescription.getSourceFolders("@")[0], content[0]);
}
@Test
public void cyclicProjectMultipleFoldersBothDirseparator() {
ProjectDescription projectdescription = createCyclicProject(this._sourcepathxml, KIND_MULTIPLESOURCEFOLDERSPRIMARY
| KIND_MULTIPLESOURCEFOLDERSSECONDARY);
BuildResult buildresult = execute(projectdescription.getPrimaryProjectname(),
"get-source-path-multiple-folders-dirseparator", "@");
String[] content = buildresult.getTargetOutput("get-source-path-multiple-folders-dirseparator");
Assert.assertEquals(1, content.length);
Assert.assertEquals("${workspacedir}@" + projectdescription.getPrimaryProjectname() + File.pathSeparator
+ "${workspacedir}" + projectdescription.getSourceFolders("@")[0], content[0]);
}
} /* ENDCLASS */