コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: Utils.cs プロジェクト: lulzzz/CryptoDrive
        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));
        }