Example #1
0
        public void AbsoluteAbsolute1()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.BasePath = NativeMethodsShared.IsWindows ? @"\\fileserver\public" : "/rootdir/public";
            string path1        = NativeMethodsShared.IsWindows ? @"c:\ghi.txt" : "/ghi.txt";
            string path2        = NativeMethodsShared.IsWindows ? @"d:\jkl\mno.txt" : "/jkl/mno.txt";
            string path3        = @"\\myserver\myshare";
            string pathsToMatch = string.Format(NativeMethodsShared.IsWindows ? @"
                {0}
                {1}
                {2}
                " : @"
                {0}
                {1}
                ", path1, path2, path3);

            t.Paths = NativeMethodsShared.IsWindows
                          ? new ITaskItem[] { new TaskItem(path1), new TaskItem(path2), new TaskItem(path3) }
                          : new ITaskItem[] { new TaskItem(path1), new TaskItem(path2) };
            Assert.True(t.Execute()); // "success"

            ObjectModelHelpers.AssertItemsMatch(pathsToMatch, t.CombinedPaths, true);
        }
Example #2
0
        public void MetadataPreserved()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();
            string expected;

            if (NativeMethodsShared.IsWindows)
            {
                t.BasePath = @"c:\abc\def\";
                t.Paths    = new ITaskItem[] { new TaskItem(@"jkl\mno.txt") };
                expected   = @"
                c:\abc\def\jkl\mno.txt : Culture=english
                ";
            }
            else
            {
                t.BasePath = "/abc/def/";
                t.Paths    = new ITaskItem[] { new TaskItem("jkl/mno.txt") };
                expected   = @"
                /abc/def/jkl/mno.txt : Culture=english
                ";
            }
            t.Paths[0].SetMetadata("Culture", "english");
            Assert.True(t.Execute()); // "success"

            ObjectModelHelpers.AssertItemsMatch(expected, t.CombinedPaths, true);
        }
Example #3
0
        public void TestAssignment()
        {
            CombinePath cp = new CombinePath();

            cp.BasePath = "a";
            cp.Paths    = new ITaskItem [] { new TaskItem("b") };

            Assert.AreEqual("a", cp.BasePath, "A1");
            Assert.AreEqual("b", cp.Paths [0].ItemSpec, "A2");
        }
Example #4
0
        public void NoPaths()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.BasePath = @"c:\abc\def";
            t.Paths    = new ITaskItem[0];
            Assert.IsTrue(t.Execute(), "success");

            ObjectModelHelpers.AssertItemsMatch(@"
                ", t.CombinedPaths, true);
        }
Example #5
0
        public void NoPaths()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.BasePath = @"c:\abc\def";
            t.Paths    = System.Array.Empty <ITaskItem>();
            Assert.True(t.Execute()); // "success"

            ObjectModelHelpers.AssertItemsMatch(@"
                ", t.CombinedPaths, true);
        }
Example #6
0
        public void NoBasePath()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.Paths = new ITaskItem[] { new TaskItem(@"jkl\mno.txt"), new TaskItem(@"c:\abc\def\ghi.txt") };
            Assert.IsTrue(t.Execute(), "success");

            ObjectModelHelpers.AssertItemsMatch(@"
                jkl\mno.txt
                c:\abc\def\ghi.txt
                ", t.CombinedPaths, true);
        }
Example #7
0
        public void BlankPath()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.BasePath = @"c:\abc\def";
            t.Paths    = new ITaskItem[] { new TaskItem("") };
            Assert.True(t.Execute()); // "success"

            ObjectModelHelpers.AssertItemsMatch(@"
                c:\abc\def
                ", t.CombinedPaths, true);
        }
