Пример #1
0
        public void SortValidator_Should_Return_False_And_Error_With_Inalid_Sort_Options(string testValue)
        {
            (bool validation, string error)result = SortValidator.Validate(testValue);

            Assert.False(result.validation);
            Assert.Equal("Sort option must be either \"Low\", \"High\", \"Ascending\", \"Descending\", \"Recommended\" (case sensitive)", result.error);
        }
Пример #2
0
        public async Task Validation_Passes()
        {
            var context      = TestContext.CreateNewContext();
            var validator    = new SortValidator <BlogPost>(context);
            var newSortOrder = _blogPosts.OrderByDescending(i => i).ToList();

            var result = await validator.Validate(newSortOrder, b => b.CategoryId == 1);

            Assert.IsType <SuccessResult>(result);
        }
Пример #3
0
        public SortCategoriesCommandValidator(AppDbContext context)
        {
            RuleFor(r => r.NewSortOrder).CustomAsync(async(newSortOrder, validationContext, cancellationToken) =>
            {
                var sortValidator = new SortValidator <Category>(context);
                var result        = await sortValidator.Validate(newSortOrder);

                if (result is ErrorResult error)
                {
                    validationContext.AddFailure(error.ErrorMessage);
                }
            });
        }
Пример #4
0
        public async Task Validation_Fails_When_Are_Not_All_Unique()
        {
            var context      = TestContext.CreateNewContext();
            var validator    = new SortValidator <Category>(context);
            var newSortOrder = new List <int>()
            {
                _blogPosts[0], _blogPosts[1], _blogPosts[0]
            };

            var result = await validator.Validate(newSortOrder);

            Assert.IsType <ErrorResult>(result);
        }
Пример #5
0
        public async Task Validation_Fails_When_An_Id_Does_Not_Exist()
        {
            var context      = TestContext.CreateNewContext();
            var validator    = new SortValidator <BlogPost>(context);
            var newSortOrder = new List <int>()
            {
                _blogPosts[0], _blogPosts[1], _blogPosts[2], 100
            };

            var result = await validator.Validate(newSortOrder);

            Assert.IsType <ErrorResult>(result);
        }
        public async Task <IActionResult> Get([FromQuery] string sortOption)
        {
            (bool isValid, string error)result = SortValidator.Validate(sortOption);

            if (!result.isValid)
            {
                return(BadRequest(result.error));
            }

            var sortedProducts = await _productService.GetSortedProducts(Enum.Parse <SortOrder>(sortOption));

            if (sortedProducts == null)
            {
                return(NotFound("No products found."));
            }

            return(Ok(sortedProducts));
        }
        public SortBlogsCommandValidator(AppDbContext context)
        {
            RuleFor(r => r.CategoryId).CustomAsync(async(newSortOrder, validationContext, cancellationToken) =>
            {
                var instance = (SortBlogsCommand)validationContext.InstanceToValidate;
                var exists   = await context.Categories.AnyAsync(c => c.Id == instance.CategoryId);

                if (!exists)
                {
                    validationContext.AddFailure($"{validationContext.PropertyName} does not exist");
                }
            });
            RuleFor(r => r.NewSortOrder).CustomAsync(async(newSortOrder, validationContext, cancellationToken) =>
            {
                var instance      = (SortBlogsCommand)validationContext.InstanceToValidate;
                var sortValidator = new SortValidator <BlogPost>(context);
                var result        = await sortValidator.Validate(newSortOrder, b => b.CategoryId == instance.CategoryId);

                if (result is ErrorResult error)
                {
                    validationContext.AddFailure(error.ErrorMessage);
                }
            });
        }
Пример #8
0
        public void SortValidator_Should_Return_True_With_Valid_Sort_Options(string testValue)
        {
            (bool validation, string error)result = SortValidator.Validate(testValue);

            Assert.True(result.validation);
        }
Пример #9
0
 public SortValidatorTests()
 {
     _sut = new();
 }