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)); }
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)); }
public GenerateWorkflowKeys(ILuhnModNConfig config) { _Generator = new LuhnModNGenerator(config); }
public GenerateKeysFirstAuthorisationToken(ILuhnModNConfig config) { _Generator = new LuhnModNGenerator(config); }