// NAnt - A .NET build tool // Copyright (C) 2001-2003 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Gert Driesen (gert.driesen@ardatis.com) using System.Globalization; using System.IO; using NUnit.Framework; using NAnt.Core; using NAnt.Core.Tasks; namespace Tests.NAnt.Core.Tasks { /// /// Tests available Task. /// [TestFixture] public class AvailableTest : BuildTestBase { #region Override implementation of BuildTestBase [SetUp] protected override void SetUp() { base.SetUp(); _tempFile = CreateTempFile("a.b"); _tempDir = CreateTempDir("foo"); // create a temporary file _notExistingTempFile = CreateTempFile("b.c"); // delete it to make sure it definitely not exists if (_notExistingTempFile != null && File.Exists(_notExistingTempFile)) { File.Delete(_notExistingTempFile); } // create a temporary directory _notExistingTempDir = CreateTempDir("test"); // delete it to make sure it definitely does not exist if (_notExistingTempDir != null && Directory.Exists(_notExistingTempDir)) { Directory.Delete(_notExistingTempDir); } } #endregion Override implementation of BuildTestBase #region Public Instance Methods [Test] public void Test_ExistingFile() { string xml= @" "; string result = RunBuild(string.Format(CultureInfo.InvariantCulture, xml, AvailableTask.ResourceType.File.ToString(CultureInfo.InvariantCulture), _tempFile, "${file.exists}")); Assert.IsTrue(result.ToLower().IndexOf("file.exists=true") != -1, "File resource should have existed:" + result); } [Test] public void Test_NotExistingFile() { string xml= @" "; string result = RunBuild(string.Format(CultureInfo.InvariantCulture, xml, AvailableTask.ResourceType.File.ToString(CultureInfo.InvariantCulture), _notExistingTempFile, "${file.exists}")); Assert.IsTrue(result.ToLower().IndexOf("file.exists=false") != -1, "File resource not should have existed:" + result); } [Test] [ExpectedException(typeof(TestBuildException))] public void Test_InvalidFile() { string xml= @" "; // unix accepts most characters ( except / ) so this test won't fail there. if (! PlatformHelper.IsUnix ) { RunBuild(string.Format(CultureInfo.InvariantCulture, xml, AvailableTask.ResourceType.File.ToString(CultureInfo.InvariantCulture), "###-?", "${file.exists}")); } else { // throw the exception to keep the test happy throw new TestBuildException(); } } [Test] public void Test_ExistingDirectory() { string xml= @" "; string result = RunBuild(string.Format(CultureInfo.InvariantCulture, xml, AvailableTask.ResourceType.Directory.ToString(CultureInfo.InvariantCulture), _tempDir, "${dir.exists}")); Assert.IsTrue(result.ToLower().IndexOf("dir.exists=true") != -1, "Directory resource should have existed:" + result); } [Test] public void Test_NotExistingDirectory() { string xml= @" "; string result = RunBuild(string.Format(CultureInfo.InvariantCulture, xml, AvailableTask.ResourceType.Directory.ToString(CultureInfo.InvariantCulture), _notExistingTempDir, "${dir.exists}")); Assert.IsTrue(result.ToLower().IndexOf("dir.exists=false") != -1, "Directory resource not should have existed:" + result); } [Test] [ExpectedException(typeof(TestBuildException))] public void Test_InvalidDirectory() { string xml= @" "; // unix accepts most characters ( except / ) so this test won't fail there. if (! PlatformHelper.IsUnix ) { RunBuild(string.Format(CultureInfo.InvariantCulture, xml, AvailableTask.ResourceType.Directory.ToString(CultureInfo.InvariantCulture), "|", "${dir.exists}")); } else { throw new TestBuildException(); } } [Test] [ExpectedException(typeof(TestBuildException))] public void Test_InvalidResourceType() { string xml= @" "; RunBuild(string.Format(CultureInfo.InvariantCulture, xml, "InvalidResourceType", @"\\#(){/}.dddd", "${file.exists}")); } #endregion Public Instance Methods #region Private Instance Fields private string _tempFile; private string _tempDir; private string _notExistingTempFile; private string _notExistingTempDir; #endregion Private Instance Fields } }