コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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());
            }
        }
コード例 #4
0
        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);
                            }
        }