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); }
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); }
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); } }); }
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); }
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); } }); }
public void SortValidator_Should_Return_True_With_Valid_Sort_Options(string testValue) { (bool validation, string error)result = SortValidator.Validate(testValue); Assert.True(result.validation); }
public SortValidatorTests() { _sut = new(); }