Exemple #1
0
        public CustomerNavigationViewModelTests()
        {
            var eventAggregatorMock = new Mock <IEventAggregator>();

            _eventAfterSavedCustomer   = new EventAfterDetailSaved();
            _eventAfterDeletedCustomer = new EventAfterDetailDeleted();
            _eventAfterDetailCloseMock = new Mock <EventAfterDetailClose>();
            _eventOpenNavigationOrDetailViewModelMock = new Mock <EventOpenNavigationOrDetailViewModel>();

            eventAggregatorMock.Setup(ea => ea.GetEvent <EventAfterDetailSaved>()).Returns(_eventAfterSavedCustomer);
            eventAggregatorMock.Setup(ea => ea.GetEvent <EventAfterDetailDeleted>()).Returns(_eventAfterDeletedCustomer);
            eventAggregatorMock.Setup(ea => ea.GetEvent <EventAfterDetailClose>()).Returns(_eventAfterDetailCloseMock.Object);
            eventAggregatorMock.Setup(ea => ea.GetEvent <EventOpenNavigationOrDetailViewModel>()).Returns(_eventOpenNavigationOrDetailViewModelMock.Object);

            _customerLookupDataServiceMock = new Mock <IGenericLookupDataService <Customer> >();

            _lookupItemList = new List <LookupItem>
            {
                new LookupItem {
                    Id = 1, DisplayMember = "Julia"
                },
                new LookupItem {
                    Id = 2, DisplayMember = "Thomas"
                }
            };
            _customerLookupDataServiceMock.Setup(dp => dp.GetEntityLookupAsync()).ReturnsAsync(_lookupItemList);

            _customerNavigationViewModel = new CustomerNavigationViewModel(eventAggregatorMock.Object, _customerLookupDataServiceMock.Object);
        }
        public async void EventAfterDetailSaved_When_Called_From_AccountManagerDetailViewModel_Should_Update_ListAccountManager()
        {
            //Arrange
            var anyInTheMockDefinedCustomerId = 2;
            var eventAfterDetailSaved         = new EventAfterDetailSaved();

            _eventAggregatorMock.Setup(ea => ea.GetEvent <EventAfterDetailSaved>()).Returns(eventAfterDetailSaved);

            _customerDetailViewModel = new CustomerDetailViewModel(_customerRepositoryMock.Object,
                                                                   _eventAggregatorMock.Object,
                                                                   _messageDialogServiceMock.Object,
                                                                   _accountManagerLookupDataServiceMock.Object);

            await _customerDetailViewModel.LoadAsync(anyInTheMockDefinedCustomerId);

            //Mockup list contains 3 entries + 1 NullLookupItem = 4 items:
            Assert.Equal(4, _customerDetailViewModel.LookupItemsAccountManager.Count());

            //Act
            //Change Mockup list to contain 4 entries isntead of 3 before:
            _lookupItemAccountManagerList = new List <LookupItem>
            {
                new LookupItem {
                    Id = 1, DisplayMember = "Carl Manager"
                },
                new LookupItem {
                    Id = 2, DisplayMember = "Fritz Manager"
                },
                new LookupItem {
                    Id = 3, DisplayMember = "Fred Manager"
                },
                new LookupItem {
                    Id = 4, DisplayMember = "Any OtherManager"
                }
            };
            var expectedNumberOfAccountManagersAfterAct = _lookupItemAccountManagerList.Count() + 1; // e Entries + 1 NullLookupItem

            _accountManagerLookupDataServiceMock.Setup(dp => dp.GetEntityLookupAsync()).ReturnsAsync(_lookupItemAccountManagerList);

            //Simulate an EventafterDetailSaved from an AccountManagerDetailViewModel:
            eventAfterDetailSaved.Publish(new EventAfterDetailSavedArgs
            {
                Id            = 4,
                ViewModelName = nameof(AccountManagerDetailViewModel)
            });

            //Assert
            //ListLookupAccountManager should become 5 = 4 entries + 1 NullLookupItem
            Assert.Equal(expectedNumberOfAccountManagersAfterAct, _customerDetailViewModel.LookupItemsAccountManager.Count());
        }