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); } }
public async Task WillThrowIfPackageIsMissingPackageRegistration(EmbeddedReadmeFileType readmeFileType) { var service = CreateService(); var package = new Package { PackageRegistration = null, EmbeddedReadmeType = readmeFileType }; var ex = await Assert.ThrowsAsync <ArgumentException>(() => service.DownloadReadmeFileAsync(package)); Assert.StartsWith("The package is missing required data.", ex.Message); Assert.Equal("package", ex.ParamName); }
public async Task WillUseNormalizedRegularVersionIfNormalizedVersionMissing(EmbeddedReadmeFileType readmeFileType) { var fileStorageSvc = new Mock <ICoreFileStorageService>(); var service = CreateService(fileStorageService: fileStorageSvc); var packageRegistration = new PackageRegistration { Id = "theId" }; var package = new Package { PackageRegistration = packageRegistration, NormalizedVersion = null, Version = "01.01.01", EmbeddedReadmeType = readmeFileType }; await service.DownloadReadmeFileAsync(package); fileStorageSvc .Verify(fss => fss.GetFileAsync(CoreConstants.Folders.PackagesContentFolderName, BuildReadmeFileName("theId", "1.1.1")), Times.Once); fileStorageSvc .Verify(fss => fss.GetFileAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Once); }