public void PersonListPresenter_AddButtonPressed_ReloadsPersonList()
        {
            // Arrange
            List <Person> personList = new List <Person>()
            {
                PersonObjectMother.GetPerson(TestPeople.Sue),
                PersonObjectMother.GetPerson(TestPeople.Bill)
            };

            ClientServiceLocator.PersonDetailsPresenter = new FakePersonDetailsPresenter();

            FakePersonManager manager = new FakePersonManager();

            manager.PersonList = personList;

            FakePersonListView   listView      = new FakePersonListView();
            IPersonListPresenter listPresenter = new PersonListPresenter(listView, manager);

            ClientServiceLocator.PersonDetailsPresenter = new FakePersonDetailsPresenter();

            //Act
            listView.PressAddButton();

            //Assert
            Assert.AreEqual(personList, listView.PersonList, "PersonList in View does not match that from the Manager");
        }
        public void PersonListPresenter_LoadButtonPressed_ShowsWaitCursorWhileDataLoading()
        {
            // Arrange
            List <Person> personList = new List <Person>()
            {
                PersonObjectMother.GetPerson(TestPeople.Ted),
                PersonObjectMother.GetPerson(TestPeople.Sue)
            };

            FakePersonManager manager = new FakePersonManager();

            manager.PersonList = personList;

            FakePersonListView   view      = new FakePersonListView();
            IPersonListPresenter presenter = new PersonListPresenter(view, manager);

            ClientServiceLocator.PersonDetailsPresenter = new FakePersonDetailsPresenter();

            DateTime startTime = DateTime.Now;

            //Act
            view.PressLoadButton();

            //Assert
            Assert.Greater(view.WaitCursorSetTime, startTime, "Wait cursor not set after start time");
            Assert.Greater(view.DefaultCursorSetTime, view.WaitCursorSetTime, "Default cursor not set after wait cursor set");
        }
        public void PersonListPresenter_DeleteButtonPressed_DeletesSelectedPersonFromRepository()
        {
            // Arrange
            List <Person> personList = new List <Person>()
            {
                PersonObjectMother.GetPerson(TestPeople.Sue),
                PersonObjectMother.GetPerson(TestPeople.Bill)
            };

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

            view.PersonList = personList;

            IPersonListPresenter presenter = new PersonListPresenter(view, manager);

            ClientServiceLocator.PersonDetailsPresenter = new FakePersonDetailsPresenter();

            //Act
            view.PressDeleteButton();

            //Assert
            Assert.IsNotNull(manager.DeletedPerson, "Person not deleted from repository");
            Assertions.AssertPeopleAreEqual(personList[0], manager.DeletedPerson);
        }
        public void PersonListView_GetSelectedListItems_ReturnsCorrectPerson()
        {
            // Arrange
            PersonListView view = new PersonListView();

            List <Person> personList = new List <Person>();

            personList.Add(PersonObjectMother.GetPerson(TestPeople.Bill));
            personList.Add(PersonObjectMother.GetPerson(TestPeople.Ted));
            personList.Add(PersonObjectMother.GetPerson(TestPeople.Sue));

            ListBoxTester listTester = new ListBoxTester("lbxPeople");

            //Act
            view.SetPersonList(personList);
            view.Show();

            // select second person in listbox
            listTester.SetSelected(1, true);

            // Assert
            Assert.AreEqual(personList[1], view.GetSelectedListItem(), "Correct person not returned");

            // Cleanup
            view.Close();
        }
        public void PersonListView_SetPersonList_DisplaysCorrectPeople()
        {
            // Arrange
            FakePersonListPresenter presenter = new FakePersonListPresenter();

            ClientServiceLocator.PersonListPresenter = presenter;
            PersonListView view = new PersonListView();

            List <Person> personList = new List <Person>();

            personList.Add(PersonObjectMother.GetPerson(TestPeople.Bill));
            personList.Add(PersonObjectMother.GetPerson(TestPeople.Ted));

            view.Show();
            ListBoxTester listTester = new ListBoxTester("lbxPeople");

            //Act
            view.SetPersonList(personList);

            // Assert
            Assert.AreEqual(2, listTester.Properties.Items.Count, "Incorretc number of people in ListBox");
            Assert.Contains(personList[0], listTester.Properties.Items, "Person 0 not found in list");
            Assert.Contains(personList[1], listTester.Properties.Items, "Person 1 not found in list");

            // Cleanup
            view.Close();
        }
예제 #6
0
        public void PersonDetailsPresenter_OkButtonPressedInEditMode_ClosesView()
        {
            // Arrange
            IPersonDetailsPresenter presenter = new PersonDetailsPresenter(new FakeViewFactory(), new FakePersonManager());

            presenter.EditPerson(PersonObjectMother.GetPerson(TestPeople.Ted)); // sets to edit mode

            //Act
            presenter.OkButtonPressed();

            //Assert
            FakePersonDetailsView view = (FakePersonDetailsView)presenter.View;

            Assert.IsTrue(view.FormClosed, "Form not closed");
        }
예제 #7
0
        public void PersonDetailsPresenter_EditPerson_PassesCorrectDetailsToView()
        {
            // Arrange
            FakePersonManager       manager   = new FakePersonManager();
            FakePersonDetailsView   view      = new FakePersonDetailsView();
            FakeViewFactory         factory   = new FakeViewFactory(view);
            IPersonDetailsPresenter presenter = new PersonDetailsPresenter(factory, manager);

            //Act
            presenter.EditPerson(PersonObjectMother.GetPerson(TestPeople.Ted));

            //Assert
            Assert.AreEqual(PersonObjectMother.GetPerson(TestPeople.Ted).Forename, view.Forename, "Forename not set in view");
            Assert.AreEqual(PersonObjectMother.GetPerson(TestPeople.Ted).Surname, view.Surname, "Surname not set in view");
            Assert.AreEqual(PersonObjectMother.GetPerson(TestPeople.Ted).BirthdayDay.ToString(), view.BirthdayDay, "BirthdayDay not set in view");
            Assert.AreEqual(PersonObjectMother.GetPerson(TestPeople.Ted).BirthdayMonth.ToString(), view.BirthdayMonth, "BirthdayMonth not set in view");
        }
예제 #8
0
        public void PersonDetailsPresenter_OkButtonPressedInEditMode_UpdatesPersonInManager()
        {
            // Arrange
            FakePersonManager       manager   = new FakePersonManager();
            IPersonDetailsPresenter presenter = new PersonDetailsPresenter(new FakeViewFactory(), manager);

            Person p = PersonObjectMother.GetPerson(TestPeople.Sue);

            presenter.EditPerson(p);

            //Act
            presenter.OkButtonPressed();

            //Assert
            Person updatedPerson = manager.UpdatedPerson;

            Assert.IsNotNull(updatedPerson, "The person was not updated in the manager");

            Assertions.AssertPeopleAreEqual(p, updatedPerson);
        }
        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_LoadButtonPressed_SetsPersonList()
        {
            // Arrange
            List <Person> personList = new List <Person>()
            {
                PersonObjectMother.GetPerson(TestPeople.Ted),
                PersonObjectMother.GetPerson(TestPeople.Sue)
            };

            FakePersonManager manager = new FakePersonManager();

            manager.PersonList = personList;

            FakePersonListView   view      = new FakePersonListView();
            IPersonListPresenter presenter = new PersonListPresenter(view, manager);

            ClientServiceLocator.PersonDetailsPresenter = new FakePersonDetailsPresenter();

            //Act
            view.PressLoadButton();

            //Assert
            Assert.AreEqual(personList, view.PersonList, "PersonList in View does not match that from the Manager");
        }