public void CanSyncExtA_MoveTest() { var externalDrivePath = Path.Combine(Path.GetTempPath(), "CryptoDriveExternal_" + Guid.NewGuid().ToString()); var externalDrive = new LocalDriveProxy(externalDrivePath, "External", _logger); this.Execute("", async() => { await externalDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/sub/a1"]); /* move folder from external drive to local drive */ _logger.LogInformation("TEST: Move folder from external drive to local drive."); var newDriveItem = Utils.DriveItemPool["/sub/a1"].MemberwiseClone(); var sourcePath = Path.GetDirectoryName(newDriveItem.GetAbsolutePath(externalDrivePath)); var targetPath = Path.GetDirectoryName(newDriveItem.GetAbsolutePath(_driveHive.LocalDrivePath)); Directory.Move(sourcePath, targetPath); }, () => { Assert.True(Directory.Exists("/sub".ToAbsolutePath(_driveHive.RemoteDrivePath)), "Folder does not exist."); Assert.True(File.Exists("/sub/a".ToAbsolutePath(_driveHive.RemoteDrivePath)), "File does not exist."); }, syncId: 1); Directory.Delete(externalDrivePath, true); }
public static async Task <DriveHive> PrepareDrives(string fileId, ILogger logger) { var remoteDrivePath = Path.Combine(Path.GetTempPath(), "CryptoDriveRemote_" + Guid.NewGuid().ToString()); var remoteDrive = new LocalDriveProxy(remoteDrivePath, "OneDrive", logger, TimeSpan.FromMilliseconds(500)); var localDrivePath = Path.Combine(Path.GetTempPath(), "CryptoDriveLocal_" + Guid.NewGuid().ToString()); var localDrive = new LocalDriveProxy(localDrivePath, "local", logger, TimeSpan.FromMilliseconds(500)); remoteDrive.EnableChangeTracking = false; localDrive.EnableChangeTracking = false; switch (fileId) { case "/a": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/a1"]); await remoteDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/a2"]); break; case "/sub/a": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/sub/a1"]); await remoteDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/sub/a1"]); break; case "/b": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/b1"]); await remoteDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/b1"]); break; case "/c": await remoteDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/c1"]); break; case "/d": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/d1"]); break; case "/e": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/e1"].MemberwiseClone().ToConflict()); await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/e2"]); await remoteDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/e1"]); break; case "/f": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/f1"].MemberwiseClone().ToConflict()); await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/f2"]); break; case "/g": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/g1"]); await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/g1"].MemberwiseClone().ToConflict()); await remoteDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/g1"]); break; case "/h": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/h1"].MemberwiseClone().ToConflict()); await remoteDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/h1"]); break; case "/i": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/i1"].MemberwiseClone().ToConflict()); await remoteDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/i2"]); break; case "/j": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/j1"].MemberwiseClone().ToConflict()); await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/j2"]); await remoteDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/j3"]); break; case "/k": await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/k1"]); await localDrive.CreateOrUpdateAsync(Utils.DriveItemPool["/k1"].MemberwiseClone().ToConflict()); break; default: break; } remoteDrive.EnableChangeTracking = true; localDrive.EnableChangeTracking = true; return(new DriveHive(remoteDrive, localDrive, remoteDrivePath, localDrivePath)); }