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);
                }
            }