예제 #1
0
        public void ItMergesXmlFiles()
        {
            var items = new[]
            {
                new TaskItem(Path.Combine(TempDir, "file1.xml")),
                new TaskItem(Path.Combine(TempDir, "file2.xml")),
            };

            File.WriteAllText(items[0].ItemSpec, "<Doc Attr1='1'><a/></Doc>");
            File.WriteAllText(items[1].ItemSpec, "<Doc Attr2='2' Attr1='3'><b/></Doc>");

            var sb = new StringBuilder();

            var task = new MergeXmlFiles
            {
                BuildEngine = MockEngine,
                Files       = items,
            };

            Assert.True(task.Execute(() => new StringWriter(sb)), "Task should pass");

            Assert.Equal("<Doc Attr1=\"3\" Attr2=\"2\"><a /><b /></Doc>", sb.ToString());
        }
예제 #2
0
        public void ItFailsIfRootNodeIsDifferent()
        {
            var items = new[]
            {
                new TaskItem(Path.Combine(TempDir, "file3.xml")),
                new TaskItem(Path.Combine(TempDir, "file4.xml")),
            };

            File.WriteAllText(items[0].ItemSpec, "<Apple><a/></Apple>");
            File.WriteAllText(items[1].ItemSpec, "<Oranges><b/></Oranges>");

            var sb = new StringBuilder();

            var task = new MergeXmlFiles
            {
                BuildEngine = new MockEngine(Output)
                {
                    ContinueOnError = true
                },
                Files = items,
            };

            Assert.False(task.Execute(() => new StringWriter(sb)), "Task should fail");
        }