public void Handle_InvalidCommand_EmptyName_ShouldThrowValidationException() { var handler = new CreateAttractionCategoryCommandHandler(_mapper, _mockAttractionCategoryRepository.Object); Func <Task> func = async() => await handler.Handle(new CreateAttractionCategoryCommand { Name = "" }, CancellationToken.None); func.Should().Throw <ValidationException>(); _mockAttractionCategoryRepository.Verify(repo => repo.AddAsync(It.IsAny <AttractionCategory>()), Times.Never()); }
public void Handle_InvalidCommand_TooLongName_ShouldThrowValidationException() { var handler = new CreateAttractionCategoryCommandHandler(_mapper, _mockAttractionCategoryRepository.Object); var command = new CreateAttractionCategoryCommand { Name = "ThisNameShouldHaveMoreThan50CharactersSoINeedToAddAFewMoreThisNameShouldHaveMoreThan50CharactersSoINeedToAddAFewMore" }; Func <Task> func = async() => await handler.Handle(command, CancellationToken.None); func.Should().Throw <ValidationException>().Where(e => e.Errors.Any(x => x.Contains("must not exceed 100 characters"))); _mockAttractionCategoryRepository.Verify(repo => repo.AddAsync(It.IsAny <AttractionCategory>()), Times.Never()); }
public async Task Handle_ValidCommand_ShouldAddToRepository() { var initialListCount = (await _mockAttractionCategoryRepository.Object.GetAllAsync()).Count; var handler = new CreateAttractionCategoryCommandHandler(_mapper, _mockAttractionCategoryRepository.Object); var result = await handler.Handle(new CreateAttractionCategoryCommand { Name = "Church" }, CancellationToken.None); result.Should().BeOfType(typeof(AttractionCategoryDto)); result.Name.Should().Be("Church"); var categories = await _mockAttractionCategoryRepository.Object.GetAllAsync(); categories.Count.Should().Be(initialListCount + 1); _mockAttractionCategoryRepository.Verify(repo => repo.AddAsync(It.IsAny <AttractionCategory>()), Times.Once()); }