public async Task DropsMessageOnDuplicateValidationRequest() { var messageData = new PackageValidationMessageData("packageId", "1.2.3", Guid.NewGuid()); var validationConfiguration = new ValidationConfiguration(); var package = new Package(); var packageValidatingEntity = new PackageValidatingEntity(package); CorePackageServiceMock .Setup(ps => ps.FindPackageByIdAndVersionStrict(messageData.PackageId, messageData.PackageVersion)) .Returns(packageValidatingEntity) .Verifiable(); ValidationSetProviderMock .Setup(vsp => vsp.TryGetOrCreateValidationSetAsync(messageData, packageValidatingEntity)) .ReturnsAsync((PackageValidationSet)null) .Verifiable(); var handler = CreateHandler(); var result = await handler.HandleAsync(messageData); Assert.True(result); CorePackageServiceMock .Verify(ps => ps.FindPackageByIdAndVersionStrict(messageData.PackageId, messageData.PackageVersion), Times.Once()); ValidationSetProviderMock .Verify(vsp => vsp.TryGetOrCreateValidationSetAsync(messageData, packageValidatingEntity), Times.Once()); }
public async Task DropsMessageIfPackageIsSoftDeletedForProcessValidationSet() { var messageData = PackageValidationMessageData.NewProcessValidationSet( "packageId", "1.2.3", Guid.NewGuid(), ValidatingType.Package, entityKey: null); var validationConfiguration = new ValidationConfiguration(); var package = new Package { PackageStatusKey = PackageStatus.Deleted }; var packageValidatingEntity = new PackageValidatingEntity(package); CorePackageServiceMock .Setup(ps => ps.FindPackageByIdAndVersionStrict( messageData.ProcessValidationSet.PackageId, messageData.ProcessValidationSet.PackageVersion)) .Returns(packageValidatingEntity); var handler = CreateHandler(); var result = await handler.HandleAsync(messageData); Assert.True(result); CorePackageServiceMock.Verify( ps => ps.FindPackageByIdAndVersionStrict( messageData.ProcessValidationSet.PackageId, messageData.ProcessValidationSet.PackageVersion), Times.Once); }
public async Task DropsMessageIfPackageIsSoftDeletedForCheckValidator() { var messageData = PackageValidationMessageData.NewCheckValidator(Guid.NewGuid()); var validationConfiguration = new ValidationConfiguration(); var package = new Package { Key = 42, PackageStatusKey = PackageStatus.Deleted }; var packageValidatingEntity = new PackageValidatingEntity(package); var validationSet = new PackageValidationSet { PackageKey = package.Key, ValidatingType = ValidatingType.Package }; ValidationSetProviderMock .Setup(ps => ps.TryGetParentValidationSetAsync(messageData.CheckValidator.ValidationId)) .ReturnsAsync(validationSet) .Verifiable(); CorePackageServiceMock .Setup(ps => ps.FindPackageByKey(package.Key)) .Returns(packageValidatingEntity); var handler = CreateHandler(); var result = await handler.HandleAsync(messageData); Assert.True(result); ValidationSetProviderMock.Verify( vsp => vsp.TryGetParentValidationSetAsync(messageData.CheckValidator.ValidationId), Times.Once); CorePackageServiceMock.Verify( ps => ps.FindPackageByKey(package.Key), Times.Once); }
public BaseFacts() { Package = new Package { PackageRegistration = new PackageRegistration(), PackageStatusKey = PackageStatus.Validating, }; ValidationSet = new PackageValidationSet { PackageValidations = new List <PackageValidation> { new PackageValidation { Type = "SomeValidator" }, } }; PackageServiceMock = new Mock <IEntityService <Package> >(); PackageFileServiceMock = new Mock <IValidationFileService>(); ValidatorProviderMock = new Mock <IValidatorProvider>(); TelemetryServiceMock = new Mock <ITelemetryService>(); LoggerMock = new Mock <ILogger <EntityStatusProcessor <Package> > >(); CoreLicenseFileServiceMock = new Mock <ICoreLicenseFileService>(); CoreReadmeFileServiceMock = new Mock <ICoreReadmeFileService>(); var streamMetadata = new PackageStreamMetadata() { Size = 1, Hash = "hash", HashAlgorithm = CoreConstants.Sha512HashAlgorithmId }; SasDefinitionConfiguration = new SasDefinitionConfiguration() { PackageStatusProcessorSasDefinition = "PackageStatusProcessorSasDefinition" }; SasDefinitionConfigurationMock = new Mock <IOptionsSnapshot <SasDefinitionConfiguration> >(); SasDefinitionConfigurationMock.Setup(x => x.Value).Returns(() => SasDefinitionConfiguration); Target = new PackageStatusProcessor( PackageServiceMock.Object, PackageFileServiceMock.Object, ValidatorProviderMock.Object, TelemetryServiceMock.Object, SasDefinitionConfigurationMock.Object, LoggerMock.Object, CoreLicenseFileServiceMock.Object, CoreReadmeFileServiceMock.Object); PackageValidatingEntity = new PackageValidatingEntity(Package); }
public void PropertiesValidation() { // Arrange var package = CreatePackage(); // Act & Assert var validatingEntity = new PackageValidatingEntity(package); Assert.Equal(PackageCreated, validatingEntity.Created); Assert.Equal(PackageKey, validatingEntity.Key); Assert.Equal(PackageId, validatingEntity.EntityRecord.PackageRegistration.Id); Assert.Equal(PackageNormalizedVersion, validatingEntity.EntityRecord.NormalizedVersion); Assert.Equal(ValidatingType.Package, validatingEntity.ValidatingType); }
public ValidationMessageHandlerLooseFacts() : base(MockBehavior.Loose) { Package = new Package(); MessageData = new PackageValidationMessageData("packageId", "1.2.3", Guid.NewGuid()); ValidationSet = new PackageValidationSet(); PackageValidatingEntity = new PackageValidatingEntity(Package); CorePackageServiceMock .Setup(ps => ps.FindPackageByIdAndVersionStrict(MessageData.PackageId, MessageData.PackageVersion)) .Returns(PackageValidatingEntity); ValidationSetProviderMock .Setup(vsp => vsp.TryGetOrCreateValidationSetAsync(MessageData, PackageValidatingEntity)) .ReturnsAsync(ValidationSet); }
public BaseFacts() { Package = new Package { PackageRegistration = new PackageRegistration(), PackageStatusKey = PackageStatus.Validating, }; ValidationSet = new PackageValidationSet { PackageValidations = new List <PackageValidation> { new PackageValidation { Type = "SomeValidator" }, } }; PackageServiceMock = new Mock <IEntityService <Package> >(); PackageFileServiceMock = new Mock <IValidationFileService>(); ValidatorProviderMock = new Mock <IValidatorProvider>(); TelemetryServiceMock = new Mock <ITelemetryService>(); LoggerMock = new Mock <ILogger <EntityStatusProcessor <Package> > >(); CoreLicenseFileServiceMock = new Mock <ICoreLicenseFileService>(); var streamMetadata = new PackageStreamMetadata() { Size = 1, Hash = "hash", HashAlgorithm = CoreConstants.Sha512HashAlgorithmId }; PackageFileServiceMock .Setup(x => x.UpdatePackageBlobMetadataAsync(It.IsAny <PackageValidationSet>())) .ReturnsAsync(streamMetadata); Target = new PackageStatusProcessor( PackageServiceMock.Object, PackageFileServiceMock.Object, ValidatorProviderMock.Object, TelemetryServiceMock.Object, LoggerMock.Object, CoreLicenseFileServiceMock.Object); PackageValidatingEntity = new PackageValidatingEntity(Package); }
public ValidationOutcomeProcessorFacts() { ValidationStorageServiceMock = new Mock <IValidationStorageService>(); ValidationEnqueuerMock = new Mock <IPackageValidationEnqueuer>(); PackageStateProcessorMock = new Mock <IStatusProcessor <Package> >(); PackageFileServiceMock = new Mock <IValidationFileService>(); ConfigurationAccessorMock = new Mock <IOptionsSnapshot <ValidationConfiguration> >(); MessageServiceMock = new Mock <IMessageService <Package> >(); TelemetryServiceMock = new Mock <ITelemetryService>(); LoggerMock = new Mock <ILogger <ValidationOutcomeProcessor <Package> > >(); Configuration = new ValidationConfiguration(); Configuration.Validations = new List <ValidationConfigurationItem>(); Package = new Package { PackageRegistration = new PackageRegistration { Id = "package" }, Version = "1.2.3.456", NormalizedVersion = "1.2.3", PackageStatusKey = PackageStatus.Validating }; Package.PackageRegistration.Packages.Add(Package); ScheduleNextCheck = true; ValidationSet = new PackageValidationSet(); ValidationSet.PackageValidations = new List <PackageValidation>(); ValidationSet.PackageId = Package.PackageRegistration.Id; ValidationSet.PackageNormalizedVersion = Package.NormalizedVersion; ValidationSet.ValidationTrackingId = Guid.NewGuid(); ValidationSet.Created = DateTime.UtcNow - TimeSpan.FromHours(3); ValidationSet.Updated = ValidationSet.Created + TimeSpan.FromHours(1); ValidationSet.ValidationSetStatus = ValidationSetStatus.InProgress; ProcessorStats = new ValidationSetProcessorResult(); ConfigurationAccessorMock .SetupGet(ca => ca.Value) .Returns(Configuration); PackageValidatingEntity = new PackageValidatingEntity(Package); }
public ValidationSetProviderFacts() { ValidationStorageMock = new Mock <IValidationStorageService>(MockBehavior.Strict); PackageFileServiceMock = new Mock <IValidationFileService>(MockBehavior.Strict); ValidatorProvider = new Mock <IValidatorProvider>(MockBehavior.Strict); ConfigurationAccessorMock = new Mock <IOptionsSnapshot <ValidationConfiguration> >(); TelemetryServiceMock = new Mock <ITelemetryService>(); LoggerMock = new Mock <ILogger <ValidationSetProvider <Package> > >(); PackageFileServiceMock .Setup(x => x.CopyPackageFileForValidationSetAsync(It.IsAny <PackageValidationSet>())) .ReturnsAsync(() => ETag); PackageFileServiceMock .Setup(x => x.CopyValidationPackageForValidationSetAsync(It.IsAny <PackageValidationSet>())) .Returns(Task.CompletedTask); PackageFileServiceMock .Setup(x => x.BackupPackageFileFromValidationSetPackageAsync(It.IsAny <PackageValidationSet>())) .Returns(Task.CompletedTask); ValidatorProvider .Setup(x => x.IsNuGetProcessor(It.IsAny <string>())) .Returns(true); Configuration = new ValidationConfiguration(); ConfigurationAccessorMock .SetupGet(ca => ca.Value) .Returns(() => Configuration); ETag = "\"some-etag\""; Package = new Package { PackageRegistration = new PackageRegistration { Id = "package1" }, Version = "1.2.3.456", NormalizedVersion = "1.2.3", Key = 42, Created = new DateTime(2010, 1, 2, 8, 30, 0, DateTimeKind.Utc), PackageStatusKey = PackageStatus.Validating, }; Package.PackageRegistration.Packages = new List <Package> { Package }; ValidationSet = new PackageValidationSet { PackageId = Package.PackageRegistration.Id, PackageNormalizedVersion = Package.NormalizedVersion, PackageKey = Package.Key, ValidationTrackingId = Guid.NewGuid(), }; PackageValidationMessageData = new ProcessValidationSetData( Package.PackageRegistration.Id, Package.NormalizedVersion, ValidationSet.ValidationTrackingId, ValidatingType.Package, Package.Key); PackageValidatingEntity = new PackageValidatingEntity(Package); }