public void ShouldNotAllowEmptyBulkLoadCredentials()
        {
            var saveBulkUploadCredentialsModel = new SaveBulkUploadCredentialsModel
            {
                ApiKey    = "",
                ApiSecret = ""
            };

            var instanceContext = new InstanceContext
            {
                Id   = 1,
                Name = "Test Instance"
            };

            Scoped <IUsersContext>(usersContext =>
            {
                var validator         = new SaveBulkUploadCredentialsModelValidator(usersContext, instanceContext);
                var validationResults = validator.Validate(saveBulkUploadCredentialsModel);
                validationResults.IsValid.ShouldBe(false);
                validationResults.Errors.Select(x => x.ErrorMessage).ShouldBe(new List <string>
                {
                    "'Api Key' must not be empty.",
                    "'Api Secret' must not be empty."
                });
            });
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> SaveBulkLoadCredentials(SaveBulkUploadCredentialsModel model)
        {
            var config = await _odsSecretConfigurationProvider.GetSecretConfiguration(_instanceContext.Id);

            if (config == null)
            {
                return(JsonError(_missingOdsSecretConfig));
            }
            config.BulkUploadCredential = new BulkUploadCredential {
                ApiKey    = model.ApiKey,
                ApiSecret = model.ApiSecret
            };
            await _odsSecretConfigurationProvider.SetSecretConfiguration(config, _instanceContext.Id);

            return(JsonSuccess("Credentials successfully saved"));
        }
        public void ShouldNotAllowBulkLoadCredentialsFromADifferentInstance()
        {
            var odsInstance1 = new OdsInstance
            {
                Name         = "Test Instance 1",
                InstanceType = "Ods",
                IsExtended   = false,
                Status       = "OK",
                Version      = "1.0.0"
            };

            var apiClientForInstance1 = SetupApplicationForInstance(odsInstance1);

            var odsInstance2 = new OdsInstance
            {
                Name         = "Test Instance 2",
                InstanceType = "Ods",
                IsExtended   = false,
                Status       = "OK",
                Version      = "1.0.0"
            };

            SetupApplicationForInstance(odsInstance2);

            var saveBulkUploadCredentialsModel = new SaveBulkUploadCredentialsModel
            {
                ApiKey    = apiClientForInstance1.Key,
                ApiSecret = apiClientForInstance1.Secret
            };

            var instanceContext = new InstanceContext
            {
                Id   = odsInstance2.OdsInstanceId,
                Name = odsInstance2.Name
            };

            Scoped <IUsersContext>(usersContext =>
            {
                var validator         = new SaveBulkUploadCredentialsModelValidator(usersContext, instanceContext);
                var validationResults = validator.Validate(saveBulkUploadCredentialsModel);
                validationResults.IsValid.ShouldBe(false);
                validationResults.Errors.Select(x => x.ErrorMessage).ShouldContain("The Api Key provided is not associated with the currently selected ODS instance.");
            });
        }
        public void ShouldAllowBulkLoadCredentialsFromTheSameInstance()
        {
            var odsInstance1 = new OdsInstance
            {
                Name         = "Test Instance 1",
                InstanceType = "Ods",
                IsExtended   = false,
                Status       = "OK",
                Version      = "1.0.0"
            };

            var apiClientForInstance1 = SetupApplicationForInstance(odsInstance1);

            var odsInstance2 = new OdsInstance
            {
                Name         = "Test Instance 2",
                InstanceType = "Ods",
                IsExtended   = false,
                Status       = "OK",
                Version      = "1.0.0"
            };

            SetupApplicationForInstance(odsInstance2);

            var saveBulkUploadCredentialsModel = new SaveBulkUploadCredentialsModel
            {
                ApiKey    = apiClientForInstance1.Key,
                ApiSecret = apiClientForInstance1.Secret
            };

            var instanceContext = new InstanceContext
            {
                Id   = odsInstance1.OdsInstanceId,
                Name = odsInstance1.Name
            };

            Scoped <IUsersContext>(usersContext =>
            {
                var validator         = new SaveBulkUploadCredentialsModelValidator(usersContext, instanceContext);
                var validationResults = validator.Validate(saveBulkUploadCredentialsModel);
                validationResults.IsValid.ShouldBe(true);
            });
        }
        public async Task When_Perform_Post_Request_To_SaveBulkLoadCredentials_With_BulkUpload_Credentials_Return_Json_Success()
        {
            // Arrange
            const string expectedKey    = "key";
            const string expectedSecret = "secret";
            var          model          = new SaveBulkUploadCredentialsModel
            {
                ApiKey    = expectedKey,
                ApiSecret = expectedSecret
            };

            OdsSecretConfigurationProvider.Setup(x => x.GetSecretConfiguration(It.IsAny <int>()))
            .Returns(Task.FromResult(new OdsSecretConfiguration()));

            // Act
            var result = (ContentResult)await SystemUnderTest.SaveBulkLoadCredentials(model);

            // Assert
            result.Content.Contains("Credentials successfully saved").ShouldBeTrue();
        }