public async Task Create_One_Backup_File_Mongo() { // Arrange if (!_context.AllowMongoDB) { Assert.True(true); return; } BackupOptions backupOptions = new BackupOptions { BackupFolderPath = "." }; BackupMongoRepository backupRepository = new BackupMongoRepository(_context.GetMongoConnection()); IBackupService backupService = GetMockBackupService(backupRepository, backupOptions); // Act LetPortal.Portal.Models.Recoveries.BackupResponseModel result = await backupService.CreateBackupFile(new LetPortal.Portal.Models.Recoveries.BackupRequestModel { Name = "BK_Test", Description = "BK Test", Creator = "Admin" }); backupRepository.Dispose(); // Assert Assert.True(!string.IsNullOrEmpty(result.DownloadableUrl)); }
public async Task Preview_Backup_Mongo() { // Arrange if (!_context.AllowMongoDB) { Assert.True(true); return; } Mock <IFormFile> mockFile = new Mock <IFormFile>(); FileStream sourceZip = System.IO.File.OpenRead(@"Artifacts\" + zipFileName); MemoryStream memoryStream = new MemoryStream(); await sourceZip.CopyToAsync(memoryStream); sourceZip.Close(); memoryStream.Position = 0; string fileName = zipFileName; mockFile.Setup(f => f.Length).Returns(memoryStream.Length).Verifiable(); mockFile.Setup(f => f.FileName).Returns(fileName).Verifiable(); mockFile.Setup(f => f.OpenReadStream()).Returns(memoryStream).Verifiable(); mockFile .Setup(f => f.CopyToAsync(It.IsAny <Stream>(), It.IsAny <CancellationToken>())) .Returns((Stream stream, CancellationToken token) => memoryStream.CopyToAsync(stream)) .Verifiable(); BackupOptions backupOptions = new BackupOptions { BackupFolderPath = "Backup", MaximumObjects = 0, RestoreFolderPath = "Restore" }; BackupMongoRepository backupRepository = new BackupMongoRepository(_context.GetMongoConnection()); IBackupService backupService = GetMockBackupService(backupRepository, backupOptions); // Act UploadBackupResponseModel backupResponse = await backupService.UploadBackupFile(mockFile.Object, "Admin"); LetPortal.Portal.Models.Recoveries.PreviewRestoreModel result = await backupService.PreviewBackup(backupResponse.Id); memoryStream.Close(); memoryStream.Dispose(); backupRepository.Dispose(); // Assert Assert.NotNull(result); }
public async Task Reach_Maximum_Backup_File_Mongo() { // Arrange if (!_context.AllowMongoDB) { Assert.True(true); return; } BackupOptions backupOptions = new BackupOptions { BackupFolderPath = "Backup", MaximumObjects = 0 }; BackupMongoRepository backupRepository = new BackupMongoRepository(_context.GetMongoConnection()); IBackupService backupService = GetMockBackupService(backupRepository, backupOptions); // Act try { LetPortal.Portal.Models.Recoveries.BackupResponseModel result = await backupService.CreateBackupFile(new LetPortal.Portal.Models.Recoveries.BackupRequestModel { Name = "BK_Test", Description = "BK Test", Creator = "Admin" }); } catch (Exception ex) { Assert.True(ex is BackupException backupException && backupException.ErrorCode.MessageCode == BackupErrorCodes.ReachMaximumBackupObjects.MessageCode); } finally { backupRepository.Dispose(); } }