protected WfToEksEksBatchJobMk3Tests(IDbProvider <WorkflowDbContext> workflowFac, IDbProvider <DkSourceDbContext> dkSourceFac, IDbProvider <EksPublishingJobDbContext> publishingFac, IDbProvider <ContentDbContext> contentFac, IWrappedEfExtensions efExtensions)
        {
            _workflowFac                = workflowFac ?? throw new ArgumentNullException(nameof(workflowFac));
            _dkSourceDbProvider         = dkSourceFac ?? throw new ArgumentNullException(nameof(dkSourceFac));
            _eksPublishingJobDbProvider = publishingFac ?? throw new ArgumentNullException(nameof(publishingFac));
            _contentDbProvider          = contentFac ?? throw new ArgumentNullException(nameof(contentFac));
            _efExtensions               = efExtensions ?? throw new ArgumentNullException(nameof(efExtensions));

            _dateTimeProvider = new StandardUtcDateTimeProvider();
            _fakeEksConfig    = new FakeEksConfig {
                LifetimeDays = 14, PageSize = 1000, TekCountMax = 10, TekCountMin = 5
            };
            _lf = new LoggerFactory();

            _snapshot = new SnapshotWorkflowTeksToDksCommand(_lf.CreateLogger <SnapshotWorkflowTeksToDksCommand>(),
                                                             new StandardUtcDateTimeProvider(),
                                                             new TransmissionRiskLevelCalculationMk2(),
                                                             _workflowFac.CreateNew(),
                                                             _workflowFac.CreateNew,
                                                             _dkSourceDbProvider.CreateNew,
                                                             _efExtensions,
                                                             new IDiagnosticKeyProcessor[0]
                                                             );
        }
예제 #2
0
 protected TekToDkSnapshotTests(IDbProvider <WorkflowDbContext> workflowFac, IDbProvider <DkSourceDbContext> dkSourceFac, IWrappedEfExtensions efExtensions)
 {
     _WorkflowDbProvider = workflowFac ?? throw new ArgumentNullException(nameof(workflowFac));
     _DkSourceDbProvider = dkSourceFac ?? throw new ArgumentNullException(nameof(dkSourceFac));
     _EfExtensions       = efExtensions ?? throw new ArgumentNullException(nameof(efExtensions));
     _DateTimeProvider   = new Mock <IUtcDateTimeProvider>();
     _OutboundCountries  = new Mock <IOutboundFixedCountriesOfInterestSetting>(MockBehavior.Strict);
     _Lf = new LoggerFactory();
 }
 protected WfToDkSnapshotTests(IDbProvider <WorkflowDbContext> workflowFac, IDbProvider <DkSourceDbContext> dkSourceFac, IWrappedEfExtensions efExtensions)
 {
     _workflowDbProvider = workflowFac ?? throw new ArgumentNullException(nameof(workflowFac));
     _dkSourceDbProvider = dkSourceFac ?? throw new ArgumentNullException(nameof(dkSourceFac));
     _efExtensions       = efExtensions ?? throw new ArgumentNullException(nameof(efExtensions));
     _dateTimeProvider   = new Mock <IUtcDateTimeProvider>();
     _lf = new LoggerFactory();
 }
예제 #4
0
 public SnapshotWorkflowTeksToDksCommand(ILogger <SnapshotWorkflowTeksToDksCommand> logger, IUtcDateTimeProvider dateTimeProvider, ITransmissionRiskLevelCalculationMk2 transmissionRiskLevelCalculation, WorkflowDbContext workflowDbContext, Func <WorkflowDbContext> workflowDbContextFactory, Func <DkSourceDbContext> dkSourceDbContextFactory, IWrappedEfExtensions sqlCommands, IDiagnosticKeyProcessor[] orderedProcessorList)
 {
     _logger           = logger ?? throw new ArgumentNullException(nameof(logger));
     _dateTimeProvider = dateTimeProvider ?? throw new ArgumentNullException(nameof(dateTimeProvider));
     _transmissionRiskLevelCalculation = transmissionRiskLevelCalculation ?? throw new ArgumentNullException(nameof(transmissionRiskLevelCalculation));
     _workflowDbContext        = workflowDbContext ?? throw new ArgumentNullException(nameof(workflowDbContext));
     _workflowDbContextFactory = workflowDbContextFactory ?? throw new ArgumentNullException(nameof(workflowDbContextFactory));
     _dkSourceDbContextFactory = dkSourceDbContextFactory ?? throw new ArgumentNullException(nameof(dkSourceDbContextFactory));
     _sqlCommands          = sqlCommands ?? throw new ArgumentNullException(nameof(sqlCommands));
     _orderedProcessorList = orderedProcessorList ?? throw new ArgumentNullException(nameof(orderedProcessorList));
 }
