public void RemovingItemMessageHandler_WhenInvoked_RemovesItemFromNewspapersCollection() { // Arrange var repository = GetNewspaperRepository(); var model1 = new Newspaper {Name = "Paper 1"}; var model2 = new Newspaper {Name = "Paper 2"}; var model3 = new Newspaper {Name = "Paper 3"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var paperItemVm2 = new NewspaperItemViewModel(repository) {Model = model2}; var paperItemVm3 = new NewspaperItemViewModel(repository) {Model = model3}; var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.Newspapers.Add(paperItemVm1); collectionViewModel.Newspapers.Add(paperItemVm2); collectionViewModel.Newspapers.Add(paperItemVm3); collectionViewModel.CurrentItem.Should().Be(paperItemVm3, "CurrentItem should be the last item added."); collectionViewModel.Newspapers.Count.Should().Be(3, "There are now three items in the list."); var message = new RemovingNewspaperItemMessage(paperItemVm2); // Act Messenger.Default.Send<RemovingNewspaperItemMessage>(message); // Assert collectionViewModel.Newspapers.Count.Should().Be(2, "An item should have been removed from the collection."); collectionViewModel.Newspapers.ShouldBeEquivalentTo(new List<NewspaperItemViewModel>() {paperItemVm1, paperItemVm3}, "Item paperItemVm2 was removed, leaving paperItemVm1 and paperItemVm3 in the list."); }
public void RemovingItemMessageHandler_WhenInvoked_SendsCurrentItemChangedMessage() { // Arrange var itemChangedMessageReceived = false; NewspaperItemViewModel changedItemViewModel = null; var repository = GetNewspaperRepository(); var model1 = new Newspaper {Name = "Paper 1"}; var model2 = new Newspaper {Name = "Paper 2"}; var model3 = new Newspaper {Name = "Paper 3"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var paperItemVm2 = new NewspaperItemViewModel(repository) {Model = model2}; var paperItemVm3 = new NewspaperItemViewModel(repository) {Model = model3}; var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.Newspapers.Add(paperItemVm1); collectionViewModel.Newspapers.Add(paperItemVm2); collectionViewModel.Newspapers.Add(paperItemVm3); collectionViewModel.CurrentItem.Should().Be(paperItemVm3, "CurrentItem should be the last item added."); collectionViewModel.Newspapers.Count.Should().Be(3, "There are now three items in the list."); var message = new RemovingNewspaperItemMessage(paperItemVm2); Messenger.Default.Register<CurrentNewspaperItemChangedMessage>(this, (msg) => { itemChangedMessageReceived = true; changedItemViewModel = msg.ItemViewModel; }); // Act Messenger.Default.Send<RemovingNewspaperItemMessage>(message); // Assert itemChangedMessageReceived.Should().Be(true, "The message was received from the collection view model."); changedItemViewModel.Should().Be(collectionViewModel.CurrentItem, "The item sent is the current item from the collection view model."); }
public void RemovingItemMessageHandler_WhenInvoked_CallsRepositoryDeleteWithDeletedItem() { // Arrange var repository = GetNewspaperRepository(); var model1 = new Newspaper {Name = "Paper 1"}; var model2 = new Newspaper {Name = "Paper 2"}; var model3 = new Newspaper {Name = "Paper 3"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var paperItemVm2 = new NewspaperItemViewModel(repository) {Model = model2}; var paperItemVm3 = new NewspaperItemViewModel(repository) {Model = model3}; var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.Newspapers.Add(paperItemVm1); collectionViewModel.Newspapers.Add(paperItemVm2); collectionViewModel.Newspapers.Add(paperItemVm3); collectionViewModel.CurrentItem.Should().Be(paperItemVm3, "CurrentItem should be the last item added."); collectionViewModel.Newspapers.Count.Should().Be(3, "There are now three items in the list."); var message = new RemovingNewspaperItemMessage(paperItemVm2); // Act Messenger.Default.Send<RemovingNewspaperItemMessage>(message); // Assert repository.Received().Save(model2); }