/*******************************************************************************
* CruiseControl, a Continuous Integration Toolkit Copyright (c) 2001,
* ThoughtWorks, Inc. 200 E. Randolph, 25th Floor Chicago, IL 60601 USA All
* rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* + Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* + Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the names of
* its contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
package net.sourceforge.cruisecontrol.builders;
import java.util.ArrayList;
import java.util.Hashtable;
import junit.framework.TestCase;
import net.sourceforge.cruisecontrol.testutil.TestUtil;
public class NantScriptTest extends TestCase {
private Hashtable<String, String> properties;
private String nantCmd = "NAnt.exe";
private NantScript script;
protected void setUp() throws Exception {
script = new NantScript();
// Must be a cleaner way to do this...
// builder.setNantWorkingDir(new File(
// new URI(ClassLoader.getSystemResource("test.build").toString())).getParent());
properties = new Hashtable<String, String>();
properties.put("label", "200.1.23");
script.setBuildProperties(properties);
script.setNantProperties(new ArrayList<Property>());
script.setLoggerClassName(NantBuilder.DEFAULT_LOGGER);
script.setTarget("target");
script.setBuildFile("buildfile");
}
public void testGetCommandLineArgs() {
String[] resultInfo = { nantCmd,
"-listener:NAnt.Core.XmlLogger",
"-D:XmlLogger.file=log.xml",
"-D:label=200.1.23",
"-buildfile:buildfile",
"target" };
TestUtil.assertArray(
"resultInfo",
resultInfo,
script.buildCommandline().getCommandline());
String[] resultLogger = { nantCmd,
"-logger:NAnt.Core.XmlLogger",
"-logfile:log.xml",
"-D:label=200.1.23",
"-buildfile:buildfile",
"target" };
script.setUseLogger(true);
TestUtil.assertArray(
"resultLogger",
resultLogger,
script.buildCommandline().getCommandline());
}
public void testGetCommandLineArgs_EmptyLogger() {
String[] resultInfo = { nantCmd,
"-listener:NAnt.Core.XmlLogger",
"-D:XmlLogger.file=log.xml",
"-buildfile:buildfile",
"target" };
properties.put("label", "");
TestUtil.assertArray(
"resultInfo",
resultInfo,
script.buildCommandline().getCommandline());
String[] resultLogger = { nantCmd,
"-logger:NAnt.Core.XmlLogger",
"-logfile:log.xml",
"-buildfile:buildfile",
"target" };
script.setUseLogger(true);
TestUtil.assertArray(
"resultLogger",
resultLogger,
script.buildCommandline().getCommandline());
}
public void testGetCommandLineArgs_Debug() {
String[] resultDebug = { nantCmd,
"-logger:NAnt.Core.XmlLogger",
"-logfile:log.xml",
"-debug+",
"-D:label=200.1.23",
"-buildfile:buildfile",
"target" };
script.setUseDebug(true);
script.setUseLogger(true);
TestUtil.assertArray(
"resultDebug",
resultDebug,
script.buildCommandline().getCommandline());
}
public void testGetCommandLineArgs_Quiet() {
String[] resultQuiet = { nantCmd,
"-logger:NAnt.Core.XmlLogger",
"-logfile:log.xml",
"-quiet+",
"-D:label=200.1.23",
"-buildfile:buildfile",
"target" };
script.setUseQuiet(true);
script.setUseLogger(true);
TestUtil.assertArray(
"resultQuiet",
resultQuiet,
script.buildCommandline().getCommandline());
}
}