public void CreateDirectoryTest()
        {
            // Arrange
            var table         = "MyTable";
            var tableRoot     = @"\MyTableDir";
            var dirStructure  = @"dir1\dir2\dir3";
            var dirManager    = new FileTableManager();
            var fileTableRepo = new Mock <FileTableRepo>();
            var id1           = SqlHierarchyId.Parse("/0/");
            var id2           = SqlHierarchyId.Parse("/0/1/");
            var id3           = SqlHierarchyId.Parse("/0/1/2/");

            fileTableRepo.Setup(m => m.FindPath(table, It.IsAny <string>(), true, It.IsAny <SqlConnection>(), false)).Returns <string>(null);
            fileTableRepo.Setup(m => m.CreateDirectory(table, "dir1", It.IsAny <SqlHierarchyId>(), It.IsAny <SqlConnection>(), false)).Returns(id1);
            fileTableRepo.Setup(m => m.CreateDirectory(table, "dir2", It.IsAny <SqlHierarchyId>(), It.IsAny <SqlConnection>(), false)).Returns(id2);
            fileTableRepo.Setup(m => m.CreateDirectory(table, "dir3", It.IsAny <SqlHierarchyId>(), It.IsAny <SqlConnection>(), true)).Returns(id3);
            fileTableRepo.Setup(m => m.GetTableRootPath(table, 0, null)).Returns(tableRoot);
            dirManager.FileTableRepo = fileTableRepo.Object;

            // Act
            var pathId = dirManager.CreateDirectory(table, dirStructure, null, true);

            // Assert
            Assert.AreEqual(id3, pathId);
        }
 public static int RenameFileByPath(string table, string path, string newFilename)
 {
     using (SqlConnection conn = new SqlConnection("context connection=true"))
     {
         conn.Open();
         var ftManager   = new FileTableManager();
         var hierarchyId = ftManager.FileExists(table, path, conn);
         return(_RenameFileByPathLocator(table, hierarchyId, newFilename, conn, ftManager));
     }
 }
        public void DirectoryExistsNotFoundTest()
        {
            // Arrange
            var table         = "MyTable";
            var tableRoot     = @"\MyTableDir";
            var dirStructure  = @"dir1\dir2\dir3";
            var dirManager    = new FileTableManager();
            var fileTableRepo = new Mock <FileTableRepo>();

            fileTableRepo.Setup(m => m.FindPath(table, It.IsAny <string>(), true, It.IsAny <SqlConnection>(), false)).Returns <string>(null);
            dirManager.FileTableRepo = fileTableRepo.Object;

            fileTableRepo.Setup(m => m.FileTableExists(table, null)).Returns(true);
            fileTableRepo.Setup(m => m.GetTableRootPath(table, 0, null)).Returns(tableRoot);

            // Act
            var pathId = dirManager.DirectoryExists(table, dirStructure, null);

            // Assert
            Assert.IsTrue(pathId.IsNull);
        }
        public void CreateDirectoryAlreadyExistsTest()
        {
            // Arrange
            var table         = "MyTable";
            var tableRoot     = @"\MyTableDir";
            var dirStructure  = @"dir1\dir2\dir3";
            var dirManager    = new FileTableManager();
            var fileTableRepo = new Mock <FileTableRepo>();
            var stringId      = "/0/";
            var id            = SqlHierarchyId.Parse(stringId);

            fileTableRepo.Setup(m => m.FindPath(table, dirStructure, true, It.IsAny <SqlConnection>(), false)).Returns(id);
            fileTableRepo.Setup(m => m.GetTableRootPath(table, 0, null)).Returns(tableRoot);
            dirManager.FileTableRepo = fileTableRepo.Object;

            // Act
            var pathId = dirManager.CreateDirectory(table, dirStructure, null, true);

            // Assert
            Assert.AreEqual(stringId, pathId.ToString());
        }
        public void DirectoryExistsFoundTest()
        {
            // Arrange
            var table         = "MyTable";
            var tableRoot     = @"\MyTableDir";
            var dirStructure  = @"dir1\dir2\dir3";
            var id            = SqlHierarchyId.Parse("/0/1/2/3/");
            var dirManager    = new FileTableManager();
            var fileTableRepo = new Mock <FileTableRepo>();

            fileTableRepo.Setup(m => m.FindPath(It.IsAny <string>(), It.IsAny <string>(), true, null, false)).Returns(id);
            dirManager.FileTableRepo = fileTableRepo.Object;

            var fileTableManagerMock = new Mock <IFileTableRepo>();

            fileTableManagerMock.Setup(m => m.FileTableExists(table, null)).Returns(true);
            fileTableManagerMock.Setup(m => m.GetTableRootPath(table, 0, null)).Returns(tableRoot);

            // Act
            var pathId = dirManager.DirectoryExists(table, dirStructure, null);

            // Assert
            Assert.AreEqual(id, pathId);
        }