예제 #5
0
 public ExposureKeySetBatchJobMk3(IEksConfig eksConfig, IEksBuilder builder, Func <EksPublishingJobDbContext> publishingDbContextFac, IUtcDateTimeProvider dateTimeProvider, EksEngineLoggingExtensions logger, IEksStuffingGeneratorMk2 eksStuffingGenerator, ISnapshotEksInput snapshotter, MarkDiagnosisKeysAsUsedLocally markDiagnosisKeysAsUsed, IEksJobContentWriter contentWriter, IWriteStuffingToDiagnosisKeys writeStuffingToDiagnosisKeys, IWrappedEfExtensions sqlCommands)
 {
     _EksConfig              = eksConfig ?? throw new ArgumentNullException(nameof(eksConfig));
     _SetBuilder             = builder ?? throw new ArgumentNullException(nameof(builder));
     _PublishingDbContextFac = publishingDbContextFac ?? throw new ArgumentNullException(nameof(publishingDbContextFac));
     _DateTimeProvider       = dateTimeProvider ?? throw new ArgumentNullException(nameof(dateTimeProvider));
     _EksStuffingGenerator   = eksStuffingGenerator ?? throw new ArgumentNullException(nameof(eksStuffingGenerator));
     _Snapshotter            = snapshotter;
     _Logger = logger ?? throw new ArgumentNullException(nameof(logger));
     _MarkWorkFlowTeksAsUsed = markDiagnosisKeysAsUsed ?? throw new ArgumentNullException(nameof(markDiagnosisKeysAsUsed));
     _ContentWriter          = contentWriter ?? throw new ArgumentNullException(nameof(contentWriter));
     _Output = new List <EksCreateJobInputEntity>(_EksConfig.TekCountMax);
     _WriteStuffingToDiagnosisKeys = writeStuffingToDiagnosisKeys ?? throw new ArgumentNullException(nameof(writeStuffingToDiagnosisKeys));
     _JobName     = $"ExposureKeySetsJob_{_DateTimeProvider.Snapshot:u}".Replace(" ", "_").Replace(":", "_");
     _SqlCommands = sqlCommands ?? throw new ArgumentNullException(nameof(sqlCommands));
 }
 public IksEngine(ILogger <IksEngine> logger, IksInputSnapshotCommand snapshotter, IksFormatter formatter, IIksConfig config, IUtcDateTimeProvider dateTimeProvider, MarkDiagnosisKeysAsUsedByIks markSourceAsUsed, IksJobContentWriter contentWriter, Func <IksPublishingJobDbContext> publishingDbContextFac, IWrappedEfExtensions sqlCommands)
 {
     _logger                 = logger ?? throw new ArgumentNullException(nameof(logger));
     _snapshotter            = snapshotter ?? throw new ArgumentNullException(nameof(snapshotter));
     _formatter              = formatter ?? throw new ArgumentNullException(nameof(formatter));
     _config                 = config ?? throw new ArgumentNullException(nameof(config));
     _dateTimeProvider       = dateTimeProvider ?? throw new ArgumentNullException(nameof(dateTimeProvider));
     _markSourceAsUsed       = markSourceAsUsed ?? throw new ArgumentNullException(nameof(markSourceAsUsed));
     _contentWriter          = contentWriter ?? throw new ArgumentNullException(nameof(contentWriter));
     _publishingDbContextFac = publishingDbContextFac ?? throw new ArgumentNullException(nameof(publishingDbContextFac));
     _sqlCommands            = sqlCommands ?? throw new ArgumentNullException(nameof(sqlCommands));
     _jobName                = "IksEngine";
 }
