Пример #1
0
 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;
 }
Пример #2
0
        public void Setup()
        {
            MockBuild buildEngine = new MockBuild();

            testDirectory    = TaskUtility.makeTestDirectory(buildEngine);
            task             = new WebDownload();
            task.BuildEngine = new MockBuild();
        }
Пример #3
0
        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");
        }
Пример #6
0
        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);
        }
Пример #7
0
        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"));
        }
Пример #8
0
        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);
        }
Пример #9
0
        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"));
            }
        }
Пример #10
0
        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");
        }
Пример #12
0
        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");
        }
Пример #13
0
        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.");
        }
Пример #15
0
        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");
        }
Пример #16
0
        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");
        }
Пример #17
0
        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@!");
        }
Пример #18
0
        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));
            }
        }
Пример #19
0
        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);
        }
Пример #20
0
        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"));
            }
        }
Пример #21
0
        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));
            }
        }
Пример #22
0
        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");
            }
        }
Пример #23
0
        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);
        }
Пример #24
0
        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);
        }
Пример #25
0
        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!");
        }
Пример #26
0
        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");
        }
Пример #27
0
        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();
        }
Пример #28
0
        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.");
        }
Пример #29
0
        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);
        }
Пример #30
0
        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);
        }