Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        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);
        }