public void BadSerialNumber() { // Arrange var badSerialNumber = "I Am a Serial Number"; var request = _fixture.Build <EnterCompetition>() .With(x => x.SerialNumber, badSerialNumber) .Create(); var productServiceMock = new Mock <IProductService>(); productServiceMock.Setup(x => x.IsSerialNumberValid(badSerialNumber)).ReturnsAsync(false); var competitionRepoMock = new Mock <ICompetitionRepository>(); var validator = new EnterCompetitionValidator(productServiceMock.Object, competitionRepoMock.Object); // Act var result = validator.TestValidate(request); // Assert result.ShouldHaveValidationErrorFor(x => x.SerialNumber).WithErrorMessage("You must provide a valid serial number to enter competition."); }
public void EligiableValidSerialNumber() { // Arrange var validSerialNumber = "I Am a Serial Number"; var request = _fixture.Build <EnterCompetition>() .With(x => x.SerialNumber, validSerialNumber) .Create(); var productServiceMock = new Mock <IProductService>(); productServiceMock.Setup(x => x.IsSerialNumberValid(validSerialNumber)).ReturnsAsync(true); var competitionRepoMock = new Mock <ICompetitionRepository>(); competitionRepoMock.Setup(x => x.IsSerialNumberEligible(validSerialNumber)).ReturnsAsync(true); var validator = new EnterCompetitionValidator(productServiceMock.Object, competitionRepoMock.Object); // Act var result = validator.TestValidate(request); // Assert result.ShouldNotHaveValidationErrorFor(x => x.SerialNumber); }
public async Task ValidSerialNumber_NotEligiable() { // Arrange var validSerialNumber = "I Am a Serial Number"; var request = _fixture.Build <EnterCompetition>() .With(x => x.SerialNumber, validSerialNumber) .Create(); var productServiceMock = new Mock <IProductService>(); productServiceMock.Setup(x => x.IsSerialNumberValid(validSerialNumber)).ReturnsAsync(true); var competitionRepoMock = new Mock <ICompetitionRepository>(); competitionRepoMock.Setup(x => x.IsSerialNumberEligible(validSerialNumber)).ReturnsAsync(false); var validator = new EnterCompetitionValidator(productServiceMock.Object, competitionRepoMock.Object); // Act var result = await validator.TestValidateAsync(request); // Assert result.ShouldHaveValidationErrorFor(x => x.SerialNumber).WithErrorMessage("Serial number is no longer eligiable to enter draw."); }
public async Task NoValidationErrors() { // Arrange var request = _fixture.Build <EnterCompetition>() .With(x => x.Email, "*****@*****.**") .With(x => x.AcceptsTerms, true) .With(x => x.ConfirmsCorrectAge, true) .Create(); var productServiceMock = new Mock <IProductService>(); productServiceMock.Setup(x => x.IsSerialNumberValid(request.SerialNumber)).ReturnsAsync(true); var competitionRepoMock = new Mock <ICompetitionRepository>(); competitionRepoMock.Setup(x => x.IsSerialNumberEligible(request.SerialNumber)).ReturnsAsync(true); var validator = new EnterCompetitionValidator(productServiceMock.Object, competitionRepoMock.Object); // Act var result = await validator.TestValidateAsync(request); // Assert result.ShouldNotHaveAnyValidationErrors(); }
public EnterCompetitionValidatorTest() { _fixture = new Fixture(); _validator = new EnterCompetitionValidator(new Mock <IProductService>().Object, new Mock <ICompetitionRepository>().Object); }