Exemple #1
0
    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);
    }
Exemple #2
0
        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);
        }
Exemple #3
0
        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 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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
    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));
        }