예제 #7
0
 public WorkflowTestDataGenerator(IDbProvider <WorkflowDbContext> workflowDbContextProvider, IDbProvider <DkSourceDbContext> dkSourceDbContextProvider, IWrappedEfExtensions efExtensions)
 {
     _workflowDbContextProvider = workflowDbContextProvider ?? throw new ArgumentNullException(nameof(workflowDbContextProvider));
     _dkSourceDbContextProvider = dkSourceDbContextProvider ?? throw new ArgumentNullException(nameof(dkSourceDbContextProvider));
     _efExtensions = efExtensions ?? throw new ArgumentNullException(nameof(efExtensions));
 }
        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>())));
        }
 protected IksEngineTest(IDbProvider <WorkflowDbContext> workflowDbContextProvider, IDbProvider <IksInDbContext> iksInDbContextProvider, IDbProvider <DkSourceDbContext> dkSourceDbContextProvider, IDbProvider <IksPublishingJobDbContext> iksPublishingJobDbContextProvider, IDbProvider <IksOutDbContext> iksOutDbContextProvider, IWrappedEfExtensions efExtensions)
 {
     _IksInDbContextProvider            = iksInDbContextProvider ?? throw new ArgumentNullException(nameof(iksInDbContextProvider));
     _DkSourceDbContextProvider         = dkSourceDbContextProvider ?? throw new ArgumentNullException(nameof(dkSourceDbContextProvider));
     _IksPublishingJobDbContextProvider = iksPublishingJobDbContextProvider ?? throw new ArgumentNullException(nameof(iksPublishingJobDbContextProvider));
     _IksOutDbContextProvider           = iksOutDbContextProvider ?? throw new ArgumentNullException(nameof(iksOutDbContextProvider));
     _WorkflowDbContextProvider         = workflowDbContextProvider ?? throw new ArgumentNullException(nameof(workflowDbContextProvider));
     _EfExtensions = efExtensions ?? throw new ArgumentNullException(nameof(efExtensions));
 }
예제 #10
0
        protected EksBatchJobMk3Tests(IDbProvider <WorkflowDbContext> workflowFac, IDbProvider <DkSourceDbContext> dkSourceFac, IDbProvider <EksPublishingJobDbContext> publishingFac, IDbProvider <ContentDbContext> contentFac, IWrappedEfExtensions efExtensions)
        {
            _WorkflowFac                = workflowFac ?? throw new ArgumentNullException(nameof(workflowFac));
            _DkSourceDbProvider         = dkSourceFac ?? throw new ArgumentNullException(nameof(dkSourceFac));
            _EksPublishingJobDbProvider = publishingFac ?? throw new ArgumentNullException(nameof(publishingFac));
            _ContentDbProvider          = contentFac ?? throw new ArgumentNullException(nameof(contentFac));
            _EfExtensions               = efExtensions ?? throw new ArgumentNullException(nameof(efExtensions));

            _DateTimeProvider = new StandardUtcDateTimeProvider();
            _FakeEksConfig    = new FakeEksConfig {
                LifetimeDays = 14, PageSize = 1000, TekCountMax = 10, TekCountMin = 5
            };
            _Lf = new LoggerFactory();

            _EksEngineLogger          = new EksEngineLoggingExtensions(_Lf.CreateLogger <EksEngineLoggingExtensions>());
            _SnapshotLogger           = new SnapshotLoggingExtensions(_Lf.CreateLogger <SnapshotLoggingExtensions>());
            _ContentWriterLogger      = new EksJobContentWriterLoggingExtensions(_Lf.CreateLogger <EksJobContentWriterLoggingExtensions>());
            _WorkflowTeksMarkerLogger = new MarkWorkFlowTeksAsUsedLoggingExtensions(_Lf.CreateLogger <MarkWorkFlowTeksAsUsedLoggingExtensions>());

            _Snapshot = new SnapshotWorkflowTeksToDksCommand(_Lf.CreateLogger <SnapshotWorkflowTeksToDksCommand>(),
                                                             new StandardUtcDateTimeProvider(),
                                                             new TransmissionRiskLevelCalculationMk2(),
                                                             _WorkflowFac.CreateNew(),
                                                             _WorkflowFac.CreateNew,
                                                             _DkSourceDbProvider.CreateNew,
                                                             _EfExtensions,
                                                             new IDiagnosticKeyProcessor[] {
            }
                                                             );

            _OutboundCountriesMock = new Mock <IOutboundFixedCountriesOfInterestSetting>();
            _OutboundCountriesMock.Setup(x => x.CountriesOfInterest).Returns(new [] { "CY", "BG" });
        }
        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>())));
        }