Пример #1
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" });
        }
        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]
                                                             );
        }
        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>())));
        }