public void ShouldValidateUnsuccessfulySinceLowerRangeIsLargerThanHigherRange() { var expectedValidationResult = new ValidationResult("Configuration of application contains invalid definition of minimum and maximum donation amount."); var donationAmountValidationResult = AppSettingsValidator.ValidateDonationAmountRange(5, 2); Assert.AreEqual(expectedValidationResult.ErrorMessage, donationAmountValidationResult.ErrorMessage); }
private static void ValidateApiUrl(IConfiguration configuration) { AppSettingsValidator validatorHelper = new AppSettingsValidator(configuration, new ValidatorHelper()); if (!validatorHelper.IsLocalApiUrlValid()) { throw new ConfigurationValidationException(validatorHelper.ErrorMessageContainer); } }
private static void ValidateConfigurationSettings(IConfiguration configuration) { AppSettingsValidator validatorHelper = new AppSettingsValidator(configuration, new ValidatorHelper()); if (!validatorHelper.IsConnectionStringValid() || !validatorHelper.IsFileStorePathValid() || !validatorHelper.IsLocalApiUrlValid() || !validatorHelper.IsDefaultAdminDetailsValid()) { throw new ConfigurationValidationException(validatorHelper.ErrorMessageContainer); } }
public void RETURN_FALSE_IF_LOCAL_API_URL_IS_EMPTY() { IConfiguration configuration = CommonMethods.CreateMockConfigurationFromFile(APPSETTINGS_WITH_INVALID_DATA); var validatorHelperMock = new Mock <IValidatorHelper>(); var objectUnderTest = new AppSettingsValidator(configuration, validatorHelperMock.Object); var result = objectUnderTest.IsLocalApiUrlValid(); Assert.IsNotNull(result); Assert.IsFalse(result); }
public void RETURN_FALSE_IF_FILESTORE_PATH_POINTS_NON_EXISTING_DIRECTORY() { IConfiguration configuration = CommonMethods.CreateConfigurationWithFileStorePath("/non/existing/directory"); var validatorHelperMock = new Mock <IValidatorHelper>(); var objectUnderTest = new AppSettingsValidator(configuration, validatorHelperMock.Object); var result = objectUnderTest.IsFileStorePathValid(); Assert.IsNotNull(result); Assert.IsFalse(result); }
public void RETURN_FALSE_WITH_EMPTY_CONNECTION_STRING() { IConfiguration configuration = CommonMethods.CreateMockConfigurationFromFile(APPSETTINGS_WITH_EMPTY_ENTITIES); var validatorHelperMock = new Mock <IValidatorHelper>(); var objectUnderTest = new AppSettingsValidator(configuration, validatorHelperMock.Object); var result = objectUnderTest.IsConnectionStringValid(); Assert.IsNotNull(result); Assert.IsFalse(result); }
public void RETURN_FALSE_IF_CANNOT_CONNECT_TO_DATABASE() { IConfiguration configuration = CommonMethods.CreateMockConfigurationFromFile(APPSETTINGS_WITH_INVALID_DATA); var validatorHelperMock = new Mock <IValidatorHelper>(); var objectUnderTest = new AppSettingsValidator(configuration, validatorHelperMock.Object); var result = objectUnderTest.IsConnectionStringValid(); Assert.IsNotNull(result); Assert.IsFalse(result); }
public void RETURN_TRUE_IF_DEFAULT_ADMIN_DETAILS_IS_VALID() { var configuration = CommonMethods.CreateMockConfigurationFromFile(APPSETTINGS_WITH_VALID_DATA); var validatorHelperMock = new Mock <IValidatorHelper>(); var objectUnderTest = new AppSettingsValidator(configuration, validatorHelperMock.Object); var result = objectUnderTest.IsDefaultAdminDetailsValid(); Assert.IsNotNull(result); Assert.IsTrue(result); }
public void ShouldValidateTaxRatePercentage() { _optionsMonitorMock.Setup(o => o.CurrentValue).Returns(new AppSettings() { TaxRatePercentage = "20" }); var donationAmountValidationResult = AppSettingsValidator.ValidateTaxRatePercentage(_optionsMonitorMock.Object); Assert.AreEqual(ValidationResult.Success, donationAmountValidationResult); }
public void ShouldValidateUnsuccessfulyWhenTaxRateIsNotPresentInAppSettings() { _optionsMonitorMock.Setup(o => o.CurrentValue).Returns(new AppSettings() { }); var expectedValidationResult = new ValidationResult("Configuration of application does not contain tax rate percentage."); var donationAmountValidationResult = AppSettingsValidator.ValidateTaxRatePercentage(_optionsMonitorMock.Object); Assert.AreEqual(expectedValidationResult.ErrorMessage, donationAmountValidationResult.ErrorMessage); }
public void RETURN_FALSE_WITHOUT_READ_WRITE_ACCESS_TO_FILESTORE() { IConfiguration configuration = CommonMethods.CreateConfigurationWithFileStorePath(TEST_DIRECTORY_PATH); var fileStorePath = configuration.GetValue <string>("DefaultFileStorePath"); var validatorHelperMock = new Mock <IValidatorHelper>(); validatorHelperMock.Setup(x => x.HaveRequiredPermissionsToFileStore(fileStorePath)).Returns(false); var objectUnderTest = new AppSettingsValidator(configuration, validatorHelperMock.Object); var result = objectUnderTest.IsFileStorePathValid(); Assert.IsNotNull(result); Assert.IsFalse(result); }
public void RETURN_TRUE_IF_FILESTORE_PATH_IS_VALID() { IConfiguration configuration = CommonMethods.CreateConfigurationWithFileStorePath(); var fileStorePath = configuration.GetValue <string>("DefaultFileStorePath"); var validatorHelperMock = new Mock <IValidatorHelper>(); validatorHelperMock.Setup(x => x.HaveRequiredPermissionsToFileStore(fileStorePath)).Returns(true); var objectUnderTest = new AppSettingsValidator(configuration, validatorHelperMock.Object); var result = objectUnderTest.IsFileStorePathValid(); Assert.IsNotNull(result); Assert.IsTrue(result); }
public void RETURN_TRUE_IF_CONNECTION_STRING_IS_VALID() { IConfiguration configuration = CommonMethods.CreateMockConfigurationFromFile(APPSETTINGS_WITH_VALID_DATA); var connectionString = configuration.GetConnectionString("CQuerDB"); var validatorHelperMock = new Mock <IValidatorHelper>(); validatorHelperMock.Setup(x => x.CanEstablishConnectionWithDatabase(connectionString)).Returns(true); var objectUnderTest = new AppSettingsValidator(configuration, validatorHelperMock.Object); var result = objectUnderTest.IsConnectionStringValid(); Assert.IsNotNull(result); Assert.IsTrue(result); }
public void RETURN_TRUE_IF_LOCAL_API_URL_IS_VALID() { IConfiguration configuration = CommonMethods.CreateMockConfigurationFromFile(APPSETTINGS_WITH_VALID_DATA); var localApiUrl = configuration.GetValue <string>("CQuerLocalAPIURL"); var validatorHelperMock = new Mock <IValidatorHelper>(); validatorHelperMock.Setup(x => x.IsLocalAddress(localApiUrl)).Returns(true); var objectUnderTest = new AppSettingsValidator(configuration, validatorHelperMock.Object); var result = objectUnderTest.IsLocalApiUrlValid(); Assert.IsNotNull(result); Assert.IsTrue(result); }
public void ShouldValidateAppSettingsSuccessfuly() { _optionsMonitorMock.Setup(o => o.CurrentValue).Returns(new AppSettings() { MinimumDonationAmount = "2", MaximumDonationAmount = "100000", TaxRatePercentage = "20" }); var expectedValidationResult = new List <ValidationResult>(); var donationAmountValidationResult = AppSettingsValidator.ValidateAppSettings(_optionsMonitorMock.Object); Assert.AreEqual(expectedValidationResult, donationAmountValidationResult); }
private ObjectResult ValidateOperation(decimal donationAmount) { var appSettingsValidationResult = AppSettingsValidator.ValidateAppSettings(_appSettings); if (appSettingsValidationResult.Count > 0) { return(StatusCode(500, new ValidationResult("Internal Server Error: Definition of one or more configuration settings of the application are invalid."))); } var requestValidationResult = AmountValidator.ValidateAmount(_appSettings, donationAmount); if (requestValidationResult != null) { return(StatusCode(400, requestValidationResult)); } return(StatusCode(200, null)); }
public void ValidateAppSettingsShouldReturnTaxRatePercentageValidationError() { _optionsMonitorMock.Setup(o => o.CurrentValue).Returns(new AppSettings() { MinimumDonationAmount = "2", MaximumDonationAmount = "100000" }); var expectedValidationResult = new List <ValidationResult>() { new ValidationResult("Configuration of application does not contain tax rate percentage.") }; var donationAmountValidationResult = AppSettingsValidator.ValidateAppSettings(_optionsMonitorMock.Object); Assert.AreEqual(1, donationAmountValidationResult.Count); Assert.AreEqual(expectedValidationResult[0].ErrorMessage, donationAmountValidationResult[0].ErrorMessage); }
public void ValidateAppSettingsShouldReturnAmountRangeValidationError() { _optionsMonitorMock.Setup(o => o.CurrentValue).Returns(new AppSettings() { TaxRatePercentage = "20", MinimumDonationAmount = "2", MaximumDonationAmount = "1" }); var expectedValidationResult = new List <ValidationResult>() { new ValidationResult("Configuration of application contains invalid definition of minimum and maximum donation amount.") }; var donationAmountValidationResult = AppSettingsValidator.ValidateAppSettings(_optionsMonitorMock.Object); Assert.AreEqual(1, donationAmountValidationResult.Count); Assert.AreEqual(expectedValidationResult[0].ErrorMessage, donationAmountValidationResult[0].ErrorMessage); }
public void ThrowExceptionIfSecretNotValid(string invalidSecret) { // [Setup] // setup webhost using appsettings with specific path var appSettingsValidator = new AppSettingsValidator(); var appSettings = new AppSettings(); appSettings.JwtSecret = invalidSecret; // [Verify] // we expect to have a appsettings invalid exception Assert.Throws <InvalidAppSettingsException>(() => { appSettingsValidator.EnsureValid(appSettings); }); // [Teardown] // nothing to tear down }
public void ThrowExceptionIfProductTypeNotValid(Type productType) { // [Setup] // setup webhost using appsettings with specific path var appSettingsValidator = new AppSettingsValidator(); var appSettings = new AppSettings(); appSettings.ProductType = productType; // [Verify] // we expect to have a appsettings invalid exception var exception = Assert.Throws <InvalidAppSettingsException>(() => { appSettingsValidator.EnsureValid(appSettings); }); Assert.Equal(nameof(appSettings.ProductType), exception.PropertyName); // [Teardown] // nothing to tear down }
public void ShouldValidateSuccessfulyDonationAmountRangeWhenHigherRangeIsUndefined() { var donationAmountValidationResult = AppSettingsValidator.ValidateDonationAmountRange(2, 0); Assert.AreEqual(ValidationResult.Success, donationAmountValidationResult); }
public void ShouldValidateSuccessfulyDonationAmountRange() { var donationAmountValidationResult = AppSettingsValidator.ValidateDonationAmountRange(2, 100000); Assert.AreEqual(ValidationResult.Success, donationAmountValidationResult); }