Пример #1
0
        public void ValidateConstruction_WhenModelHasNullProviderResultsRepositoryPolicy_ShouldShouldBeInvalid()
        {
            // Arrange
            CalculatorResiliencePolicies model = new CalculatorResiliencePolicies()
            {
                CalculationsRepository           = Policy.NoOpAsync(),
                ProviderResultsRepository        = null,
                ProviderSourceDatasetsRepository = Policy.NoOpAsync(),
                CacheProvider = Policy.NoOpAsync(),
                Messenger     = Policy.NoOpAsync()
            };
            CalculatorResiliencePoliciesValidator validator = new CalculatorResiliencePoliciesValidator();

            // Act
            ValidationResult result = validator.Validate(model);

            // Assert
            result
            .IsValid
            .Should()
            .BeFalse();

            result
            .Errors
            .Count
            .Should().Be(1);

            result
            .Errors[0]
            .ErrorMessage
            .Should().Contain("ProviderResultsRepository");
        }
        public void ValidateConstruction_WhenValidatorReturnsFalse_ShouldThrowArgumentNullExceptionWithListOfErrors()
        {
            // Arrange
            EngineSettings                nullEngineSettings               = Substitute.For <EngineSettings>();
            ICalculationsRepository       mockCalculationRepository        = Substitute.For <ICalculationsRepository>();
            ICalculatorResiliencePolicies mockCalculatorResiliencePolicies = Substitute.For <ICalculatorResiliencePolicies>();
            var mockMessengerPolicy = Policy.NoOpAsync();
            var mockProviderResultsRepositoryPolicy = Policy.NoOpAsync();

            mockCalculatorResiliencePolicies.CacheProvider.Returns((AsyncPolicy)null);
            mockCalculatorResiliencePolicies.Messenger.Returns(mockMessengerPolicy);
            mockCalculatorResiliencePolicies.ProviderSourceDatasetsRepository.Returns((AsyncPolicy)null);
            mockCalculatorResiliencePolicies.CalculationResultsRepository.Returns(mockProviderResultsRepositoryPolicy);
            mockCalculatorResiliencePolicies.CalculationsApiClient.Returns((AsyncPolicy)null);
            IValidator <ICalculatorResiliencePolicies> validator = new CalculatorResiliencePoliciesValidator();

            // Act
            Action validateAction = () =>
            {
                ICalculationEngineServiceValidator calculationEngineServiceValidator = new CalculationEngineServiceValidator(validator, nullEngineSettings, mockCalculatorResiliencePolicies, mockCalculationRepository);
            };

            // Assert
            validateAction
            .Should()
            .ThrowExactly <ArgumentNullException>()
            .And.Message
            .Should().Contain("CacheProvider")
            .And.Contain("ProviderSourceDatasetsRepository")
            .And.Contain("CalculationRepository");
        }
Пример #3
0
        public void ValidateConstruction_WhenModelIsValid_ResultShouldBeValid()
        {
            // Arrange
            CalculatorResiliencePolicies model = new CalculatorResiliencePolicies()
            {
                CalculationsRepository           = Policy.NoOpAsync(),
                ProviderResultsRepository        = Policy.NoOpAsync(),
                ProviderSourceDatasetsRepository = Policy.NoOpAsync(),
                CacheProvider = Policy.NoOpAsync(),
                Messenger     = Policy.NoOpAsync()
            };
            CalculatorResiliencePoliciesValidator validator = new CalculatorResiliencePoliciesValidator();

            // Act
            ValidationResult result = validator.Validate(model);

            // Assert
            result
            .IsValid
            .Should()
            .BeTrue();
        }