public async Task ShouldRegisterOdsInstance() { ResetOdsInstanceRegistrations(); var instanceName = "TestInstance_23456"; const string description = "Test Description"; var encryptedSecretConfigValue = "Encrypted string"; using (var connection = GetDatabaseConnection(instanceName)) { _connectionProvider.Setup(x => x.CreateNewConnection(23456, ApiMode.DistrictSpecific)) .Returns(connection); var odsInstanceFirstTimeSetupService = GetOdsInstanceFirstTimeSetupService(encryptedSecretConfigValue, instanceName); var newInstance = new RegisterOdsInstanceModel { NumericSuffix = 23456, Description = description }; var testUsername = UserTestSetup.SetupUsers(1).Single().Id; var command = new RegisterOdsInstanceCommand(odsInstanceFirstTimeSetupService, _connectionProvider.Object); var newInstanceId = await command.Execute(newInstance, ApiMode.DistrictSpecific, testUsername, new CloudOdsClaimSet()); var addedInstance = Query <OdsInstanceRegistration>(newInstanceId); var secretConfiguration = SetupContext.SecretConfigurations.FirstOrDefault(x => x.OdsInstanceRegistrationId == newInstanceId); secretConfiguration.ShouldNotBeNull(); secretConfiguration.EncryptedData.ShouldBe(encryptedSecretConfigValue); addedInstance.Name.ShouldBe(instanceName); addedInstance.Description.ShouldBe(newInstance.Description); } }
public async Task <ActionResult> RegisterOdsInstance(RegisterOdsInstanceModel model) { var currentUserId = User.Identity.GetUserId(); await _registerOdsInstanceCommand.Execute(model, CloudOdsAdminAppSettings.Instance.Mode, currentUserId, CloudOdsAdminAppClaimSetConfiguration.Default); return(RedirectToAction("Index", "OdsInstances")); }
public async Task ShouldRegisterDistrictSpecificOdsInstance() { var apiMode = ApiMode.DistrictSpecific; ResetOdsInstanceRegistrations(); var instanceName = "23456"; const string description = "Test Description"; var encryptedSecretConfigValue = "Encrypted string"; using (var connection = GetDatabaseConnection(instanceName, _dbNamePrefix)) { _connectionProvider.Setup(x => x.CreateNewConnection(23456, apiMode)) .Returns(connection); var newInstance = new RegisterOdsInstanceModel { NumericSuffix = 23456, Description = description }; var testUsername = UserTestSetup.SetupUsers(1).Single().Id; int newInstanceId = await ScopedAsync <AdminAppIdentityDbContext, int>(async identity => { return(await ScopedAsync <AdminAppDbContext, int>(async database => { var odsInstanceFirstTimeSetupService = GetOdsInstanceFirstTimeSetupService(encryptedSecretConfigValue, instanceName, database, apiMode); var inferInstanceService = new InferInstanceService(_connectionProvider.Object); var command = new RegisterOdsInstanceCommand(odsInstanceFirstTimeSetupService, identity, _setCurrentSchoolYear.Object, inferInstanceService); return await command.Execute(newInstance, apiMode, testUsername, new CloudOdsClaimSet()); })); }); var addedInstance = Query <OdsInstanceRegistration>(newInstanceId); var secretConfiguration = Transaction(database => database.SecretConfigurations.FirstOrDefault(x => x.OdsInstanceRegistrationId == newInstanceId)); secretConfiguration.ShouldNotBeNull(); secretConfiguration.EncryptedData.ShouldBe(encryptedSecretConfigValue); addedInstance.Name.ShouldBe(instanceName); addedInstance.Description.ShouldBe(newInstance.Description); addedInstance.DatabaseName.ShouldBe($"{_dbNamePrefix}{instanceName}"); _setCurrentSchoolYear.Verify( x => x.Execute(It.IsAny <string>(), It.IsAny <ApiMode>(), It.IsAny <short>()), Times.Never()); } }
public async Task BulkShouldNotRegisterOneOdsInstancePreviouslyRegistered() { ResetOdsInstanceRegistrations(); var instanceName = "TestInstance_23456"; const string description = "Test Description"; var encryptedSecretConfigValue = "Encrypted string"; using (var connection = GetDatabaseConnection(instanceName)) using (var connection2 = GetDatabaseConnection(instanceName)) using (var connection3 = GetDatabaseConnection(instanceName)) using (var connection4 = GetDatabaseConnection(instanceName)) using (var connection5 = GetDatabaseConnection(instanceName)) { _connectionProvider .SetupSequence(x => x.CreateNewConnection(23456, ApiMode.DistrictSpecific)) .Returns(connection) .Returns(connection2) .Returns(connection3) .Returns(connection4) .Returns(connection5); var newInstance = new RegisterOdsInstanceModel { NumericSuffix = 23456, Description = description }; var testUsername = UserTestSetup.SetupUsers(1).Single().Id; int newInstanceId = await ScopedAsync <AdminAppIdentityDbContext, int>(async identity => { return(await ScopedAsync <AdminAppDbContext, int>(async database => { var odsInstanceFirstTimeSetupService = GetOdsInstanceFirstTimeSetupService(encryptedSecretConfigValue, instanceName, database); var command = new RegisterOdsInstanceCommand(odsInstanceFirstTimeSetupService, _connectionProvider.Object, identity); return await command.Execute(newInstance, ApiMode.DistrictSpecific, testUsername, new CloudOdsClaimSet()); })); }); List <RegisterOdsInstanceModel> odsInstancesToRegister = new List <RegisterOdsInstanceModel>(); var repeatedInstance = new RegisterOdsInstanceModel { NumericSuffix = 23456, Description = description }; odsInstancesToRegister.Add(repeatedInstance); var newInstances = await ScopedAsync <AdminAppIdentityDbContext, IEnumerable <BulkRegisterOdsInstancesResult> >(async identity => { return(await ScopedAsync <AdminAppDbContext, IEnumerable <BulkRegisterOdsInstancesResult> >(async database => { var odsInstanceFirstTimeSetupService = GetOdsInstanceFirstTimeSetupService(encryptedSecretConfigValue, instanceName, database); RegisterOdsInstanceCommand registerOdsInstanceCommand = new RegisterOdsInstanceCommand(odsInstanceFirstTimeSetupService, _connectionProvider.Object, identity); var command = new BulkRegisterOdsInstancesCommand(registerOdsInstanceCommand, _dataFiltrationService.Object); return await command.Execute(odsInstancesToRegister, new List <RegisterOdsInstanceModel>(), ApiMode.DistrictSpecific, testUsername, new CloudOdsClaimSet()); })); }); var addedInstance = Query <OdsInstanceRegistration>(newInstances.FirstOrDefault().OdsInstanceRegisteredId); var secretConfiguration = Transaction(database => database.SecretConfigurations.FirstOrDefault(x => x.OdsInstanceRegistrationId == newInstances.FirstOrDefault().OdsInstanceRegisteredId)); newInstances.FirstOrDefault().ShouldNotBeNull(); newInstances.FirstOrDefault().NumericSuffix.ShouldBe(repeatedInstance.NumericSuffix.ToString()); newInstances.FirstOrDefault().Description.ShouldBe(repeatedInstance.Description); newInstances.FirstOrDefault().OdsInstanceRegisteredId.ShouldBe(0); newInstances.FirstOrDefault().IndividualInstanceResult.ShouldBe(IndividualInstanceResult.Skipped); } }