public async Task DeletesReadmeFromPublicStorageOnDbUpdateFailure(EmbeddedReadmeFileType readmeFileType, PackageStatus originalStatus, bool expectedDelete) { Package.PackageStatusKey = originalStatus; Package.EmbeddedReadmeType = readmeFileType; Package.HasReadMe = true; var expected = new Exception("Everything failed"); PackageServiceMock .Setup(ps => ps.UpdateStatusAsync(Package, PackageStatus.Available, true)) .Throws(expected); var actual = await Assert.ThrowsAsync <Exception>( () => Target.SetStatusAsync(PackageValidatingEntity, ValidationSet, PackageStatus.Available)); Assert.Same(expected, actual); if (expectedDelete) { CoreReadmeFileServiceMock .Verify(clfs => clfs.DeleteReadmeFileAsync(Package.Id, Package.NormalizedVersion), Times.Once); CoreReadmeFileServiceMock .Verify(clfs => clfs.DeleteReadmeFileAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Once); } else { CoreReadmeFileServiceMock .Verify(clfs => clfs.DeleteReadmeFileAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Never); } }
public async Task SavesPackageReadmeFileWhenPresent(EmbeddedReadmeFileType readmeFileType, bool expectedSave) { var content = "Hello, world."; var stream = new MemoryStream(Encoding.ASCII.GetBytes(content)); Package.EmbeddedReadmeType = readmeFileType; Package.HasReadMe = true; PackageFileServiceMock .Setup(x => x.DownloadPackageFileToDiskAsync(ValidationSet, SasDefinitionConfiguration.PackageStatusProcessorSasDefinition)) .ReturnsAsync(stream); await Target.SetStatusAsync(PackageValidatingEntity, ValidationSet, PackageStatus.Available); if (expectedSave) { CoreReadmeFileServiceMock .Verify(clfs => clfs.ExtractAndSaveReadmeFileAsync(PackageValidatingEntity.EntityRecord, stream), Times.Once); CoreReadmeFileServiceMock .Verify(clfs => clfs.ExtractAndSaveReadmeFileAsync(It.IsAny <Package>(), It.IsAny <Stream>()), Times.Once); } else { CoreReadmeFileServiceMock .Verify(clfs => clfs.ExtractAndSaveReadmeFileAsync(It.IsAny <Package>(), It.IsAny <Stream>()), Times.Never); } }