public void PersonViewModelIsValidTest() { var personView = new MockPersonView(); var personViewModel = new PersonViewModel(personView); Assert.IsTrue(personViewModel.IsValid); AssertHelper.PropertyChangedEvent(personViewModel, x => x.IsValid, () => personViewModel.IsValid = false); Assert.IsFalse(personViewModel.IsValid); }
public void PersonViewModelCommandsTest() { MockPersonView personView = new MockPersonView(); PersonViewModel personViewModel = new PersonViewModel(personView); DelegateCommand mockCommand = new DelegateCommand(() => { }); AssertHelper.PropertyChangedEvent(personViewModel, x => x.CreateNewEmailCommand, () => personViewModel.CreateNewEmailCommand = mockCommand); Assert.AreEqual(mockCommand, personViewModel.CreateNewEmailCommand); }
public void PersonViewModelIsValidTest() { MockPersonView personView = new MockPersonView(); PersonViewModel personViewModel = new PersonViewModel(personView); Assert.IsTrue(personViewModel.IsValid); AssertHelper.PropertyChangedEvent(personViewModel, x => x.IsValid, () => personViewModel.IsValid = false); Assert.IsFalse(personViewModel.IsValid); }
public void CreateNewEmailTest() { Person harry = new Person() { Firstname = "Harry", Email = "*****@*****.**" }; Person ron = new Person() { Firstname = "Ron", Email = "Wrong Address" }; IEntityService entityService = Container.GetExportedValue <IEntityService>(); entityService.Persons.Add(harry); entityService.Persons.Add(ron); PersonController personController = Container.GetExportedValue <PersonController>(); personController.Initialize(); MockPersonListView personListView = Container.GetExportedValue <MockPersonListView>(); PersonListViewModel personListViewModel = ViewHelper.GetViewModel <PersonListViewModel>(personListView); MockPersonView personView = Container.GetExportedValue <MockPersonView>(); PersonViewModel personViewModel = ViewHelper.GetViewModel <PersonViewModel>(personView); ICommand command = personListViewModel.CreateNewEmailCommand; Assert.AreEqual(command, personViewModel.CreateNewEmailCommand); MockEmailService emailService = Container.GetExportedValue <MockEmailService>(); command.Execute(harry); Assert.AreEqual(harry.Email, emailService.ToEmailAddress); // An error message should occur when the email address is invalid. MockMessageService messageService = Container.GetExportedValue <MockMessageService>(); messageService.Clear(); emailService.ToEmailAddress = null; command.Execute(ron); Assert.AreEqual(MessageType.Error, messageService.MessageType); Assert.AreEqual(Resources.CorrectEmailAddress, messageService.Message); Assert.IsNull(emailService.ToEmailAddress); // An error message should occur when no email address was entered. messageService.Clear(); emailService.ToEmailAddress = null; ron.Email = null; command.Execute(ron); Assert.AreEqual(MessageType.Error, messageService.MessageType); Assert.AreEqual(Resources.CorrectEmailAddress, messageService.Message); Assert.IsNull(emailService.ToEmailAddress); }
public void PersonViewModelPersonTest() { MockPersonView personView = new MockPersonView(); PersonViewModel personViewModel = new PersonViewModel(personView); Assert.IsFalse(personViewModel.IsEnabled); Person person = new Person(); AssertHelper.PropertyChangedEvent(personViewModel, x => x.Person, () => personViewModel.Person = person); Assert.AreEqual(person, personViewModel.Person); Assert.IsTrue(personViewModel.IsEnabled); AssertHelper.PropertyChangedEvent(personViewModel, x => x.IsEnabled, () => personViewModel.Person = null); Assert.IsNull(personViewModel.Person); Assert.IsFalse(personViewModel.IsEnabled); }
public void PersonViewModelPersonTest() { var personView = new MockPersonView(); var personViewModel = new PersonViewModel(personView); Assert.IsFalse(personViewModel.IsEnabled); var person = new Person(); AssertHelper.PropertyChangedEvent(personViewModel, x => x.Person, () => personViewModel.Person = person); Assert.AreEqual(person, personViewModel.Person); Assert.IsTrue(personViewModel.IsEnabled); AssertHelper.PropertyChangedEvent(personViewModel, x => x.IsEnabled, () => personViewModel.Person = null); Assert.IsNull(personViewModel.Person); Assert.IsFalse(personViewModel.IsEnabled); }
public void AddAndRemoveTest() { Person harry = new Person() { Firstname = "Harry" }; Person ron = new Person() { Firstname = "Ron" }; IEntityService entityService = Container.GetExportedValue <IEntityService>(); entityService.Persons.Add(harry); entityService.Persons.Add(ron); PersonController personController = Container.GetExportedValue <PersonController>(); personController.Initialize(); MockPersonListView personListView = Container.GetExportedValue <MockPersonListView>(); PersonListViewModel personListViewModel = ViewHelper.GetViewModel <PersonListViewModel>(personListView); personListViewModel.PersonCollectionView = personListViewModel.Persons; MockPersonView personView = Container.GetExportedValue <MockPersonView>(); PersonViewModel personViewModel = ViewHelper.GetViewModel <PersonViewModel>(personView); // Add a new Person Assert.AreEqual(2, entityService.Persons.Count); Assert.IsTrue(personListViewModel.AddNewCommand.CanExecute(null)); personListViewModel.AddNewCommand.Execute(null); Assert.AreEqual(3, entityService.Persons.Count); // Check that the new Person is selected and the first control gets the focus Assert.AreEqual(entityService.Persons.Last(), personViewModel.Person); Assert.IsTrue(personListView.FirstCellHasFocus); // Simulate an invalid UI input state => the user can't add more persons AssertHelper.CanExecuteChangedEvent(personListViewModel.AddNewCommand, () => personViewModel.IsValid = false); Assert.IsFalse(personListViewModel.AddNewCommand.CanExecute(null)); Assert.IsFalse(personListViewModel.RemoveCommand.CanExecute(null)); // Remove the last two Persons at once personViewModel.IsValid = true; personListView.FirstCellHasFocus = false; personListViewModel.AddSelectedPerson(ron); personListViewModel.AddSelectedPerson(entityService.Persons.Last()); Assert.IsTrue(personListViewModel.RemoveCommand.CanExecute(null)); personListViewModel.RemoveCommand.Execute(null); Assert.IsTrue(entityService.Persons.SequenceEqual(new Person[] { harry })); Assert.AreEqual(harry, personViewModel.Person); Assert.IsTrue(personListView.FirstCellHasFocus); // Deselect all Persons => the Remove command must be deactivated AssertHelper.CanExecuteChangedEvent(personListViewModel.RemoveCommand, () => { personListViewModel.SelectedPersons.ToList().ForEach(x => personListViewModel.RemoveSelectedPerson(x)); personListViewModel.SelectedPerson = null; }); Assert.IsFalse(personListViewModel.RemoveCommand.CanExecute(null)); }