public void PersonDetailsPresenter_OkButtonPressedInViewMode_ClosesView()
        {
            // Arrange
            IPersonDetailsPresenter presenter = new PersonDetailsPresenter(new FakeViewFactory(), new FakePersonManager());
            presenter.ShowPerson(PersonObjectMother.GetPerson(TestPeople.Ted)); // sets to view mode

            //Act
            presenter.OkButtonPressed();

            //Assert
            FakePersonDetailsView view = (FakePersonDetailsView)presenter.View;
            Assert.IsTrue(view.FormClosed, "Form not closed");
        }
        public void PersonDetailsPresenter_ShowPerson_PassesCorrectDetailsToView()
        {
            // Arrange
            FakePersonManager manager = new FakePersonManager();
            FakePersonDetailsView view = new FakePersonDetailsView();
            FakeViewFactory factory = new FakeViewFactory(view);
            IPersonDetailsPresenter presenter = new PersonDetailsPresenter(factory, manager);

            //Act
            presenter.ShowPerson(PersonObjectMother.GetPerson(TestPeople.Bill));

            //Assert
            Assert.AreEqual(PersonObjectMother.GetPerson(TestPeople.Bill).Forename, view.Forename, "Forename not set in view");
            Assert.AreEqual(PersonObjectMother.GetPerson(TestPeople.Bill).Surname, view.Surname, "Surname not set in view");
            Assert.AreEqual(PersonObjectMother.GetPerson(TestPeople.Bill).BirthdayDay.ToString(), view.BirthdayDay, "BirthdayDay not set in view");
            Assert.AreEqual(PersonObjectMother.GetPerson(TestPeople.Bill).BirthdayMonth.ToString(), view.BirthdayMonth, "BirthdayMonth not set in view");
        }
        public void PersonDetailsPresenter_ShowPerson_SetsViewTitle()
        {
            // Arrange
            FakePersonManager manager = new FakePersonManager();
            FakePersonDetailsView view = new FakePersonDetailsView();
            FakeViewFactory factory = new FakeViewFactory(view);
            IPersonDetailsPresenter presenter = new PersonDetailsPresenter(factory, manager);

            //Act
            presenter.ShowPerson(new Person());

            //Assert
            Assert.AreEqual("View Person", view.Title, "Title not set in view");
        }