#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

106 lines
3.8 KiB

using ICSharpCode.NAnt;
using NUnit.Framework;
using System;
using System.IO;
namespace ICSharpCode.NAnt.Tests
{
/// <summary>
/// Tests the <see cref="NAntBuildFile"/> class.
/// </summary>
[TestFixture]
public class ReadNAntBuildFileTestFixture
{
NAntBuildFile buildFile;
[SetUp]
public void Init()
{
StringReader reader = new StringReader(GetBuildFileXml());
buildFile = new NAntBuildFile(reader);
}
[Test]
public void ProjectName()
{
Assert.AreEqual("Hello World", buildFile.Name, "Project name is wrong.");
}
[Test]
public void DefaultTarget()
{
// Check the name.
Assert.IsNotNull(buildFile.DefaultTarget, "Should have a default target.");
Assert.AreEqual("test", buildFile.DefaultTarget.Name, "Default target read from build file is wrong.");
}
[Test]
public void Targets()
{
Assert.AreEqual(3, buildFile.Targets.Count, "Should have 3 targets.");
NAntBuildTarget target = buildFile.Targets[0];
Assert.AreEqual("clean", target.Name, "Target name should be 'clean'.");
Assert.IsFalse(target.IsDefault, "Clean target should not have default target flag set.");
Assert.AreEqual(5, target.Line, "Clean target line number is incorrect.");
Assert.AreEqual(6, target.Column, "Clean target column number is incorrect.");
target = buildFile.Targets[1];
Assert.IsFalse(target.IsDefault, "Build target should not have default target flag set.");
Assert.AreEqual("build", target.Name, "Target name should be 'build'.");
Assert.AreEqual(14, target.Line, "Build target line number is incorrect.");
Assert.AreEqual(6, target.Column, "Build target column number is incorrect.");
target = buildFile.Targets[2];
Assert.AreEqual("test", target.Name, "Target name should be 'test'.");
Assert.IsTrue(target.IsDefault, "Test target should have default target flag set.");
Assert.AreEqual(32, target.Line, "Test target line number is incorrect.");
Assert.AreEqual(6, target.Column, "Test target column number is incorrect.");
}
/// <summary>
/// Gets the build file xml that will be used in this
/// test fixture.
/// </summary>
string GetBuildFileXml()
{
return "<project name=\"Hello World\" default=\"test\">\r\n" +
" <property name=\"basename\" value=\"HelloWorld\"/>\r\n" +
" <property name=\"debug\" value=\"true\"/>\r\n" +
"\r\n" +
" <target name=\"clean\">\r\n" +
" <delete>\r\n" +
" <fileset>\r\n" +
" <includes name=\"${basename}-??.exe\"/>\r\n" +
" <includes name=\"${basename}-??.pdb\"/>\r\n" +
" </fileset>\r\n" +
" </delete>\r\n" +
" </target>\r\n" +
"\r\n" +
" <target name=\"build\">\r\n" +
" <csc target=\"exe\" output=\"${basename}-cs.exe\" debug=\"${debug}\">\r\n" +
" <sources>\r\n" +
" <includes name=\"${basename}.cs\"/>\r\n" +
" </sources>\r\n" +
" </csc>\r\n" +
" <jsc target=\"exe\" output=\"${basename}-js.exe\" debug=\"${debug}\">\r\n" +
" <sources>\r\n" +
" <includes name=\"${basename}.js\"/>\r\n" +
" </sources>\r\n" +
" </jsc>\r\n" +
" <vbc target=\"exe\" output=\"${basename}-vb.exe\" debug=\"${debug}\">\r\n" +
" <sources>\r\n" +
" <includes name=\"${basename}.vb\"/>\r\n" +
" </sources>\r\n" +
" </vbc>\r\n" +
" </target>\r\n" +
"\r\n" +
" <target name=\"test\" depends=\"build\">\r\n" +
" <exec program=\"${basename}-cs.exe\" basedir=\".\"/>\r\n" +
" <exec program=\"${basename}-js.exe\" basedir=\".\"/>\r\n" +
" <exec program=\"${basename}-vb.exe\" basedir=\".\"/>\r\n" +
" </target>\r\n" +
"</project>";
}
}
}