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)); }
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); }
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"))); }
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)); }
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)); }
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 }
public void FileNameWithoutExtension(string fileName, string expected) { var path = FilePath.Build("dir", fileName); Assert.AreEqual(expected, path.FileNameWithoutExtension); }
public void TestNullIsChildPathOfCases() { Assert.IsFalse(FilePath.Null.IsChildPathOf(FilePath.Null)); Assert.IsFalse(FilePath.Null.IsChildPathOf("test")); Assert.IsFalse(FilePath.Build("base").IsChildPathOf(FilePath.Null)); }
public void TestEmptyIsChildPathOfCases() { Assert.IsFalse(FilePath.Empty.IsChildPathOf(FilePath.Empty)); Assert.IsFalse(FilePath.Empty.IsChildPathOf("test")); Assert.IsFalse(FilePath.Build("base").IsChildPathOf(FilePath.Empty)); }