Ejemplo n.º 1
0
        public async Task GenerateWorkflowsAsync(int workflowCount = 25, int tekPerWorkflowCount = 4)
        {
            var workflowConfigMock = new Mock <IWorkflowConfig>(MockBehavior.Strict);

            workflowConfigMock.Setup(x => x.TimeToLiveMinutes).Returns(10000);
            workflowConfigMock.Setup(x => x.PermittedMobileDeviceClockErrorMinutes).Returns(30);

            var luhnModNConfig    = new LuhnModNConfig();
            var luhnModNGenerator = new LuhnModNGenerator(luhnModNConfig);

            Func <TekReleaseWorkflowStateCreateV2> createWf = () =>
                                                              new TekReleaseWorkflowStateCreateV2(
                _workflowDbContextProvider.CreateNewWithTx(),
                _utcDateTimeProvider,
                _rng,
                new TekReleaseWorkflowTime(workflowConfigMock.Object),
                new RegisterSecretLoggingExtensionsV2(_loggerFactory.CreateLogger <RegisterSecretLoggingExtensionsV2>()),
                luhnModNConfig,
                luhnModNGenerator
                );

            var gen = new GenerateTeksCommand(_rng, _workflowDbContextProvider.CreateNewWithTx, createWf);
            await gen.ExecuteAsync(new GenerateTeksCommandArgs { WorkflowCount = workflowCount, TekCountPerWorkflow = tekPerWorkflowCount });

            if (workflowCount != _workflowDbContextProvider.CreateNew().KeyReleaseWorkflowStates.Count())
            {
                throw new InvalidOperationException();
            }

            if (workflowCount * tekPerWorkflowCount != _workflowDbContextProvider.CreateNew().TemporaryExposureKeys.Count())
            {
                throw new InvalidOperationException();
            }
        }
        public void GenerateTest()
        {
            var c      = new LuhnModNConfig();
            var g      = new LuhnModNGenerator(c);
            var result = g.Next(6);
            var v      = new LuhnModNValidator(c);

            Assert.True(v.Validate(result));
        }
Ejemplo n.º 3
0
        public void GenerateTest()
        {
            var c      = new LuhnModNConfig();
            var r      = new Random(123); //Sub in a crypto method if desired.
            var g      = new LuhnModNGenerator(c);
            var result = g.Next(x => r.Next(x));
            var v      = new LuhnModNValidator(c);

            Assert.IsTrue(v.Validate(result));
        }
        public void LuhnModNGenerator_Generates_Valid_Key()
        {
            //Arrange
            var charSet   = "BCFGJLQRSTUVXYZ23456789";
            var keyLength = 7;

            var generator = new LuhnModNGenerator(new LuhnModNConfig(charSet, keyLength));
            // Act
            var key = generator.Next(7);

            // Assert
            var validator = new LuhnModNValidator(new LuhnModNConfig(charSet, keyLength));

            Assert.True(validator.Validate(key));
        }
        public async Task EmptySystemSingleTek()
        {
            var workflowConfig = new Mock <IWorkflowConfig>(MockBehavior.Strict);

            workflowConfig.Setup(x => x.TimeToLiveMinutes).Returns(24 * 60 * 60); //Approx
            workflowConfig.Setup(x => x.PermittedMobileDeviceClockErrorMinutes).Returns(30);

            var luhnModNConfig    = new LuhnModNConfig();
            var luhnModNGenerator = new LuhnModNGenerator(luhnModNConfig);

            Func <TekReleaseWorkflowStateCreateV2> createWf = () =>
                                                              new TekReleaseWorkflowStateCreateV2(
                _workflowDbProvider.CreateNewWithTx(),
                _dtp,
                _rng,
                new TekReleaseWorkflowTime(workflowConfig.Object),
                new RegisterSecretLoggingExtensionsV2(_lf.CreateLogger <RegisterSecretLoggingExtensionsV2>()),
                luhnModNConfig,
                luhnModNGenerator
                );

            await new GenerateTeksCommand(_rng, _workflowDbProvider.CreateNewWithTx, createWf).ExecuteAsync(new GenerateTeksCommandArgs {
                TekCountPerWorkflow = 1, WorkflowCount = 1
            });

            Assert.Equal(1, _workflowDbProvider.CreateNew().TemporaryExposureKeys.Count());
            Assert.Equal(0, _dkSourceDbProvider.CreateNew().DiagnosisKeys.Count());

            await _snapshot.ExecuteAsync(); //Too soon to publish TEKs

            await _eksJob.ExecuteAsync();

            await _manifestJob.ExecuteAllAsync();

            await _resign.ExecuteAsync();

            Assert.Equal(1, _contentDbProvider.CreateNew().Content.Count(x => x.Type == ContentTypes.ManifestV2));
            Assert.Equal(0, _contentDbProvider.CreateNew().Content.Count(x => x.Type == ContentTypes.ExposureKeySetV2));
            //Obsolete - replace with raw content
            Assert.Equal(0, _contentDbProvider.CreateNew().Content.Count(x => x.Type == ContentTypes.ExposureKeySet));
            Assert.Equal(0, _contentDbProvider.CreateNew().Content.Count(x => x.Type == ContentTypes.Manifest));
        }
Ejemplo n.º 6
0
 public GenerateWorkflowKeys(ILuhnModNConfig config)
 {
     _Generator = new LuhnModNGenerator(config);
 }
 public GenerateKeysFirstAuthorisationToken(ILuhnModNConfig config)
 {
     _Generator = new LuhnModNGenerator(config);
 }