public void Setup() { task = new ILMerge(); task.ToolPath = Path.Combine(TaskUtility.GetProjectRootDirectory(true), @"Source\packages\ilmerge.2.12.0803\"); task.BuildEngine = new MockBuild(); task.InputAssemblies = this.inputAssemblies; }
public void Setup() { MockBuild buildEngine = new MockBuild(); testDirectory = TaskUtility.makeTestDirectory(buildEngine); task = new WebDownload(); task.BuildEngine = new MockBuild(); }
public void DuplicateTypeAllowed() { task.OutputFile = new TaskItem(Path.Combine(this.testDirectory, @"merged1.dll")); task.AllowDuplicateTypes = TaskUtility.StringArrayToItemArray(@"ClassAB", "ClassBA"); task.XmlDocumentation = true; Assert.IsTrue(task.Execute(), @"Task failed"); this.AssertResults(task, PublicCount, VersionA); }
public void ChecksumTestSHA1() { Checksum task = new Checksum(); task.BuildEngine = new MockBuild(); task.Files = TaskUtility.StringArrayToItemArray(inputFiles); task.Algorithm = "SHA1"; Assert.IsTrue(task.Execute(), "Execute Failed"); }
public void ChecksumTestUnsupportedAlg() { Checksum task = new Checksum(); task.BuildEngine = new MockBuild(); task.Files = TaskUtility.StringArrayToItemArray(inputFiles); task.Algorithm = "foo"; Assert.IsFalse(task.Execute(), "Execute Failed"); }
public void PrimaryTypesAndExclusions() { task.OutputFile = new TaskItem(Path.Combine(this.testDirectory, @"merged3.dll")); task.AllowDuplicateTypes = TaskUtility.StringArrayToItemArray(@"ClassAB"); task.DebugInfo = false; task.XmlDocumentation = false; task.ExcludeFile = new TaskItem(this.excludeFile); Assert.IsTrue(task.Execute(), @"Task failed"); this.AssertResults(task, PublicACount + 1, VersionA); }
public void The_WellKnown_item_metadata_can_be_accessed_on_returned_projects() { // http://msdn2.microsoft.com/en-us/library/ms164313.aspx GetSolutionProjects task = new GetSolutionProjects(); task.BuildEngine = new MockBuild(); task.Solution = Path.Combine(TaskUtility.GetProjectRootDirectory(true), @"Source\MSBuild.Community.Tasks.Tests\Solution\TestSolution.sln"); Assert.IsTrue(task.Execute()); Assert.AreEqual("TestProject1", task.Output[0].GetMetadata("Filename")); }
public void SignedMergedAssembly() { task.OutputFile = new TaskItem(Path.Combine(this.testDirectory, @"merged4.dll")); task.AllowDuplicateTypes = TaskUtility.StringArrayToItemArray(@"ClassAB"); task.DebugInfo = false; task.XmlDocumentation = false; task.KeyFile = new TaskItem(this.keyFile); Assert.IsTrue(task.Execute(), @"Task failed"); this.AssertResults(task, PublicCount, VersionA); }
public void Solution_folders_are_not_returned_as_projects() { GetSolutionProjects task = new GetSolutionProjects(); task.BuildEngine = new MockBuild(); task.Solution = Path.Combine(TaskUtility.GetProjectRootDirectory(true), @"Source\MSBuild.Community.Tasks.Tests\Solution\TestSolution.sln"); Assert.IsTrue(task.Execute()); foreach (ITaskItem project in task.Output) { Assert.AreNotEqual("TestFolder1", project.GetMetadata("ProjectName")); } }
public void RegexMatchExecute() { RegexMatch task = new RegexMatch(); task.BuildEngine = new MockBuild(); task.Input = TaskUtility.StringArrayToItemArray("foo.my.foo.foo.test.o", "foo.my.faa.foo.test.a", "foo.my.fbb.foo.test.b", "foo.my.fcc.foo.test.c", "foo.my.fdd.foo.test.d"); task.Expression = new TaskItem("[a-c]$"); Assert.IsTrue(task.Execute(), "Execute Failed"); Assert.AreEqual(3, task.Output.Length, "Match should have matched three items"); }
public void Setup() { MockBuild buildEngine = new MockBuild(); testDirectory = Path.Combine(TaskUtility.makeTestDirectory(buildEngine), "ChecksumTest"); Directory.CreateDirectory(testDirectory); // Create test file inputFiles = new string[2]; inputFiles[0] = Path.Combine(testDirectory, "testFile1.txt"); inputFiles[1] = Path.Combine(testDirectory, "testFile2.txt"); File.WriteAllText(inputFiles[0], "foo\nbar"); File.WriteAllText(inputFiles[1], "test2\ntest2"); }
public void NDocExecute() { string prjRootPath = TaskUtility.getProjectRootDirectory(true); string workingDir = Path.Combine(prjRootPath, @"Documentation"); NDoc task = new NDoc(); task.BuildEngine = new MockBuild(); task.ToolPath = Path.Combine(workingDir, "ndoc"); task.ProjectFilePath = Path.Combine(workingDir, @"MSBuild.Community.Tasks.ndoc"); task.WorkingDirectory = workingDir; task.Documenter = "XML"; Assert.IsTrue(task.Execute(), "Execute Failed"); }
public void XPathThatReturnsBooleanValue() { XmlRead task = new XmlRead(); task.BuildEngine = new MockBuild(); string prjRootPath = TaskUtility.GetProjectRootDirectory(true); task.XmlFileName = Path.Combine(prjRootPath, @"Source\Subversion.proj"); task.XPath = "10 < 10"; task.Namespace = "http://schemas.microsoft.com/developer/msbuild/2003"; task.Prefix = "n"; Assert.IsTrue(task.Execute(), "Execute failed."); Assert.AreEqual("False", task.Value); }
public void XsltOneInput() { Xslt task = new Xslt(); task.BuildEngine = new MockBuild(); string testDir; string assemblyDir = TaskUtility.AssemblyDirectory; TaskUtility.logEnvironmentInfo(task.Log); if (TaskUtility.CalledInBuildDirectory) { task.Log.LogMessage("Called in build directory"); // get the files from where msbuild put them testDir = TaskUtility.TestDirectory; } else { task.Log.LogMessage("Not called in build directory"); // get the files from where Visual Studio put them testDir = Path.Combine(TaskUtility.AssemblyDirectory, @"Xslt"); } task.Inputs = TaskUtility.StringArrayToItemArray(Path.Combine(testDir, @"XsltTestInput.xml")); task.Inputs[0].SetMetadata(@"configuration", "test"); task.Xsl = new TaskItem(Path.Combine(assemblyDir, @"NUnitReport.xsl")); task.Xsl.SetMetadata(@"project", "XsltTest"); task.RootTag = "mergedroot"; task.Output = Path.Combine(testDir, @"XsltTestOutput.html"); Assert.IsNotNull(task.Inputs, @"No inputs"); Assert.IsNull(task.RootAttributes, @"Wrong default root attributes"); Assert.IsNotNull(task.Xsl, @"No xsl"); Assert.IsNotNull(task.Output, @"No output"); // executing with one input files Assert.IsTrue(task.Execute(), @"Task with one input files failed"); Assert.IsTrue(File.Exists(task.Output), @"Missing output file"); string taskOutput = File.ReadAllText(task.Output); Assert.IsTrue(taskOutput.Contains( @"<h1>Project ""XsltTest"" - Configuration ""test"" - NUnit Test Report</h1>"), @"Input or Xsl metadata not correctly added."); }
public void XmlReadExecute() { XmlRead task = new XmlRead(); task.BuildEngine = new MockBuild(); string prjRootPath = TaskUtility.GetProjectRootDirectory(true); task.XmlFileName = Path.Combine(prjRootPath, @"Source\Subversion.proj"); task.XPath = "string(/n:Project/n:PropertyGroup/n:MSBuildCommunityTasksPath/text())"; task.Namespace = "http://schemas.microsoft.com/developer/msbuild/2003"; task.Prefix = "n"; Assert.IsTrue(task.Execute(), "Execute Failed"); task.XPath = "/n:Project/n:Target/@Name"; Assert.IsTrue(task.Execute(), "Execute Failed"); }
public void ExecuteAttrib() { string attribFile = Path.Combine(TaskUtility.TestDirectory, @"attrib.txt"); File.WriteAllText(attribFile, "This is a test file"); Attrib task = new Attrib(); task.BuildEngine = new MockBuild(); task.Files = TaskUtility.StringArrayToItemArray(attribFile); task.ReadOnly = true; task.Hidden = true; task.System = true; task.Execute(); bool isReadOnly = ((File.GetAttributes(attribFile) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly); bool isHidden = ((File.GetAttributes(attribFile) & FileAttributes.Hidden) == FileAttributes.Hidden); bool isSystem = ((File.GetAttributes(attribFile) & FileAttributes.System) == FileAttributes.System); Assert.IsTrue(isReadOnly, "Attribute should be readonly"); Assert.IsTrue(isHidden, "Attribute should be hidden"); Assert.IsTrue(isSystem, "Attribute should be system"); task = new Attrib(); task.BuildEngine = new MockBuild(); task.Files = TaskUtility.StringArrayToItemArray(attribFile); task.Hidden = false; task.System = false; task.Execute(); isReadOnly = ((File.GetAttributes(attribFile) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly); isHidden = ((File.GetAttributes(attribFile) & FileAttributes.Hidden) == FileAttributes.Hidden); isSystem = ((File.GetAttributes(attribFile) & FileAttributes.System) == FileAttributes.System); Assert.IsTrue(isReadOnly, "Attribute should be readonly"); Assert.IsFalse(isHidden, "Attribute should not be hidden"); Assert.IsFalse(isSystem, "Attribute should not be system"); task = new Attrib(); task.BuildEngine = new MockBuild(); task.Files = TaskUtility.StringArrayToItemArray(attribFile); task.Normal = true; task.Execute(); isReadOnly = ((File.GetAttributes(attribFile) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly); Assert.IsFalse(isReadOnly, "Attribute should not be readonly"); }
public void FixtureInit() { MockBuild buildEngine = new MockBuild(); testDirectory = TaskUtility.makeTestDirectory(buildEngine); // Create test files files = new string[3]; files[0] = Path.Combine(testDirectory, @"numberupdate.txt"); files[1] = Path.Combine(testDirectory, @"versionupdate.txt"); files[2] = Path.Combine(testDirectory, @"parsetestupdate.txt"); File.WriteAllText(files[0], "1.0.0.0"); File.WriteAllText(files[1], "1.0.0.0"); File.WriteAllText(files[2], "Today's date is: @DATE@." + Environment.NewLine + "In case you didn't understand, today's date is: @DATE@!"); }
public void RegexReplaceRemoveFirstFoo() { RegexReplace task = new RegexReplace(); task.BuildEngine = new MockBuild(); task.Input = TaskUtility.StringArrayToItemArray("foo.my.foo.foo.test.o", "foo.my.faa.foo.test.a", "foo.my.fbb.foo.test.b", "foo.my.fcc.foo.test.c", "foo.my.fdd.foo.test.d"); task.Expression = new TaskItem("foo\\."); task.Count = new TaskItem("1"); Assert.IsTrue(task.Execute(), "Execute Failed"); foreach (ITaskItem item in task.Output) { Assert.IsTrue(!item.ItemSpec.StartsWith("foo."), string.Format("Item still starts with foo: {0}", item.ItemSpec)); } }
public void Copy() { MockBuild buildEngine = new MockBuild(); string testDirectory = TaskUtility.makeTestDirectory(buildEngine); RoboCopy copy = new RoboCopy(); copy.BuildEngine = buildEngine; copy.SourceFolder = @"..\..\..\"; copy.DestinationFolder = Path.Combine(testDirectory, "RoboCopy"); copy.Mirror = true; copy.ExcludeFolders = new string[] { ".svn", "bin", "obj", "Test" }; copy.ExcludeFiles = new string[] { "*.resx", "*.csproj", "*.webinfo", "*.log" }; bool result = copy.Execute(); Assert.IsTrue(result); }
public void GetSolutionProjects() { GetSolutionProjects task = new GetSolutionProjects(); task.BuildEngine = new MockBuild(); task.Solution = Path.Combine(TaskUtility.getProjectRootDirectory(true), @"Source\MSBuild.Community.Tasks.Tests\Solution\TestSolution.sln"); Assert.IsTrue(task.Execute()); ITaskItem[] items = task.Output; Assert.AreEqual(3, items.Length); for (int ndx = 1; ndx < 4; ndx++) { Assert.AreEqual(string.Format("TestProject{0}\\TestProject{0}.csproj", ndx), items[ndx - 1].ItemSpec); Assert.AreEqual(string.Concat("TestProject", ndx.ToString()), items[ndx - 1].GetMetadata("ProjectName")); } }
public void RegexReplaceLastDotForBang() { RegexReplace task = new RegexReplace(); task.BuildEngine = new MockBuild(); task.Input = TaskUtility.StringArrayToItemArray("foo.my.foo.foo.test.o", "foo.my.faa.foo.test.a", "foo.my.fbb.foo.test.b", "foo.my.fcc.foo.test.c", "foo.my.fdd.foo.test.d"); task.Expression = new TaskItem("\\."); task.Replacement = new TaskItem("!"); task.Count = new TaskItem("1"); task.Options = TaskUtility.StringArrayToItemArray("RightToLeft"); Assert.IsTrue(task.Execute(), "Execute Failed"); foreach (ITaskItem item in task.Output) { Assert.AreEqual("!", item.ItemSpec.Substring(19, 1), string.Format("Item not replaced properly: {0}", item.ItemSpec)); } }
public void RegexReplaceFooForOop() { RegexReplace task = new RegexReplace(); task.BuildEngine = new MockBuild(); string[] expectedResult = new string[] { "foo.my.oop.oop.test.o", "foo.my.faa.oop.test.a", "foo.my.fbb.oop.test.b", "foo.my.fcc.oop.test.c", "foo.my.fdd.oop.test.d" }; task.Input = TaskUtility.StringArrayToItemArray("foo.my.foo.foo.test.o", "foo.my.faa.foo.test.a", "foo.my.fbb.foo.test.b", "foo.my.fcc.foo.test.c", "foo.my.fdd.foo.test.d"); task.Expression = new TaskItem("foo\\."); task.StartAt = new TaskItem("6"); task.Replacement = new TaskItem("oop."); Assert.IsTrue(task.Execute(), "Execute Failed"); for (int ndx = 0; ndx < task.Output.Length; ndx++) { Assert.AreEqual(expectedResult[ndx], task.Output[ndx].ItemSpec, "Results did not match expectations"); } }
public void DuplicateTypeAllowed() { if (!ilMergeAvailable) { Assert.Ignore(@"ILMerge.exe not available"); } ILMerge task = new ILMerge(); task.BuildEngine = new MockBuild(); task.InputAssemblies = inputAssemblies; task.OutputFile = new TaskItem(Path.Combine(testDirectory, @"merged1.dll")); task.AllowDuplicateTypes = TaskUtility.StringArrayToItemArray(@"ClassAB"); task.XmlDocumentation = true; Assert.IsTrue(task.Execute(), @"Task failed"); AssertResults(task, PUBLIC_COUNT, VERSION_A); }
public void GetSolutionProjects() { GetSolutionProjects task = new GetSolutionProjects(); task.BuildEngine = new MockBuild(); task.Solution = Path.Combine(TaskUtility.GetProjectRootDirectory(true), @"Source\MSBuild.Community.Tasks.Tests\Solution\TestSolution.sln"); Assert.IsTrue(task.Execute()); ITaskItem[] items = task.Output; string expectedProjectPath; string actualProjectPath; string expectedProjectName; string actualProjectName; Assert.AreEqual(4, items.Length); for (int i = 0; i < 3; i++) { expectedProjectPath = string.Format("TestProject{0}\\TestProject{0}.csproj", i + 1); actualProjectPath = items[i].GetMetadata("ProjectPath"); expectedProjectName = string.Format("TestProject{0}", i + 1); actualProjectName = items[i].GetMetadata("ProjectName"); Assert.AreEqual(expectedProjectPath, actualProjectPath); Assert.AreEqual(expectedProjectName, actualProjectName); } //Added test to check handling of projects with spaces in the name expectedProjectPath = "Test Project4\\Test Project4.csproj"; actualProjectPath = items[3].GetMetadata("ProjectPath"); expectedProjectName = "Test Project4"; actualProjectName = items[3].GetMetadata("ProjectName"); Assert.AreEqual(expectedProjectPath, actualProjectPath); Assert.AreEqual(expectedProjectName, actualProjectName); //Added test for reading the GUID attribute string expectedGUID = "{D6CFCEDB-15CF-4EB6-87FB-8A5113727718}"; string actualGUID = items[3].GetMetadata("ProjectGUID"); Assert.AreEqual(expectedGUID, actualGUID); }
public void TestFilesUpdate() { FileUpdate task = new FileUpdate(); task.BuildEngine = new MockBuild(); TaskItem[] items = TaskUtility.StringArrayToItemArray(files); task.Files = items; task.Regex = @"(\d+)\.(\d+)\.(\d+)\.(\d+)"; task.ReplacementText = "$1.$2.$3.123"; Assert.IsTrue(task.Execute(), "Execute Failed!"); task = new FileUpdate(); task.BuildEngine = new MockBuild(); task.Files = items; task.Regex = @"@\w*?@"; task.ReplacementText = DateTime.Now.ToString(); Assert.IsTrue(task.Execute(), "Execute Failed!"); }
public void NUnitExecuteWhenToolPathIsDefined(int majorVersion, int minorVersion, int number) { string nUnitDirName = string.Format("NUnit {0}.{1}.{2}", majorVersion, minorVersion, number); string nunitPath = Path.Combine(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), nUnitDirName), "bin"); if (!Directory.Exists(nunitPath)) { Assert.Inconclusive("{0} - not found", nunitPath); } MockBuild buildEngine = new MockBuild(); string testDirectory = TaskUtility.makeTestDirectory(buildEngine); NUnit task = new NUnit(); task.ToolPath = nunitPath; task.BuildEngine = buildEngine; task.Assemblies = TaskUtility.StringArrayToItemArray(Path.Combine(nunitPath, "nunit.framework.tests.dll")); task.WorkingDirectory = testDirectory; Assert.IsTrue(task.Execute(), "Execute Failed"); }
public void MoveExecute() { string attribFile = Path.Combine(TaskUtility.TestDirectory, @"moveme.txt"); File.WriteAllText(attribFile, "This is a test file"); Move task = new Move(); task.BuildEngine = new MockBuild(); task.SourceFiles = TaskUtility.StringArrayToItemArray(attribFile); task.DestinationFolder = new TaskItem(Path.Combine(TaskUtility.TestDirectory, "..")); task.Execute(); File.WriteAllText(attribFile, "This is a test file"); task = new Move(); task.BuildEngine = new MockBuild(); task.SourceFiles = TaskUtility.StringArrayToItemArray(attribFile); task.DestinationFiles = TaskUtility.StringArrayToItemArray("newme.txt"); task.Execute(); }
public void The_item_spec_will_contain_the_full_path_to_the_project_file() { GetSolutionProjects task = new GetSolutionProjects(); task.BuildEngine = new MockBuild(); string msbuildProjectDirectory = TaskUtility.GetProjectRootDirectory(true); string solutionDirectory = Path.Combine(msbuildProjectDirectory, @"Source\MSBuild.Community.Tasks.Tests\Solution"); task.Solution = Path.Combine(solutionDirectory, @"TestSolution.sln"); Assert.IsTrue(task.Execute()); ITaskItem[] items = task.Output; // Make sure the test .sln file is setup the way we expect string projectEntryInSolutionFile = @"TestProject1\TestProject1.csproj"; Assert.AreEqual(projectEntryInSolutionFile, items[0].GetMetadata("ProjectPath"), "The TestSolution.sln file has changed since this test was written. Please fix the file or this test so that the expectations are in synch."); string expectedFullPathToProjectFile = Path.Combine(solutionDirectory, projectEntryInSolutionFile); Assert.AreEqual(expectedFullPathToProjectFile, items[0].ItemSpec, "The ItemSpec should contain the full path to the contained project file."); }
public void SignedMergedAssembly() { if (!this.isILMergeAvailable) { Assert.Ignore(@"ILMerge.exe not available"); } ILMerge task = new ILMerge(); task.BuildEngine = new MockBuild(); task.InputAssemblies = this.inputAssemblies; task.OutputFile = new TaskItem(Path.Combine(this.testDirectory, @"merged4.dll")); task.AllowDuplicateTypes = TaskUtility.StringArrayToItemArray(@"ClassAB"); task.DebugInfo = false; task.XmlDocumentation = false; task.KeyFile = new TaskItem(this.keyFile); Assert.IsTrue(task.Execute(), @"Task failed"); this.AssertResults(task, PublicCount, VersionA); }
public void TestItemsNotUpdated() { FileUpdate task = new FileUpdate(); task.BuildEngine = new MockBuild(); TaskItem[] items = TaskUtility.StringArrayToItemArray(files); task.Files = items; task.Regex = @"(\d+)\.(\d+)\.(\d+)\.(\d+)"; task.ReplacementText = "$1.$2.$3.123"; Assert.IsTrue(task.Execute(), "Execute Failed!"); task = new FileUpdate(); task.BuildEngine = new MockBuild(); task.Files = items; task.Regex = @"TestExitStatusAndNotUpdatedItems"; task.ReplacementText = DateTime.Now.ToString(); Assert.IsTrue(task.Execute(), "Execute Failed!"); Assert.IsTrue(task.ItemsNotUpdated.Length == 3); Assert.IsFalse(task.AllItemsUpdated); }