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 SignatureValidator( IPackageSigningStateService packageSigningStateService, ISignatureFormatValidator formatValidator, ISignaturePartsExtractor signaturePartsExtractor, IProcessorPackageFileService packageFileService, ICorePackageService corePackageService, IOptionsSnapshot <ProcessSignatureConfiguration> configuration, IOptionsSnapshot <SasDefinitionConfiguration> sasDefinitionConfigurationAccessor, ITelemetryService telemetryService, ILogger <SignatureValidator> logger) { _packageSigningStateService = packageSigningStateService ?? throw new ArgumentNullException(nameof(packageSigningStateService)); _formatValidator = formatValidator ?? throw new ArgumentNullException(nameof(formatValidator)); _signaturePartsExtractor = signaturePartsExtractor ?? throw new ArgumentNullException(nameof(signaturePartsExtractor)); _packageFileService = packageFileService ?? throw new ArgumentNullException(nameof(packageFileService)); _corePackageService = corePackageService ?? throw new ArgumentNullException(nameof(corePackageService)); _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); _sasDefinitionConfiguration = (sasDefinitionConfigurationAccessor == null || sasDefinitionConfigurationAccessor.Value == null) ? new SasDefinitionConfiguration() : sasDefinitionConfigurationAccessor.Value; _telemetryService = telemetryService ?? throw new ArgumentNullException(nameof(telemetryService)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
protected ValidationSetProcessorFactsBase( MockBehavior validatorProviderMockBehavior = MockBehavior.Default, MockBehavior validationStorageMockBehavior = MockBehavior.Default, MockBehavior configurationAccessorMockBehavior = MockBehavior.Default, MockBehavior sasDefinitionConfigurationAccessorMockBehavior = MockBehavior.Default, MockBehavior packageFileServiceMockBehavior = MockBehavior.Default, MockBehavior telemetryServiceMockBehavior = MockBehavior.Default, MockBehavior loggerMockBehavior = MockBehavior.Default) { ValidatorProviderMock = new Mock <IValidatorProvider>(validatorProviderMockBehavior); ValidationStorageMock = new Mock <IValidationStorageService>(validationStorageMockBehavior); ConfigurationAccessorMock = new Mock <IOptionsSnapshot <ValidationConfiguration> >(configurationAccessorMockBehavior); SasDefinitionConfigurationAccessorMock = new Mock <IOptionsSnapshot <SasDefinitionConfiguration> >(sasDefinitionConfigurationAccessorMockBehavior); PackageFileServiceMock = new Mock <IValidationFileService>(packageFileServiceMockBehavior); LoggerMock = new Mock <ILogger <ValidationSetProcessor> >(loggerMockBehavior); TelemetryServiceMock = new Mock <ITelemetryService>(telemetryServiceMockBehavior); Configuration = new ValidationConfiguration { Validations = new List <ValidationConfigurationItem> { }, TimeoutValidationSetAfter = TimeSpan.FromDays(5), }; ConfigurationAccessorMock .SetupGet(ca => ca.Value) .Returns(Configuration); SasDefinitionConfiguration = new SasDefinitionConfiguration(); SasDefinitionConfigurationAccessorMock .SetupGet(sca => sca.Value) .Returns(SasDefinitionConfiguration); Package = new Package { PackageRegistration = new PackageRegistration { Id = "packageId" }, Version = "1.2.3.456", NormalizedVersion = "1.2.3" }; Package.PackageRegistration.Packages.Add(Package); ValidationSet = new PackageValidationSet { Key = 238423, PackageKey = 9999, PackageId = Package.PackageRegistration.Id, PackageNormalizedVersion = Package.NormalizedVersion, PackageValidations = new List <PackageValidation> { } }; ValidationSet.PackageValidations.ToList().ForEach(v => v.PackageValidationSet = ValidationSet); Validators = new Dictionary <string, Mock <INuGetValidator> >(); PackageFileServiceMock .Setup(pfs => pfs.GetPackageForValidationSetReadUriAsync(It.IsAny <PackageValidationSet>(), It.IsAny <string>(), It.IsAny <DateTimeOffset>())) .Returns <PackageValidationSet, string, DateTimeOffset>( (p, s, e) => Task.FromResult(new Uri($"https://example.com/{ValidationContainerName}/{p.ValidationTrackingId}/{p.PackageId}.{p.PackageNormalizedVersion}?e={e:yyyy-MM-dd-hh-mm-ss}"))); }
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> >(); SasDefinitionConfigurationAccessorMock = new Mock <IOptionsSnapshot <SasDefinitionConfiguration> >(); 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>(), It.IsAny <string>())) .Returns(Task.CompletedTask); ValidatorProvider .Setup(x => x.IsNuGetProcessor(It.IsAny <string>())) .Returns(true); Configuration = new ValidationConfiguration(); ConfigurationAccessorMock .SetupGet(ca => ca.Value) .Returns(() => Configuration); SasDefinitionConfiguration = new SasDefinitionConfiguration() { ValidationSetProviderSasDefinition = "ValidationSetProviderSasDefinition" }; SasDefinitionConfigurationAccessorMock .SetupGet(sca => sca.Value) .Returns(() => SasDefinitionConfiguration); 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); }
public ValidateAsync(ITestOutputHelper output) { _packageStream = TestResources.GetResourceStream(TestResources.UnsignedPackage); _packageKey = 42; _message = new SignatureValidationMessage( "NuGet.Versioning", "4.3.0", new Uri("https://example/nuget.versioning.4.3.0.nupkg"), new Guid("b777135f-1aac-4ec2-a3eb-1f64fe1880d5")); _cancellationToken = CancellationToken.None; _packageSigningStateService = new Mock <IPackageSigningStateService>(); _formatValidator = new Mock <ISignatureFormatValidator>(); _minimalVerifyResult = new VerifySignaturesResult(isValid: true, isSigned: true); _formatValidator .Setup(x => x.ValidateMinimalAsync(It.IsAny <ISignedPackageReader>(), It.IsAny <CancellationToken>())) .ReturnsAsync(() => _minimalVerifyResult); _fullVerifyResult = new VerifySignaturesResult(isValid: true, isSigned: true); _formatValidator .Setup(x => x.ValidateAllSignaturesAsync(It.IsAny <ISignedPackageReader>(), It.IsAny <bool>(), It.IsAny <CancellationToken>())) .ReturnsAsync(() => _fullVerifyResult); _authorSignatureVerifyResult = new VerifySignaturesResult(isValid: true, isSigned: true); _formatValidator .Setup(x => x.ValidateAuthorSignatureAsync(It.IsAny <ISignedPackageReader>(), It.IsAny <CancellationToken>())) .ReturnsAsync(() => _authorSignatureVerifyResult); _repositorySignatureVerifyResult = new VerifySignaturesResult(isValid: true, isSigned: true); _formatValidator .Setup(x => x.ValidateRepositorySignatureAsync(It.IsAny <ISignedPackageReader>(), It.IsAny <CancellationToken>())) .ReturnsAsync(() => _repositorySignatureVerifyResult); _signaturePartsExtractor = new Mock <ISignaturePartsExtractor>(); _corePackageService = new Mock <ICorePackageService>(); var loggerFactory = new LoggerFactory().AddXunit(output); _logger = loggerFactory.CreateLogger <SignatureValidator>(); _packageFileService = new Mock <IProcessorPackageFileService>(); _nupkgUri = new Uri("https://example-storage/TestProcessor/b777135f-1aac-4ec2-a3eb-1f64fe1880d5/nuget.versioning.4.3.0.nupkg"); _packageFileService .Setup(x => x.GetReadAndDeleteUriAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <string>())) .ReturnsAsync(() => _nupkgUri); _optionsSnapshot = new Mock <IOptionsSnapshot <ProcessSignatureConfiguration> >(); _configuration = new ProcessSignatureConfiguration { AllowedRepositorySigningCertificates = new List <string> { "fake-thumbprint" }, V3ServiceIndexUrl = TestResources.V3ServiceIndexUrl, StripValidRepositorySignatures = false, }; _optionsSnapshot.Setup(x => x.Value).Returns(() => _configuration); _sasDefinitionConfiguration = new SasDefinitionConfiguration(); _sasDefinitionConfigurationMock = new Mock <IOptionsSnapshot <SasDefinitionConfiguration> >(); _sasDefinitionConfigurationMock.Setup(x => x.Value).Returns(() => _sasDefinitionConfiguration); _telemetryService = new Mock <ITelemetryService>(); _target = new SignatureValidator( _packageSigningStateService.Object, _formatValidator.Object, _signaturePartsExtractor.Object, _packageFileService.Object, _corePackageService.Object, _optionsSnapshot.Object, _sasDefinitionConfigurationMock.Object, _telemetryService.Object, _logger); }