Example #8
0
        public void AbsoluteRelative1()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.BasePath = @"c:\abc\def";
            t.Paths    = new ITaskItem[] { new TaskItem(@"\ghi\jkl.txt"), new TaskItem(@"mno\qrs.txt") };
            Assert.IsTrue(t.Execute(), "success");

            ObjectModelHelpers.AssertItemsMatch(
                @"\ghi\jkl.txt" + "\r\n" +      // I think this is a bug in Path.Combine.  It should have been "c:\ghi\jkl.txt".
                @"c:\abc\def\mno\qrs.txt",
                t.CombinedPaths, true);
        }
Example #9
0
        public void MetadataPreserved()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.BasePath = @"c:\abc\def\";
            t.Paths    = new ITaskItem[] { new TaskItem(@"jkl\mno.txt") };
            t.Paths[0].SetMetadata("Culture", "english");
            Assert.IsTrue(t.Execute(), "success");

            ObjectModelHelpers.AssertItemsMatch(@"
                c:\abc\def\jkl\mno.txt : Culture=english
                ", t.CombinedPaths, true);
        }
Example #10
0
        public void RelativeRelative1()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.BasePath = @"abc\def";
            t.Paths    = new ITaskItem[] { new TaskItem(@"ghi.txt"), new TaskItem(@"jkl\mno.txt") };
            Assert.True(t.Execute()); // "success"

            ObjectModelHelpers.AssertItemsMatch(@"
                abc\def\ghi.txt
                abc\def\jkl\mno.txt
                ", t.CombinedPaths, true);
        }
Example #11
0
        public void AbsoluteAbsolute1()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.BasePath = @"\\fileserver\public";
            t.Paths    = new ITaskItem[] { new TaskItem(@"c:\ghi.txt"), new TaskItem(@"d:\jkl\mno.txt"), new TaskItem(@"\\myserver\myshare") };
            Assert.IsTrue(t.Execute(), "success");

            ObjectModelHelpers.AssertItemsMatch(@"
                c:\ghi.txt
                d:\jkl\mno.txt
                \\myserver\myshare
                ", t.CombinedPaths, true);
        }
Example #12
0
        public void InvalidPath()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine(true);

            t.BasePath = @"c:\abc\def";
            t.Paths    = new ITaskItem[] { new TaskItem("ghi.txt"), new TaskItem("|.txt"), new TaskItem("jkl.txt") };
            Assert.IsFalse(t.Execute(), "should have failed");
            ((MockEngine)t.BuildEngine).AssertLogContains("MSB3095");

            ObjectModelHelpers.AssertItemsMatch(@"
                c:\abc\def\ghi.txt
                c:\abc\def\jkl.txt
                ", t.CombinedPaths, true);
        }
Example #13
0
        public void AbsoluteRelative1()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.BasePath = NativeMethodsShared.IsWindows ? @"c:\abc\def" : "/abc/def";
            string path1     = Path.DirectorySeparatorChar + Path.Combine("ghi", "jkl.txt");
            string path2     = Path.Combine("mno", "qrs.txt");
            string fullPath2 = Path.Combine(t.BasePath, path2);

            t.Paths = new ITaskItem[] { new TaskItem(path1), new TaskItem(path2) };
            Assert.True(t.Execute()); // "success"

            ObjectModelHelpers.AssertItemsMatch(string.Format("{0}\r\n{1}", path1, fullPath2), t.CombinedPaths, true);
        }
Example #14
0
        public void RelativeRelative1()
        {
            CombinePath t = new CombinePath();

            t.BuildEngine = new MockEngine();

            t.BasePath = Path.Combine("abc", "def");
            string path1     = "ghi.txt";
            string fullPath1 = Path.Combine(t.BasePath, path1);
            string path2     = Path.Combine("jkl", "mno.txt");
            string fullPath2 = Path.Combine(t.BasePath, path2);

            t.Paths = new ITaskItem[] { new TaskItem(path1), new TaskItem(path2) };
            Assert.True(t.Execute()); // "success"

            ObjectModelHelpers.AssertItemsMatch(string.Format("{0}\r\n{1}", fullPath1, fullPath2), t.CombinedPaths, true);
        }