public void EndToEnd_BothViews_DataIsStoredRetrievedApprovedAndSaved() { const string firstName = "John"; const string lastName = "Smith"; const string gymMembershipId = "ABCD1234"; var member = new Member { FirstName = firstName, LastName = lastName, GymMembershipId = gymMembershipId }; var sutPage1 = new GatherMemberInfoPresenter(_tempDataRepository, _gatherMemberInfoView); var fakeView1 = (FakeGatherMemberInfoView)_gatherMemberInfoView; fakeView1.TriggerEvent_GatherMemberInfo(member); Assert.IsTrue(fakeView1.GoToNextViewMethodIsCalled); var sutPage2 = new RenewMembershipPresenter(_tempDataRepository, _nationalFitnessGateway, _ccProcessingGateway, _memberRepository, _renewMembershipView); var fakeView2 = (FakeRenewMembershipView)_renewMembershipView; fakeView2.TriggerEvent_Initialize(); Assert.AreEqual(member, _renewMembershipView.Member); fakeView2.TriggerEvent_RenewMembership(); const bool isPaid = true; var expectedFinalMessage = ApplicationConstants.FormatApprovalMessageForMember(member, isPaid); Assert.AreEqual(member, _renewMembershipView.Member); Assert.AreEqual(expectedFinalMessage, fakeView2.Message); }
public void InitializeEvent_NoInput_RepopulatesViewFromTempRepository() { // define out expectations (of how the Presenter will coordinate the interfaces _renewMembershipView.Initialize += null; var initializeEvent = LastCall.IgnoreArguments().GetEventRaiser(); _renewMembershipView.RenewMembership += null; LastCall.IgnoreArguments(); const string firstName = "Sally"; const string lastName = "Wong"; const string gymMembershipId = "AB1234"; var member = new Member { FirstName = firstName, LastName = lastName, GymMembershipId = gymMembershipId }; Expect.Call(_tempDataRepository.GetMemberValues()).Return(member); // the retrieved member information from the _tempDataRepository // is now assigned to the view (where it's properties can be assigned to various controls) _renewMembershipView.Member = member; _mockRepository.ReplayAll(); var sut = new RenewMembershipPresenter(_tempDataRepository, _nationalFitnessGateway, _ccProcessingGateway, _memberRepository, _renewMembershipView); initializeEvent.Raise(_renewMembershipView, EventArgs.Empty); _mockRepository.VerifyAll(); }
public void RenewMembershipEvent_MemberInput_InstructsToGoToNextView() { // define out expectations (of how the Presenter will coordinate the interfaces _renewMembershipView.Initialize += null; LastCall.IgnoreArguments(); _renewMembershipView.RenewMembership += null; var renewMembershipEvent = LastCall.IgnoreArguments().GetEventRaiser(); const string firstName = "Sally"; const string lastName = "Wong"; const string gymMembershipId = "AB1234"; var member = new Member { FirstName = firstName, LastName = lastName, GymMembershipId = gymMembershipId }; Expect.Call(_tempDataRepository.GetMemberValues()).Return(member); var nationalFitnessResultsDto = new NationalFitnessResultsDTO { IsVerified = true }; Expect.Call(_nationalFitnessGateway.VerifyMember(member)).Return(nationalFitnessResultsDto); const bool isPaid = true; Expect.Call(_ccProcessingGateway.PayDuesByMembershipId(member.GymMembershipId)).Return(isPaid); _memberRepository.SaveMember(member); _renewMembershipView.Message = ApplicationConstants.FormatApprovalMessageForMember(member, isPaid); _mockRepository.ReplayAll(); var sut = new RenewMembershipPresenter(_tempDataRepository, _nationalFitnessGateway, _ccProcessingGateway, _memberRepository, _renewMembershipView); renewMembershipEvent.Raise(_renewMembershipView, EventArgs.Empty); _mockRepository.VerifyAll(); }