public void Buy_WhenModelMinPurchaseAmountIsGreaterThanMaxPurchaseAmount_ReturnViewResultBuyPracticePage() { var emailSender = new Mock <ISendEmail>().Object; var tempData = new Mock <ITempDataDictionary>().Object; var reCaptcha = MockReCaptchaService.Create(true); var sut = new PracticeController(Enumerable.Empty <IGenerateEmail>(), emailSender, reCaptcha); sut.TempData = tempData; var fixture = new Fixture(); var model = fixture .Build <BuyPracticeModel>() .Without(m => m.ContactPhoneNumber) .Create(); model.MinPurchaseAmount = 100; model.MaxPurchaseAmount = 99; var result = sut.Buy(model); Assert.IsType <Task <IActionResult> >(result); var viewResult = result.Result as ViewResult; Assert.Equal("Buy", viewResult?.ViewName); }
public void Buy_WhenDoingHttpGet_ReturnsView() { var emailSender = new Mock <ISendEmail>().Object; var reCaptcha = new Mock <IRecaptchaService>().Object; var sut = new PracticeController(Enumerable.Empty <IGenerateEmail>(), emailSender, reCaptcha); var result = sut.Buy(); // Assert var viewResult = Assert.IsType <ViewResult>(result); Assert.Equal(nameof(PracticeController.Buy), viewResult.ViewName); }
public void Buy_WhenModelIsValid_ReturnsRedirectToActionResultThankyouPage() { var emailSender = new Mock <ISendEmail>().Object; var reCaptcha = MockReCaptchaService.Create(true); var sut = new PracticeController(Enumerable.Empty <IGenerateEmail>(), emailSender, reCaptcha); var result = sut.Buy(new BuyPracticeModel()); Assert.IsType <Task <IActionResult> >(result); var redirectToActionResult = result.Result as RedirectToActionResult; Assert.Equal("ThankYou", redirectToActionResult?.ControllerName); Assert.Equal("Index", redirectToActionResult?.ActionName); }
public void Buy_WhenReCaptchaFails_ReturnViewResultBuyPracticePage() { var emailSender = new Mock <ISendEmail>().Object; var tempData = new Mock <ITempDataDictionary>().Object; var reCaptcha = MockReCaptchaService.Create(false); var sut = new PracticeController(Enumerable.Empty <IGenerateEmail>(), emailSender, reCaptcha); sut.TempData = tempData; var result = sut.Buy(new BuyPracticeModel()); Assert.IsType <Task <IActionResult> >(result); var viewResult = result.Result as ViewResult; Assert.Equal("Buy", viewResult?.ViewName); }
public void Buy_WhenDoingHttpGet_ContainsCorrectCollectionsAmountOptions() { var emailSender = new Mock <ISendEmail>().Object; var reCaptcha = new Mock <IRecaptchaService>().Object; var sut = new PracticeController(Enumerable.Empty <IGenerateEmail>(), emailSender, reCaptcha); var result = sut.Buy(); // Assert var viewResult = Assert.IsType <ViewResult>(result); var actualCollectionsList = viewResult.ViewData["CollectionsAmount"] as SelectList; var actualCollectionsAmountOptions = actualCollectionsList.Items as IEnumerable <SelectListItem>; var expectedCollectionsAmountOptions = new[] { null, "$0 - $500,000", "$500,000 - $1,000,000", "$1,500,000 - $2,000,000", "$2,000,000 +" }; Assert.Equal(expectedCollectionsAmountOptions, actualCollectionsAmountOptions.Select(x => x.Value)); }
public void Buy_WhenModelMinPurchaseAmountIsLessThanMaxPurchaseAmount_ModelStateIsValid() { var emailSender = new Mock <ISendEmail>().Object; var reCaptcha = MockReCaptchaService.Create(true); var sut = new PracticeController(Enumerable.Empty <IGenerateEmail>(), emailSender, reCaptcha); var fixture = new Fixture(); var model = fixture .Build <BuyPracticeModel>() .Without(m => m.ContactPhoneNumber) .With(m => m.MinPurchaseAmount, 99) .With(m => m.MaxPurchaseAmount, 100) .Create(); Assert.True(sut.ModelState.IsValid); var unused = sut.Buy(model); Assert.True(sut.ModelState.IsValid); }
public void Buy_WhenModelMinPurchaseAmountIsLessThanMaxPurchaseAmount_ReturnsRedirectToActionResultThankyouPage() { var emailSender = new Mock <ISendEmail>().Object; var reCaptcha = MockReCaptchaService.Create(true); var sut = new PracticeController(Enumerable.Empty <IGenerateEmail>(), emailSender, reCaptcha); var fixture = new Fixture(); var model = fixture .Build <BuyPracticeModel>() .Without(m => m.ContactPhoneNumber) .With(m => m.MinPurchaseAmount, 99) .With(m => m.MaxPurchaseAmount, 100) .Create(); var result = sut.Buy(model); Assert.IsType <Task <IActionResult> >(result); var redirectToActionResult = result.Result as RedirectToActionResult; Assert.Equal("ThankYou", redirectToActionResult?.ControllerName); Assert.Equal("Index", redirectToActionResult?.ActionName); }