public void Constructor_ValidRelativePath()
        {
            var directoryInfo = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp");

            var node = new FolderNode(directoryInfo, "../");

            Check.That(node.RelativePathFromRoot).IsEqualTo(@"../");
        }
        public void Constructor_ValidFileSystemInfo_SetsOriginalLocation()
        {
            var directoryInfo = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp\");

            var node = new FolderNode(directoryInfo, "");

            Check.That(node.OriginalLocation.FullName).IsEqualTo(@"c:\temp");
        }
        public void Constructor_ValidFileSystemInfo_SetsOriginalLocationUrl()
        {
            var directoryInfo = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp");

            var node = new FolderNode(directoryInfo, "");

            Check.That(node.OriginalLocationUrl.ToString()).IsEqualTo(@"file:///c:/temp/");
        }
        public void Constructor_ValidRelativePath()
        {
            var directoryInfo = MockFileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp");

            var node = new FolderNode(directoryInfo, "../");

            Assert.AreEqual(@"../", node.RelativePathFromRoot);
        }
        public void Constructor_ValidFileSystemInfo_SetsOriginalLocationUrl()
        {
            var directoryInfo = MockFileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp");

            var node = new FolderNode(directoryInfo, "");

            Assert.AreEqual(@"file:///c:/temp/", node.OriginalLocationUrl.ToString());
        }
        public void Constructor_ValidFileSystemInfo_SetsOriginalLocation()
        {
            var directoryInfo = MockFileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp\");

            var node = new FolderNode(directoryInfo, "");

            Assert.AreEqual(@"c:\temp\", node.OriginalLocation.FullName);
        }
        public void GetRelativeUriTo_DirectoryToFileBelow_ReturnsCurrentDirectory()
        {
            var directoryInfo = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp");

            var node = new FolderNode(directoryInfo, "../");

            string relative = node.GetRelativeUriTo(new Uri(@"file:///c:/temp/test2.html"));

            Check.That(relative).IsEqualTo("./");
        }
        public void GetRelativeUriTo_DirectoryToChildDirectory_ReturnsRelativePath()
        {
            var directoryInfo = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp");

            var node = new FolderNode(directoryInfo, "../");

            string relative = node.GetRelativeUriTo(new Uri(@"file:///c:/temp/child/"));

            Check.That(relative).IsEqualTo("../");
        }
        public void GetRelativeUriTo_DirectoryToParentDirectory_ReturnsRelativePath()
        {
            var directoryInfo = MockFileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp\child");

            var node = new FolderNode(directoryInfo, "../");

            string relative = node.GetRelativeUriTo(new Uri(@"file:///c:/temp/"));

            Assert.AreEqual("child/", relative);
        }
        public void GetRelativeUriTo_DirectoryToFileOutside_ReturnsRelativePath()
        {
            var directoryInfo = MockFileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp");

            var node = new FolderNode(directoryInfo, "../");

            string relative = node.GetRelativeUriTo(new Uri(@"file:///c:/temp2/test2.html"));

            Assert.AreEqual("../temp/", relative);
        }
        public void GetRelativeUriTo_DirectoryToFileBelow_ReturnsEmpty()
        {
            var directoryInfo = FileSystem.DirectoryInfo.FromDirectoryName(@"c:\temp");

            var node = new FolderNode(directoryInfo, "../");

            string relative = node.GetRelativeUriTo(new Uri(@"file:///c:/temp/test2.html"));

            Assert.AreEqual("", relative);
        }
        public void RealData()
        {
            var originalLocation =
                FileSystem.DirectoryInfo.FromDirectoryName(
                    @"C:\tfs\Dev.CAX\src\CAX_Main\src\net\Projects\Aim.Gain.GoldenCopy.FunctionalTesting\CAX\DistributionOfRights");

            var node = new FolderNode(originalLocation, "");

            var other =
                new Uri(
                    "file:///C:/tfs/Dev.CAX/src/CAX_Main/src/net/Projects/Aim.Gain.GoldenCopy.FunctionalTesting/CAX/");

            string relative = node.GetRelativeUriTo(other);

            Check.That(relative).IsEqualTo("DistributionOfRights/");
        }
        public void GetRelativeUriTo_FileToFile_ReturnsNodesFileName()
        {
            var fileInfo = FileSystem.FileInfo.FromFileName(@"c:\temp\test1.html");

            var node = new FolderNode(fileInfo, "../");

            string relative = node.GetRelativeUriTo(new Uri(@"file:///c:/temp/test2.html"));

            Check.That(relative).IsEqualTo("test1.html");
        }
        public void GetRelativeUriTo_FileToDirectory_ReturnsNodesFileName()
        {
            var fileInfo = MockFileSystem.FileInfo.FromFileName(@"c:\temp\test1.html");

            var node = new FolderNode(fileInfo, "../");

            string relative = node.GetRelativeUriTo(new Uri(@"file:///c:/temp/"));

            Assert.AreEqual("test1.html", relative);
        }