public ManifestUpdateCommandTest(IDbProvider <ContentDbContext> contentDbProvider) { _contentDbProvider = contentDbProvider ?? throw new ArgumentException(); var nlSignerMock = new Mock <IContentSigner>(); nlSignerMock.Setup(x => x.GetSignature(new byte[0])) .Returns(new byte[] { 2 }); var eksConfigMock = new Mock <IEksConfig>(MockBehavior.Strict); eksConfigMock.Setup(x => x.LifetimeDays) .Returns(14); _dateTimeProviderMock = new Mock <IUtcDateTimeProvider>(); _dateTimeProviderMock.Setup(x => x.Snapshot) .Returns(_mockedTime); var loggerFactory = new LoggerFactory(); var jsonSerializer = new StandardJsonSerializer(); var loggingExtensionsMock = new ManifestUpdateCommandLoggingExtensions( loggerFactory.CreateLogger <ManifestUpdateCommandLoggingExtensions>()); Func <IContentEntityFormatter> contentFormatterInjector = () => new StandardContentEntityFormatter( new ZippedSignedContentFormatter(nlSignerMock.Object), new Sha256HexPublishingIdService(), jsonSerializer); _sut = new ManifestUpdateCommand( new ManifestV2Builder(_contentDbProvider.CreateNew(), eksConfigMock.Object, _dateTimeProviderMock.Object), new ManifestV3Builder(_contentDbProvider.CreateNew(), eksConfigMock.Object, _dateTimeProviderMock.Object), new ManifestV4Builder(_contentDbProvider.CreateNew(), eksConfigMock.Object, _dateTimeProviderMock.Object), _contentDbProvider.CreateNew, loggingExtensionsMock, _dateTimeProviderMock.Object, jsonSerializer, contentFormatterInjector ); }
private ManifestUpdateCommand CompileManifestUpdateCommand() { var eksConfigMock = new Mock <IEksConfig>(); var lf = new LoggerFactory(); var dateTimeProvider = new StandardUtcDateTimeProvider(); var jsonSerialiser = new StandardJsonSerializer(); var entityFormatterMock = new Mock <IContentEntityFormatter>(); Func <IContentEntityFormatter> formatterForV3 = () => new StandardContentEntityFormatter( new ZippedSignedContentFormatter( TestSignerHelpers.CreateCmsSignerEnhanced(lf)), new Sha256HexPublishingIdService(), jsonSerialiser ); var result = new ManifestUpdateCommand( new ManifestBuilder( _ContentDbProvider.CreateNew(), eksConfigMock.Object, dateTimeProvider), new ManifestBuilderV3( _ContentDbProvider.CreateNew(), eksConfigMock.Object, dateTimeProvider), new ManifestBuilderV4( _ContentDbProvider.CreateNew(), eksConfigMock.Object, dateTimeProvider), _ContentDbProvider.CreateNew, new ManifestUpdateCommandLoggingExtensions(lf.CreateLogger <ManifestUpdateCommandLoggingExtensions>()), dateTimeProvider, jsonSerialiser, entityFormatterMock.Object, formatterForV3 ); return(result); }
public EksEngineTests(IDbProvider <WorkflowDbContext> workflowDbProvider, IDbProvider <DkSourceDbContext> dkSourceDbProvider, IDbProvider <EksPublishingJobDbContext> eksPublishingJobDbProvider, IDbProvider <ContentDbContext> contentDbProvider, IWrappedEfExtensions efExtensions) { _lf = new LoggerFactory(); _efExtensions = efExtensions; _workflowDbProvider = workflowDbProvider; _dkSourceDbProvider = dkSourceDbProvider; _eksPublishingJobDbProvider = eksPublishingJobDbProvider; _contentDbProvider = contentDbProvider; // Configuration var eksHeaderConfig = new Mock <IEksHeaderInfoConfig>(MockBehavior.Strict); var eksConfig = new Mock <IEksConfig>(MockBehavior.Strict); eksConfig.Setup(x => x.TekCountMax).Returns(750000); eksConfig.Setup(x => x.LifetimeDays).Returns(14); var gaSigner = new Mock <IGaContentSigner>(MockBehavior.Strict); gaSigner.Setup(x => x.GetSignature(It.IsAny <byte[]>())).Returns(new byte[] { 1 }); var nlSigner = new Mock <IContentSigner>(MockBehavior.Loose); nlSigner.Setup(x => x.GetSignature(new byte[0])).Returns(new byte[] { 2 }); _snapshot = new SnapshotWorkflowTeksToDksCommand( _lf.CreateLogger <SnapshotWorkflowTeksToDksCommand>(), _dtp, new TransmissionRiskLevelCalculationMk2(), _workflowDbProvider.CreateNew(), _workflowDbProvider.CreateNew, _dkSourceDbProvider.CreateNew, _efExtensions, new IDiagnosticKeyProcessor[] { } ); var countriesOut = new Mock <IOutboundFixedCountriesOfInterestSetting>(); countriesOut.Setup(x => x.CountriesOfInterest).Returns(new[] { "ET" }); _rng = new StandardRandomNumberGenerator(); _eksJob = new ExposureKeySetBatchJobMk3( eksConfig.Object, new EksBuilderV1(eksHeaderConfig.Object, gaSigner.Object, nlSigner.Object, _dtp, new GeneratedProtobufEksContentFormatter(), new EksBuilderV1LoggingExtensions(_lf.CreateLogger <EksBuilderV1LoggingExtensions>()) ), _eksPublishingJobDbProvider.CreateNew, _dtp, new EksEngineLoggingExtensions(_lf.CreateLogger <EksEngineLoggingExtensions>()), new EksStuffingGeneratorMk2(new TransmissionRiskLevelCalculationMk2(), _rng, _dtp, eksConfig.Object), new SnapshotDiagnosisKeys(new SnapshotLoggingExtensions(new TestLogger <SnapshotLoggingExtensions>()), _dkSourceDbProvider.CreateNew(), _eksPublishingJobDbProvider.CreateNew, new Infectiousness(new Dictionary <InfectiousPeriodType, HashSet <int> > { { InfectiousPeriodType.Symptomatic, new HashSet <int>() { -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } }, { InfectiousPeriodType.Asymptomatic, new HashSet <int>() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } } })), new MarkDiagnosisKeysAsUsedLocally(_dkSourceDbProvider.CreateNew, eksConfig.Object, _eksPublishingJobDbProvider.CreateNew, _lf.CreateLogger <MarkDiagnosisKeysAsUsedLocally>()), new EksJobContentWriter(_contentDbProvider.CreateNew, _eksPublishingJobDbProvider.CreateNew, new Sha256HexPublishingIdService(), new EksJobContentWriterLoggingExtensions(_lf.CreateLogger <EksJobContentWriterLoggingExtensions>())), new WriteStuffingToDiagnosisKeys(_dkSourceDbProvider.CreateNew(), _eksPublishingJobDbProvider.CreateNew(), new IDiagnosticKeyProcessor[] { new FixedCountriesOfInterestOutboundDiagnosticKeyProcessor(countriesOut.Object), new NlToEfgsDsosDiagnosticKeyProcessorMk1() } ), _efExtensions ); var jsonSerializer = new StandardJsonSerializer(); _manifestJob = new ManifestUpdateCommand( new ManifestV2Builder(_contentDbProvider.CreateNew(), eksConfig.Object, _dtp), new ManifestV3Builder(_contentDbProvider.CreateNew(), eksConfig.Object, _dtp), new ManifestV4Builder(_contentDbProvider.CreateNew(), eksConfig.Object, _dtp), _contentDbProvider.CreateNew, new ManifestUpdateCommandLoggingExtensions(_lf.CreateLogger <ManifestUpdateCommandLoggingExtensions>()), _dtp, jsonSerializer, () => new StandardContentEntityFormatter(new ZippedSignedContentFormatter(nlSigner.Object), new Sha256HexPublishingIdService(), jsonSerializer) ); var thumbprintConfig = new Mock <IThumbprintConfig>(MockBehavior.Strict); _resign = new NlContentResignExistingV1ContentCommand( new NlContentResignCommand(_contentDbProvider.CreateNew, nlSigner.Object, new ResignerLoggingExtensions(_lf.CreateLogger <ResignerLoggingExtensions>()))); }
public EksEngineTests(IDbProvider <WorkflowDbContext> workflowDbProvider, IDbProvider <DkSourceDbContext> dkSourceDbProvider, IDbProvider <EksPublishingJobDbContext> eksPublishingJobDbProvider, IDbProvider <ContentDbContext> contentDbProvider, IWrappedEfExtensions efExtensions) { _Lf = new LoggerFactory(); _EfExtensions = efExtensions; _WorkflowDbProvider = workflowDbProvider; _DkSourceDbProvider = dkSourceDbProvider; _EksPublishingJobDbProvider = eksPublishingJobDbProvider; _ContentDbProvider = contentDbProvider; ////Configuration var tekValidatorConfig = new Mock <ITekValidatorConfig>(MockBehavior.Strict); var eksHeaderConfig = new Mock <IEksHeaderInfoConfig>(MockBehavior.Strict); var eksConfig = new Mock <IEksConfig>(MockBehavior.Strict); eksConfig.Setup(x => x.TekCountMax).Returns(750000); eksConfig.Setup(x => x.LifetimeDays).Returns(14); var gaSigner = new Mock <IGaContentSigner>(MockBehavior.Strict); //gaSigner.Setup(x => x.SignatureOid).Returns("The OID"); gaSigner.Setup(x => x.GetSignature(It.IsAny <byte[]>())).Returns(new byte[] { 1 }); var nlSigner = new Mock <IContentSigner>(MockBehavior.Loose); nlSigner.Setup(x => x.GetSignature(new byte[0])).Returns(new byte[] { 2 }); _Snapshot = new SnapshotWorkflowTeksToDksCommand( _Lf.CreateLogger <SnapshotWorkflowTeksToDksCommand>(), _Dtp, new TransmissionRiskLevelCalculationMk2(), _WorkflowDbProvider.CreateNew(), _WorkflowDbProvider.CreateNew, _DkSourceDbProvider.CreateNew, _EfExtensions, new IDiagnosticKeyProcessor[] { }); _CountriesOut = new Mock <IOutboundFixedCountriesOfInterestSetting>(); _CountriesOut.Setup(x => x.CountriesOfInterest).Returns(new[] { "ET" }); _Rng = new StandardRandomNumberGenerator(); _EksJob = new ExposureKeySetBatchJobMk3( eksConfig.Object, new EksBuilderV1(eksHeaderConfig.Object, gaSigner.Object, nlSigner.Object, _Dtp, new GeneratedProtobufEksContentFormatter(), new EksBuilderV1LoggingExtensions(_Lf.CreateLogger <EksBuilderV1LoggingExtensions>()) ), _EksPublishingJobDbProvider.CreateNew, _Dtp, new EksEngineLoggingExtensions(_Lf.CreateLogger <EksEngineLoggingExtensions>()), new EksStuffingGeneratorMk2(new TransmissionRiskLevelCalculationMk2(), _Rng, _Dtp, eksConfig.Object), new SnapshotDiagnosisKeys(new SnapshotLoggingExtensions(new TestLogger <SnapshotLoggingExtensions>()), _DkSourceDbProvider.CreateNew(), _EksPublishingJobDbProvider.CreateNew), new MarkDiagnosisKeysAsUsedLocally(_DkSourceDbProvider.CreateNew, eksConfig.Object, _EksPublishingJobDbProvider.CreateNew, _Lf.CreateLogger <MarkDiagnosisKeysAsUsedLocally>()), new EksJobContentWriter(_ContentDbProvider.CreateNew, _EksPublishingJobDbProvider.CreateNew, new Sha256HexPublishingIdService(), new EksJobContentWriterLoggingExtensions(_Lf.CreateLogger <EksJobContentWriterLoggingExtensions>())), new WriteStuffingToDiagnosisKeys(_DkSourceDbProvider.CreateNew(), _EksPublishingJobDbProvider.CreateNew(), new IDiagnosticKeyProcessor[] { new FixedCountriesOfInterestOutboundDiagnosticKeyProcessor(_CountriesOut.Object), new NlToEfgsDsosDiagnosticKeyProcessorMk1() } ), _EfExtensions ); var jsonSerializer = new StandardJsonSerializer(); _ManifestJob = new ManifestUpdateCommand( new ManifestBuilder(_ContentDbProvider.CreateNew(), eksConfig.Object, _Dtp), new ManifestBuilderV3(_ContentDbProvider.CreateNew(), eksConfig.Object, _Dtp), new ManifestBuilderV4(_ContentDbProvider.CreateNew(), eksConfig.Object, _Dtp), _ContentDbProvider.CreateNew, new ManifestUpdateCommandLoggingExtensions(_Lf.CreateLogger <ManifestUpdateCommandLoggingExtensions>()), _Dtp, jsonSerializer, new StandardContentEntityFormatter(new ZippedSignedContentFormatter(nlSigner.Object), new Sha256HexPublishingIdService(), jsonSerializer), () => new StandardContentEntityFormatter(new ZippedSignedContentFormatter(nlSigner.Object), new Sha256HexPublishingIdService(), jsonSerializer) ); var thumbmprintConfig = new Mock <IThumbprintConfig>(MockBehavior.Strict); _Resign = new NlContentResignExistingV1ContentCommand( new NlContentResignCommand(_ContentDbProvider.CreateNew, nlSigner.Object, new ResignerLoggingExtensions(_Lf.CreateLogger <ResignerLoggingExtensions>()))); }