Ejemplo n.º 1
0
        public void ChildIsFoundCorrectly()
        {
            FilePath parent, child;

            // No trailing directory char.
            parent = FilePath.Build("base");
            child  = parent.Combine("child");
            Assert.IsTrue(child.IsChildPathOf(parent));

            // No trailing directory char but not parent.
            parent = FilePath.Build("base");
            child  = FilePath.Build("basechild");
            Assert.False(child.IsChildPathOf(parent));

            // Trailing directory char.
            parent = FilePath.Build("base" + Path.DirectorySeparatorChar);
            child  = parent.Combine("child");
            Assert.IsTrue(child.IsChildPathOf(parent));

            // Alternative trailing directory char.
            parent = FilePath.Build("base" + Path.AltDirectorySeparatorChar);
            Assert.IsTrue(child.IsChildPathOf(parent));

            // https://bugzilla.xamarin.com/show_bug.cgi?id=48212
            Assert.IsFalse(child.IsChildPathOf(child));
        }
Ejemplo n.º 2
0
        public void CanGetCommonRootPath()
        {
            FilePath[] pathsWithCommon =
            {
                FilePath.Build("test", "common"),
                FilePath.Build("test", "common", "notcommon1"),
                FilePath.Build("test", "common", "notcommon1",  "notcommon11"),
                FilePath.Build("test", "common", "notcommon2"),
                FilePath.Build("test", "common", "notcommon3",  "notcommon31"),
            };
            Assert.AreEqual(FilePath.Build("test", "common"), FilePath.GetCommonRootPath(pathsWithCommon));

            FilePath[] justOnePath =
            {
                FilePath.Build("test", "common"),
            };
            Assert.AreEqual(FilePath.Build("test", "common"), FilePath.GetCommonRootPath(justOnePath));

            FilePath[] pathsNotCommon =
            {
                FilePath.Build("notcommon1"),
                FilePath.Build("notcommon2"),
                FilePath.Build("notcommon3"),
            };
            Assert.IsTrue(FilePath.GetCommonRootPath(pathsNotCommon).IsNullOrEmpty);
        }
Ejemplo n.º 3
0
        public void TestAllFilePathCombineBuildOverloads()
        {
            var root = FilePath.Empty;

            Assert.AreEqual(root.Combine("a"), root.Combine(FilePath.Build("a")));
            Assert.AreEqual(root.Combine("a", "b"), root.Combine(FilePath.Build("a"), FilePath.Build("b")));
            Assert.AreEqual(root.Combine("a", "b"), root.Combine(FilePath.Build("a", "b")));
            Assert.AreEqual(root.Combine("a", "b", "c"), root.Combine(FilePath.Build("a"), FilePath.Build("b"), FilePath.Build("c")));
            Assert.AreEqual(root.Combine("a", "b", "c"), root.Combine(FilePath.Build("a", "b", "c")));
        }
Ejemplo n.º 4
0
        public void HasFileNameChecks(string fileName, string assertFileName, bool?expected)
        {
            IEqualityComparer <string> comparer = FilePath.PathComparer;
            var expectedValue = expected ?? FilePath.PathComparison == StringComparison.OrdinalIgnoreCase;

            var path = FilePath.Build("dir", fileName);

            Assert.AreEqual(expectedValue, path.HasFileName(assertFileName));

            var expectedConstraint = expectedValue ? Is.EqualTo(assertFileName) : Is.Not.EqualTo(assertFileName);

            Assert.That(path.FileName, expectedConstraint.Using(comparer));
        }
Ejemplo n.º 5
0
        public void ChildIsFoundCorrectly()
        {
            FilePath parent, child;

            // No trailing directory char.
            parent = FilePath.Build("base");
            child  = parent.Combine("child");
            Assert.IsTrue(child.IsChildPathOf(parent));

            // No trailing directory char but not parent.
            parent = FilePath.Build("base");
            child  = FilePath.Build("basechild");
            Assert.False(child.IsChildPathOf(parent));

            // Trailing directory char.
            parent = FilePath.Build("base" + Path.DirectorySeparatorChar);
            child  = parent.Combine("child");
            Assert.IsTrue(child.IsChildPathOf(parent));
        }
Ejemplo n.º 6
0
        public void CanCreateVariousPaths()
        {
            FilePath path;
            string   expected;

            expected = Path.Combine("this", "is", "a", "path");
            path     = FilePath.Build("this", "is", "a", "path");
            Assert.AreEqual(expected, path.ToString());

            expected = "";
            path     = FilePath.Empty;
            Assert.AreEqual(expected, path.ToString());
            Assert.IsTrue(path.IsEmpty);
            Assert.IsTrue(path.IsNullOrEmpty);

            expected = null;
            path     = FilePath.Null;
            Assert.AreEqual(expected, path.ToString());
            Assert.IsTrue(path.IsNull);
            Assert.IsTrue(path.IsNullOrEmpty);

            expected = Path.Combine("this", "is", "a", "path");
            path     = new FilePath(expected);
            Assert.AreEqual(expected, path.ToString());

            expected = Path.Combine(expected, "and", "more");
            path     = path.Combine("and", "more");
            Assert.AreEqual(expected, path.ToString());

            expected = "file.txt";
            path     = new FilePath("file").ChangeExtension(".txt");
            Assert.AreEqual(expected, path.ToString());

            expected = "file.txt";
            path     = new FilePath("file.type").ChangeExtension(".txt");
            Assert.AreEqual(expected, path.ToString());

            // TODO: Test file:// scheme
        }
Ejemplo n.º 7
0
        public void FileNameWithoutExtension(string fileName, string expected)
        {
            var path = FilePath.Build("dir", fileName);

            Assert.AreEqual(expected, path.FileNameWithoutExtension);
        }
Ejemplo n.º 8
0
 public void TestNullIsChildPathOfCases()
 {
     Assert.IsFalse(FilePath.Null.IsChildPathOf(FilePath.Null));
     Assert.IsFalse(FilePath.Null.IsChildPathOf("test"));
     Assert.IsFalse(FilePath.Build("base").IsChildPathOf(FilePath.Null));
 }
Ejemplo n.º 9
0
 public void TestEmptyIsChildPathOfCases()
 {
     Assert.IsFalse(FilePath.Empty.IsChildPathOf(FilePath.Empty));
     Assert.IsFalse(FilePath.Empty.IsChildPathOf("test"));
     Assert.IsFalse(FilePath.Build("base").IsChildPathOf(FilePath.Empty));
 }