// NAnt - A .NET build tool
// Copyright (C) 2002 Scott Hernandez (ScottHernandez@hotmail.com)
//
// 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
// Scott Hernandez (ScottHernandez@hotmail.com)
using System;
using System.IO;
using System.Reflection;
using System.Text;
using System.Xml;
using System.Globalization;
using NUnit.Framework;
namespace Tests.NAnt.Core.Tasks {
///
/// Tests the deletion of the following:
///
///
/// - file
/// - folder
/// - folder with a file (recursive)
///
///
///
/// This test should also test for failures, like permission errors, and filesets
[TestFixture]
public class DeleteTest : BuildTestBase {
const string _xmlProjectTemplate = @"
";
string tempFile1, tempFile2, tempFile3, tempFile4, tempFile5, tempFile6, tempFile7, tempFile8, tempFile9, tempFile10;
string tempDir1, tempDir2, tempDir3, tempDir4, tempDir5, tempDir6, tempDir7, tempDir8;
///
/// Creates a structure like so:
/// a.b\
/// a.bb
/// a.bc
/// foo\*
/// x.x
/// goo\*
/// x\
/// y.y
/// ha.he
/// ha.he2*
/// ha.he3*
/// a.boo
/// boo
/// a.c\
/// a.d\
/// boo\
/// a.e\
/// a.ee
///
[SetUp]
protected override void SetUp() {
base.SetUp();
tempDir1 = CreateTempDir("a.b");
tempDir2 = CreateTempDir(Path.Combine(tempDir1, "foo"));
tempDir3 = CreateTempDir(Path.Combine(tempDir1, "goo"));
tempDir4 = CreateTempDir(Path.Combine(tempDir1, Path.Combine(tempDir3, "x")));
tempDir5 = CreateTempDir("a.c");
tempDir6 = CreateTempDir("a.d");
tempDir7 = CreateTempDir(Path.Combine(tempDir6, "boo"));
tempDir8 = CreateTempDir("a.e");
tempFile1 = CreateTempFile(Path.Combine(tempDir1, "a.bb"));
tempFile2 = CreateTempFile(Path.Combine(tempDir1, "a.bc"));
tempFile3 = CreateTempFile(Path.Combine(tempDir2, "x.x"));
tempFile4 = CreateTempFile(Path.Combine(tempDir4, "y.y"));
tempFile5 = CreateTempFile(Path.Combine(tempDir3, "ha.he"));
tempFile6 = CreateTempFile(Path.Combine(tempDir3, "ha.he2"));
tempFile7 = CreateTempFile(Path.Combine(tempDir3, "ha.he3"));
tempFile8 = CreateTempFile(Path.Combine(tempDir8, "a.ee"));
tempFile9 = CreateTempFile(Path.Combine(tempDir3, "a.boo"));
tempFile10 = CreateTempFile(Path.Combine(tempDir3, "boo"));
/*
File.SetAttributes(tempDir2, FileAttributes.ReadOnly);
File.SetAttributes(tempDir3, FileAttributes.ReadOnly);
*/
File.SetAttributes(Path.Combine(tempDir3, "ha.he3"), FileAttributes.ReadOnly);
File.SetAttributes(Path.Combine(tempDir3, "ha.he2"), FileAttributes.ReadOnly);
}
[Test]
public void Test_Delete() {
Assert.IsTrue(File.Exists(tempFile1), "File should have been created:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should have been created:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should have been created:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should have been created:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should have been created:" + tempFile5);
Assert.IsTrue(File.Exists(tempFile6), "File should have been created:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should have been created:" + tempFile7);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should have been created:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should have been created:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should have been created:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should have been created:" + tempDir4);
RunBuild(String.Format(CultureInfo.InvariantCulture, _xmlProjectTemplate, "file", tempFile6 ));
Assert.IsTrue(File.Exists(tempFile1), "File should not have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should not have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsFalse(File.Exists(tempFile6), "File should have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
RunBuild(String.Format(CultureInfo.InvariantCulture, _xmlProjectTemplate, "dir", tempDir2));
Assert.IsTrue(File.Exists(tempFile1), "File should not have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsFalse(File.Exists(tempFile3), "File should have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsFalse(File.Exists(tempFile6), "File should have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsFalse(Directory.Exists(tempDir2), "Dir should have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
RunBuild(String.Format(CultureInfo.InvariantCulture, _xmlProjectTemplate, "file", tempFile1 ));
Assert.IsFalse(File.Exists(tempFile1), "File should have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsFalse(File.Exists(tempFile3), "File should have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsFalse(File.Exists(tempFile6), "File should have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsFalse(Directory.Exists(tempDir2), "Dir should have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
}
///
/// Checks whether an include pattern (without wildcards) that matches
/// a directory containing both files an directories, will NOT cause
/// that directory to be removed.
///
[Test]
public void Test_DeleteFileSet2() {
string xmlProjectTemplateFileSet = @"
";
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName, "a.b"));
Assert.IsTrue(File.Exists(tempFile1), "File should not have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should not have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsTrue(File.Exists(tempFile6), "File should not have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsTrue(File.Exists(tempFile8), "File should not have been deleted:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
}
///
/// Checks whether an include pattern (without wildcards) that matches
/// a directory containing subdirectories, will NOT cause that directory
/// to be removed.
///
[Test]
public void Test_DeleteFileSet3() {
string xmlProjectTemplateFileSet = @"
";
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName, "a.d"));
Assert.IsTrue(File.Exists(tempFile1), "File should not have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should not have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsTrue(File.Exists(tempFile6), "File should not have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsTrue(File.Exists(tempFile8), "File should not have been deleted:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
}
///
/// Checks whether an include pattern (without wildcards) that matches
/// a directory containing files, will NOT cause that directory to be
/// removed.
///
[Test]
public void Test_DeleteFileSet4() {
string xmlProjectTemplateFileSet = @"
";
/// Checks whether an include pattern (without wildcards) that matches
/// a directory containing files, will NOT cause that directory to be
/// removed.
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName, "a.e"));
Assert.IsTrue(File.Exists(tempFile1), "File should not have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should not have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsTrue(File.Exists(tempFile6), "File should not have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsTrue(File.Exists(tempFile8), "File should not have been deleted:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
/// Checks whether removing the last file from a directory, with a
/// pattern that does not match the directory itself, will not CAUSE
/// that directory to be removed.
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName, "a.e/a.ee"));
Assert.IsTrue(File.Exists(tempFile1), "File should not have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should not have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsTrue(File.Exists(tempFile6), "File should not have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsFalse(File.Exists(tempFile8), "File should have been deleted:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
/// Checks whether an include pattern that matches all files in an
/// empty directory, will NOT cause that directory to be removed.
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName, "a.e/**/*"));
Assert.IsTrue(File.Exists(tempFile1), "File should not have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should not have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsTrue(File.Exists(tempFile6), "File should not have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsFalse(File.Exists(tempFile8), "File should have been deleted in previous step:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
/// Checks whether an include pattern that matches all files in a
/// empty directory and the directory itself, will cause that
/// directory to be removed.
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName, "a.e/**"));
Assert.IsTrue(File.Exists(tempFile1), "File should not have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should not have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsTrue(File.Exists(tempFile6), "File should not have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsFalse(File.Exists(tempFile8), "File should have been deleted in previous step:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsFalse(Directory.Exists(tempDir8), "Dir should have been deleted:" + tempDir8);
}
///
/// Checks whether an include pattern that matches all files in a
/// non-empty directory (and its subdirectories) and that directory
/// itself, will cause that directory to be removed.
///
[Test]
public void Test_DeleteFileSet5() {
string xmlProjectTemplateFileSet = @"
";
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName, "a.e/**"));
Assert.IsTrue(File.Exists(tempFile1), "File should not have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should not have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsTrue(File.Exists(tempFile6), "File should not have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsFalse(File.Exists(tempFile8), "File should have been deleted:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsFalse(Directory.Exists(tempDir8), "Dir should have been deleted:" + tempDir8);
}
///
/// Checks whether an include pattern that matches all files in the base
/// directory (and its subdirectories), will NOT cause that directory
/// to be removed.
///
[Test]
public void Test_DeleteFileSet6() {
string xmlProjectTemplateFileSet = @"
";
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, tempDir1, "**/*"));
Assert.IsFalse(File.Exists(tempFile1), "File should have been deleted:" + tempFile1);
Assert.IsFalse(File.Exists(tempFile2), "File should have been deleted:" + tempFile2);
Assert.IsFalse(File.Exists(tempFile3), "File should have been deleted:" + tempFile3);
Assert.IsFalse(File.Exists(tempFile4), "File should have been deleted:" + tempFile4);
Assert.IsFalse(File.Exists(tempFile5), "File should have been deleted:" + tempFile5);
Assert.IsFalse(File.Exists(tempFile6), "File should have been deleted:" + tempFile6);
Assert.IsFalse(File.Exists(tempFile7), "File should have been deleted:" + tempFile7);
Assert.IsTrue(File.Exists(tempFile8), "File should not have been deleted:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsFalse(Directory.Exists(tempDir2), "Dir should have been deleted:" + tempDir2);
Assert.IsFalse(Directory.Exists(tempDir3), "Dir should have been deleted:" + tempDir3);
Assert.IsFalse(Directory.Exists(tempDir4), "Dir should have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
}
[Test]
public void Test_DeleteFileSet7() {
string xmlProjectTemplateFileSet = @"
";
// pattern should match both directories and files named "boo"
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName, "**/boo"));
Assert.IsTrue(File.Exists(tempFile1), "File should not have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should not have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should not have been deleted:" + tempFile3);
Assert.IsTrue(File.Exists(tempFile4), "File should not have been deleted:" + tempFile4);
Assert.IsTrue(File.Exists(tempFile5), "File should not have been deleted:" + tempFile5);
Assert.IsTrue(File.Exists(tempFile6), "File should not have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsTrue(File.Exists(tempFile8), "File should not have been deleted:" + tempFile8);
Assert.IsTrue(File.Exists(tempFile9), "File should not have been deleted:" + tempFile9);
Assert.IsFalse(File.Exists(tempFile10), "File should have been deleted:" + tempFile10);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsFalse(Directory.Exists(tempDir7), "Dir should have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
}
[Test]
public void Test_ExcludePattern1() {
string xmlProjectTemplateFileSet = @"
";
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, tempDir1));
Assert.IsTrue(File.Exists(tempFile1), "File should have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should have been deleted:" + tempFile3);
Assert.IsFalse(File.Exists(tempFile4), "File should have been deleted:" + tempFile4);
Assert.IsFalse(File.Exists(tempFile5), "File should have been deleted:" + tempFile5);
Assert.IsFalse(File.Exists(tempFile6), "File should have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsTrue(File.Exists(tempFile8), "File should not have been deleted:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsFalse(Directory.Exists(tempDir4), "Dir should have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
}
[Test]
public void Test_ExcludePattern1_NoIncludeEmptyDirs() {
string xmlProjectTemplateFileSet = @"
";
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, tempDir1));
Assert.IsTrue(File.Exists(tempFile1), "File should have been deleted:" + tempFile1);
Assert.IsTrue(File.Exists(tempFile2), "File should have been deleted:" + tempFile2);
Assert.IsTrue(File.Exists(tempFile3), "File should have been deleted:" + tempFile3);
Assert.IsFalse(File.Exists(tempFile4), "File should have been deleted:" + tempFile4);
Assert.IsFalse(File.Exists(tempFile5), "File should have been deleted:" + tempFile5);
Assert.IsFalse(File.Exists(tempFile6), "File should have been deleted:" + tempFile6);
Assert.IsTrue(File.Exists(tempFile7), "File should not have been deleted:" + tempFile7);
Assert.IsTrue(File.Exists(tempFile8), "File should not have been deleted:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
}
[Test]
public void Test_ExcludePattern2() {
string xmlProjectTemplateFileSet = @"
";
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName));
Assert.IsFalse(File.Exists(tempFile1), "File should have been deleted:" + tempFile1);
Assert.IsFalse(File.Exists(tempFile2), "File should have been deleted:" + tempFile2);
Assert.IsFalse(File.Exists(tempFile3), "File should have been deleted:" + tempFile3);
Assert.IsFalse(File.Exists(tempFile4), "File should have been deleted:" + tempFile4);
Assert.IsFalse(File.Exists(tempFile5), "File should have been deleted:" + tempFile5);
Assert.IsFalse(File.Exists(tempFile6), "File should have been deleted:" + tempFile6);
Assert.IsFalse(File.Exists(tempFile7), "File should have been deleted:" + tempFile7);
Assert.IsTrue(File.Exists(tempFile8), "File should not have been deleted:" + tempFile8);
Assert.IsFalse(Directory.Exists(tempDir1), "Dir should have been deleted:" + tempDir1);
Assert.IsFalse(Directory.Exists(tempDir2), "Dir should have been deleted:" + tempDir2);
Assert.IsFalse(Directory.Exists(tempDir3), "Dir should have been deleted:" + tempDir3);
Assert.IsFalse(Directory.Exists(tempDir4), "Dir should have been deleted:" + tempDir4);
Assert.IsFalse(Directory.Exists(tempDir5), "Dir should have been deleted:" + tempDir5);
Assert.IsFalse(Directory.Exists(tempDir6), "Dir should have been deleted:" + tempDir6);
Assert.IsFalse(Directory.Exists(tempDir7), "Dir should have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
}
[Test]
public void Test_ExcludePattern2_NoIncludeEmptyDirs() {
string xmlProjectTemplateFileSet = @"
";
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName));
Assert.IsFalse(File.Exists(tempFile1), "File should have been deleted:" + tempFile1);
Assert.IsFalse(File.Exists(tempFile2), "File should have been deleted:" + tempFile2);
Assert.IsFalse(File.Exists(tempFile3), "File should have been deleted:" + tempFile3);
Assert.IsFalse(File.Exists(tempFile4), "File should have been deleted:" + tempFile4);
Assert.IsFalse(File.Exists(tempFile5), "File should have been deleted:" + tempFile5);
Assert.IsFalse(File.Exists(tempFile6), "File should have been deleted:" + tempFile6);
Assert.IsFalse(File.Exists(tempFile7), "File should have been deleted:" + tempFile7);
Assert.IsTrue(File.Exists(tempFile8), "File should not have been deleted:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
}
[Test]
public void Test_ExcludePattern3() {
string xmlProjectTemplateFileSet = @"
";
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName));
Assert.IsFalse(File.Exists(tempFile1), "File should have been deleted:" + tempFile1);
Assert.IsFalse(File.Exists(tempFile2), "File should have been deleted:" + tempFile2);
Assert.IsFalse(File.Exists(tempFile3), "File should have been deleted:" + tempFile3);
Assert.IsFalse(File.Exists(tempFile4), "File should have been deleted:" + tempFile4);
Assert.IsFalse(File.Exists(tempFile5), "File should have been deleted:" + tempFile5);
Assert.IsFalse(File.Exists(tempFile6), "File should have been deleted:" + tempFile6);
Assert.IsFalse(File.Exists(tempFile7), "File should have been deleted:" + tempFile7);
Assert.IsFalse(File.Exists(tempFile8), "File should have been deleted:" + tempFile8);
Assert.IsFalse(Directory.Exists(tempDir1), "Dir should have been deleted:" + tempDir1);
Assert.IsFalse(Directory.Exists(tempDir2), "Dir should have been deleted:" + tempDir2);
Assert.IsFalse(Directory.Exists(tempDir3), "Dir should have been deleted:" + tempDir3);
Assert.IsFalse(Directory.Exists(tempDir4), "Dir should have been deleted:" + tempDir4);
Assert.IsFalse(Directory.Exists(tempDir5), "Dir should have been deleted:" + tempDir5);
Assert.IsFalse(Directory.Exists(tempDir6), "Dir should have been deleted:" + tempDir6);
Assert.IsFalse(Directory.Exists(tempDir7), "Dir should have been deleted:" + tempDir7);
Assert.IsFalse(Directory.Exists(tempDir8), "Dir should have been deleted:" + tempDir8);
}
[Test]
public void Test_ExcludePattern3_NoIncludeEmptyDirs() {
string xmlProjectTemplateFileSet = @"
";
RunBuild(string.Format(CultureInfo.InvariantCulture,
xmlProjectTemplateFileSet, TempDirName));
Assert.IsFalse(File.Exists(tempFile1), "File should have been deleted:" + tempFile1);
Assert.IsFalse(File.Exists(tempFile2), "File should have been deleted:" + tempFile2);
Assert.IsFalse(File.Exists(tempFile3), "File should have been deleted:" + tempFile3);
Assert.IsFalse(File.Exists(tempFile4), "File should have been deleted:" + tempFile4);
Assert.IsFalse(File.Exists(tempFile5), "File should have been deleted:" + tempFile5);
Assert.IsFalse(File.Exists(tempFile6), "File should have been deleted:" + tempFile6);
Assert.IsFalse(File.Exists(tempFile7), "File should have been deleted:" + tempFile7);
Assert.IsFalse(File.Exists(tempFile8), "File should have been deleted:" + tempFile8);
Assert.IsTrue(Directory.Exists(tempDir1), "Dir should not have been deleted:" + tempDir1);
Assert.IsTrue(Directory.Exists(tempDir2), "Dir should not have been deleted:" + tempDir2);
Assert.IsTrue(Directory.Exists(tempDir3), "Dir should not have been deleted:" + tempDir3);
Assert.IsTrue(Directory.Exists(tempDir4), "Dir should not have been deleted:" + tempDir4);
Assert.IsTrue(Directory.Exists(tempDir5), "Dir should not have been deleted:" + tempDir5);
Assert.IsTrue(Directory.Exists(tempDir6), "Dir should not have been deleted:" + tempDir6);
Assert.IsTrue(Directory.Exists(tempDir7), "Dir should not have been deleted:" + tempDir7);
Assert.IsTrue(Directory.Exists(tempDir8), "Dir should not have been deleted:" + tempDir8);
}
[Test]
public void Test_NonExistingFile() {
string xmlProject = @"
";
RunBuild(xmlProject);
}
[Test]
public void Test_NonExistingDirectory() {
string xmlProject = @"
";
RunBuild(xmlProject);
}
}
}