public void ClientServiceLocator_GetPersonDetailsPresenter_ReturnsCorrectObject()
        {
            //Arrange
            FakePersonDetailsPresenter presenter = new FakePersonDetailsPresenter();

            //Act
            ClientServiceLocator.PersonDetailsPresenter = presenter;

            //Assert
            Assert.AreSame(presenter, ClientServiceLocator.PersonDetailsPresenter, "Presenter not set properly");
        }
        public void ClientServiceLocator_GetPersonDetailsPresenter_ReturnsCorrectObject()
        {
            //Arrange
            FakePersonDetailsPresenter presenter = new FakePersonDetailsPresenter();

            //Act
            ClientServiceLocator.PersonDetailsPresenter = presenter;

            //Assert
            Assert.AreSame(presenter, ClientServiceLocator.PersonDetailsPresenter, "Presenter not set properly");
        }
        public void PersonListPresenter_AddButtonPressed_CallsAddPerson()
        {
            // Arrange
            FakePersonManager manager = new FakePersonManager();
            FakePersonListView listView = new FakePersonListView();
            IPersonListPresenter listPresenter = new PersonListPresenter(listView, manager);
            FakePersonDetailsPresenter detailsPresenter = new FakePersonDetailsPresenter();
            ClientServiceLocator.PersonDetailsPresenter = detailsPresenter;

            //Act
            listView.PressAddButton();

            //Assert
            Assert.IsTrue(detailsPresenter.AddPersonCalled, "Add not called on Presenter");
        }
        public void PersonListPresenter_AddButtonPressed_CallsAddPerson()
        {
            // Arrange
            FakePersonManager          manager          = new FakePersonManager();
            FakePersonListView         listView         = new FakePersonListView();
            IPersonListPresenter       listPresenter    = new PersonListPresenter(listView, manager);
            FakePersonDetailsPresenter detailsPresenter = new FakePersonDetailsPresenter();

            ClientServiceLocator.PersonDetailsPresenter = detailsPresenter;

            //Act
            listView.PressAddButton();

            //Assert
            Assert.IsTrue(detailsPresenter.AddPersonCalled, "Add not called on Presenter");
        }
        public void PersonListPresenter_EditButtonPressed_CallsShowView()
        {
            // Arrange
            FakePersonManager  manager  = new FakePersonManager();
            FakePersonListView listView = new FakePersonListView();

            listView.PersonList = new List <Person>()
            {
                PersonObjectMother.GetPerson(TestPeople.Bill)
            };
            IPersonListPresenter       listPresenter    = new PersonListPresenter(listView, manager);
            FakePersonDetailsPresenter detailsPresenter = new FakePersonDetailsPresenter();

            ClientServiceLocator.PersonDetailsPresenter = detailsPresenter;

            //Act
            listView.PressEditButton();

            //Assert
            Assert.IsTrue(detailsPresenter.ShowViewCalled, "Show not called on Presenter");
        }
        public void PersonListPresenter_EditButtonPressed_PassesDetailsToPersonDetailsPresenter()
        {
            // Arrange
            List <Person> personList = new List <Person>()
            {
                PersonObjectMother.GetPerson(TestPeople.Ted)
            };

            FakePersonManager  manager  = new FakePersonManager();
            FakePersonListView listView = new FakePersonListView();

            listView.SetPersonList(personList);
            IPersonListPresenter       listPresenter    = new PersonListPresenter(listView, manager);
            FakePersonDetailsPresenter detailsPresenter = new FakePersonDetailsPresenter();

            ClientServiceLocator.PersonDetailsPresenter = detailsPresenter;

            //Act
            listView.PressEditButton();

            //Assert
            Assertions.AssertPeopleAreEqual(PersonObjectMother.GetPerson(TestPeople.Ted), detailsPresenter.EditedPerson);
        }
        public void PersonListPresenter_EditButtonPressed_PassesDetailsToPersonDetailsPresenter()
        {
            // Arrange
            List<Person> personList = new List<Person>() { PersonObjectMother.GetPerson(TestPeople.Ted) };

            FakePersonManager manager = new FakePersonManager();
            FakePersonListView listView = new FakePersonListView();
            listView.SetPersonList(personList);
            IPersonListPresenter listPresenter = new PersonListPresenter(listView, manager);
            FakePersonDetailsPresenter detailsPresenter = new FakePersonDetailsPresenter();
            ClientServiceLocator.PersonDetailsPresenter = detailsPresenter;

            //Act
            listView.PressEditButton();

            //Assert
            Assertions.AssertPeopleAreEqual(PersonObjectMother.GetPerson(TestPeople.Ted), detailsPresenter.EditedPerson);
        }
        public void PersonListPresenter_EditButtonPressed_CallsShowView()
        {
            // Arrange
            FakePersonManager manager = new FakePersonManager();
            FakePersonListView listView = new FakePersonListView();
            listView.PersonList = new List<Person>() { PersonObjectMother.GetPerson(TestPeople.Bill) };
            IPersonListPresenter listPresenter = new PersonListPresenter(listView, manager);
            FakePersonDetailsPresenter detailsPresenter = new FakePersonDetailsPresenter();
            ClientServiceLocator.PersonDetailsPresenter = detailsPresenter;

            //Act
            listView.PressEditButton();

            //Assert
            Assert.IsTrue(detailsPresenter.ShowViewCalled, "Show not called on Presenter");
        }