public async Task TestDownloadBackupFolderAsync() { //setup const string content = "content"; const string testTxt = "test.txt"; const string subFolderName = "Sub"; Guid partitionId = Guid.NewGuid(); Guid backupId = Guid.NewGuid(); var timeStampUtc = DateTime.UtcNow; //prepare a remote folder and a file in the store: var store = new FileStore(Remote); Directory.CreateDirectory(Remote); string backupFolder = store.CreateDateTimeFolderName(partitionId, timeStampUtc); Directory.CreateDirectory(backupFolder); File.WriteAllText(Path.Combine(backupFolder, testTxt), content); string subFolder = Path.Combine(backupFolder, subFolderName); Directory.CreateDirectory(subFolder); File.WriteAllText(Path.Combine(subFolder, testTxt), content); //save backup metadata await store.StoreBackupMetadataAsync(backupFolder, new BackupMetadata(partitionId, timeStampUtc, BackupOption.Full, backupId)); //fake SF backup metadata File.WriteAllText(Path.Combine(backupFolder, FileStore.BackupMetadataFileName), ""); //act await store.DownloadBackupFolderAsync(backupId, Local, CancellationToken.None); //asserts Assert.IsTrue(Directory.Exists(Path.Combine(Local))); Assert.IsTrue(File.Exists(Path.Combine(Local, testTxt))); Assert.IsTrue(Directory.Exists(Path.Combine(Local, subFolderName))); Assert.IsTrue(File.Exists(Path.Combine(Local, subFolderName, testTxt))); Assert.AreEqual(content, File.ReadAllText(Path.Combine(Local, testTxt))); Assert.AreEqual(content, File.ReadAllText(Path.Combine(Local, subFolderName, testTxt))); }
public async Task TestUploadBackupFolderAsync() { //setup const string content = "content"; const string testTxt = "test.txt"; const string subFolderName = "Sub"; var partitionId = Guid.NewGuid(); string partitionFolder = partitionId.ToString("n"); //prepare a folder and a file in the local store: Directory.CreateDirectory(Local); File.WriteAllText(Path.Combine(Local, testTxt), content); string subFolder = Path.Combine(Local, subFolderName); Directory.CreateDirectory(subFolder); File.WriteAllText(Path.Combine(subFolder, testTxt), content); var store = new FileStore(Remote); //act var result = await store.UploadBackupFolderAsync(BackupOption.Full, partitionId, Local, CancellationToken.None); string dateTimeFolder = store.CreateDateTimeFolderName(partitionId, result.TimeStampUtc); //asserts Assert.IsInstanceOfType(result, typeof(BackupMetadata)); Assert.AreEqual(partitionId, result.OriginalServicePartitionId); Assert.AreNotEqual(Guid.Empty, result.BackupId); Assert.IsTrue(Directory.Exists(Path.Combine(Remote))); Assert.IsTrue(File.Exists(Path.Combine(dateTimeFolder, testTxt))); Assert.IsTrue(Directory.Exists(Path.Combine(dateTimeFolder, subFolderName))); Assert.IsTrue(File.Exists(Path.Combine(dateTimeFolder, subFolderName, testTxt))); Assert.AreEqual(content, File.ReadAllText(Path.Combine(dateTimeFolder, testTxt))); Assert.AreEqual(content, File.ReadAllText(Path.Combine(dateTimeFolder, subFolderName, testTxt))); }