public async Task Handle_Given_RegEndDate_Before_RegStartDate_Throw_ValidationException() { // Arrange var validTitle = "Event Created from Unit Tests."; var validDescription = "This event was created from a Unit Test."; var validStartDate = new DateTime(2020, 3, 3); var validEndDate = new DateTime(2020, 3, 4); var validRegStartDate = new DateTime(2020, 2, 1); var inValidRegEndDate = new DateTime(2020, 1, 1); var validMaxRegs = 10; var validEventTypeId = 1; var command = new CreateEventCommand { Title = validTitle, Description = validDescription, StartDate = validStartDate, EndDate = validEndDate, RegStartDate = validRegStartDate, RegEndDate = inValidRegEndDate, MaxRegsCount = validMaxRegs, EventTypeId = validEventTypeId }; var validator = new CreateEventCommandValidator(new DateTimeTestProvider()); // Act/Assert var result = await validator.ValidateAsync(command); var ex = await Assert.ThrowsAsync <ValidationException>(() => _sut.Handle(command, CancellationToken.None)); Assert.Equal(1, ex.Failures.Count); Assert.False(result.IsValid); Assert.Equal(1, result.Errors.Count); Assert.Contains(result.Errors, x => x.PropertyName == "RegStartDate"); }
public async Task Handle_Given_StartDate_InPast_Throws_ValidationException() { // Arrange var validTitle = "Event Created from Unit Tests."; var validDescription = "This event was created from a Unit Test."; var inValidStartDate = new DateTime(2019, 3, 1); var validEndDate = new DateTime(2020, 3, 2); var validRegStartDate = new DateTime(2019, 1, 1); var validRegEndDate = new DateTime(2019, 2, 1); var validMaxRegs = 10; var validEventTypeId = 1; var command = new CreateEventCommand { Title = validTitle, Description = validDescription, StartDate = inValidStartDate, EndDate = validEndDate, RegStartDate = validRegStartDate, RegEndDate = validRegEndDate, MaxRegsCount = validMaxRegs, EventTypeId = validEventTypeId }; var validator = new CreateEventCommandValidator(new DateTimeTestProvider()); // manually invoke to test the Validator // Act/Assert var result = await validator.ValidateAsync(command); Assert.False(result.IsValid); Assert.Equal(1, result.Errors.Count); Assert.Contains(result.Errors, x => x.PropertyName == "StartDate"); }
public async Task Validate_Given_Invalid_City_Validator_Is_Invalid(string value) { // Arrange var validTitle = "Event Created from Unit Tests."; var validDescription = "This event was created from a Unit Test."; var validStartDate = new DateTime(2020, 3, 3); var validEndDate = new DateTime(2020, 3, 4); var validRegStartDate = new DateTime(2020, 2, 1); var validRegEndDate = new DateTime(2020, 2, 2); var validMaxRegs = 10; var validEventTypeId = 1; var validStreet = "123 Anywhere St."; var validSuite = "Room #3"; var inValidCity = value; var validState = "MD"; var validZip = "12345"; var command = new CreateEventCommand { Title = validTitle, Description = validDescription, StartDate = validStartDate, EndDate = validEndDate, RegStartDate = validRegStartDate, RegEndDate = validRegEndDate, MaxRegsCount = validMaxRegs, EventTypeId = validEventTypeId, Street = validStreet, Suite = validSuite, City = inValidCity, State = validState, Zip = validZip }; var validator = new CreateEventCommandValidator(new DateTimeTestProvider()); // Act/Assert var result = await validator.ValidateAsync(command); Assert.False(result.IsValid); Assert.Equal(1, result.Errors.Count); Assert.Contains(result.Errors, x => x.PropertyName == "City"); }
public async Task Validate_Given_Valid_Zip_Validator_Is_Valid(string value) { // Arrange var validTitle = "Event Created from Unit Tests."; var validDescription = "This event was created from a Unit Test."; var validStartDate = new DateTime(2020, 3, 3); var validEndDate = new DateTime(2020, 3, 4); var validRegStartDate = new DateTime(2020, 2, 1); var validRegEndDate = new DateTime(2020, 2, 2); var validMaxRegs = 10; var validEventTypeId = 1; var validStreet = "123 Anywhere St."; var validSuite = "Room #3"; var validCity = "Yourtown"; var validState = "MD"; var validZip = value; var command = new CreateEventCommand { Title = validTitle, Description = validDescription, StartDate = validStartDate, EndDate = validEndDate, RegStartDate = validRegStartDate, RegEndDate = validRegEndDate, MaxRegsCount = validMaxRegs, EventTypeId = validEventTypeId, Street = validStreet, Suite = validSuite, City = validCity, State = validState, Zip = validZip }; var validator = new CreateEventCommandValidator(new DateTimeTestProvider()); // Act/Assert var result = await validator.ValidateAsync(command); Assert.True(result.IsValid); }