public void Details_GivenIdOfUnknownDebtor_ThrowsException() { // Arrange var fakeDebtorRepository = A.Fake<IDebtorRepository>(); A.CallTo(() => fakeDebtorRepository.FindById(2)).Returns(null); var controller = new DebtorsController(fakeDebtorRepository); // Act, Assert Assert.Throws<InvalidOperationException>(() => controller.Details(2)); }
public void Details_GivenIdOfKnownDebtor_ReturnsAViewResult() { // Arrange var fakeDebtorRepository = A.Fake<IDebtorRepository>(); var stubDomainDebtor = DebtorBuilder.Build(2); A.CallTo(() => fakeDebtorRepository.FindById(2)).Returns(stubDomainDebtor); var controller = new DebtorsController(fakeDebtorRepository); // Act var actionResult = controller.Details(2); // Assert Assert.That(actionResult, Is.InstanceOf<ViewResult>()); }
public void Details_GivenIdOfKnownDebtor_ReturnsAViewResultWithCorrectViewModelType() { // Arrange var fakeDebtorRepository = A.Fake<IDebtorRepository>(); var stubDomainDebtor = DebtorBuilder.Build(2); A.CallTo(() => fakeDebtorRepository.FindById(2)).Returns(stubDomainDebtor); var controller = new DebtorsController(fakeDebtorRepository); // Act var viewResult = controller.Details(2) as ViewResult; // Assert Assert.That(viewResult.Model, Is.InstanceOf<DebtorViewModel>()); }
public void DeleteMethodPost_GivenIdOfKnownDebtor_DeletesObjectInRepository() { // Arrange var fakeDebtorRepository = A.Fake<IDebtorRepository>(); var stubDomainDebtor = DebtorBuilder.Build(2); A.CallTo(() => fakeDebtorRepository.FindById(2)).Returns(stubDomainDebtor); var controller = new DebtorsController(fakeDebtorRepository); // Act controller.DeletePost(2); // Assert A.CallTo(() => fakeDebtorRepository.MakeTransient(A<Debtor>.That.Matches(entity => entity.Id == 2))).MustHaveHappened(Repeated.Exactly.Once); }
public void EditMethodPost_GivenInvalidEditModel_DoesNotCallMakePersistentOnTheDebtorRepository() { // Arrange var fakeDebtorRepository = A.Fake<IDebtorRepository>(); var controller = new DebtorsController(fakeDebtorRepository); var editModelDebtor = new DebtorEditModel {CompanyName = "MoneyHelper"}; controller.ModelState.AddModelError("some_key", @"some_error_message"); // Act var viewResult = controller.Edit(editModelDebtor) as ViewResult; // Assert A.CallTo(() => fakeDebtorRepository.MakePersistent(A<Debtor>.Ignored)).MustNotHaveHappened(); Assert.That(viewResult.ViewName, Is.EqualTo("CreateOrEdit")); }