public void AddAdvertisement_WithValidAd_AddsCurrentNewspaperItemToNewspapersCollectionInTheAddedAd() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var detailViewModel = new NewspaperDetailViewModel(repository); var collectionViewModel = new NewspaperCollectionViewModel(repository); var paperModel1 = new Newspaper() {Name = "New paper 1"}; var paperItemViewModel1 = new NewspaperItemViewModel(repository) {Model = paperModel1}; var adModel = new Advertisement() {Name = "Ad 1 Name", Text = "Ad 1 text."}; var adItemViewModel = new AdvertisementItemViewModel(repository) {Model = adModel}; collectionViewModel.Newspapers.Add(paperItemViewModel1); collectionViewModel.CurrentItem.Should().Be(paperItemViewModel1, "The current item is the item that was added."); detailViewModel.ItemViewModel.Should().Be(collectionViewModel.CurrentItem, "The detail view model references the collection's current item."); paperItemViewModel1.Advertisements.Count.Should().Be(0, "No newspapers are referenced in the advertisement."); adItemViewModel.Newspapers.Count.Should().Be(0, "There are no papers in this ad's collection."); // Act paperItemViewModel1.Advertisements.Add(adItemViewModel); // Assert paperItemViewModel1.Advertisements.Count.Should().Be(1, "One item was added"); adItemViewModel.Newspapers.Count.Should().Be(1, "One newspaper reference was added to this advertisement."); adItemViewModel.Newspapers.ToList().First().Should().Be(collectionViewModel.CurrentItem, "The paper added to the advertisment's newspaper collection was the Newspaper collection's CurrentItem"); }
public void DeleteCommand_WhenItemDeletedFromTheCollection_CallsRepositoryDelete() { var repository = Substitute.For<INewspaperAdRepository>(); repository.GetAllAdvertisements().Returns(new List<Advertisement>()); bool deleteCalled; Newspaper deletedModel; var model1 = new Newspaper {Name = "Paper 1"}; var model2 = new Newspaper {Name = "Paper 2"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var paperItemVm2 = new NewspaperItemViewModel(repository) {Model = model2}; var collectionViewModel = new NewspaperCollectionViewModel(repository); repository.When(x => x.Delete(model1)).Do(x => RepositoryUpdateFields(x, out deleteCalled, out deletedModel)); collectionViewModel.Newspapers.Add(paperItemVm1); collectionViewModel.Newspapers.Add(paperItemVm2); // Act collectionViewModel.Newspapers.Remove(paperItemVm1); paperItemVm1.DbStatus.Should().Be(DbModificationState.Deleted, "State of object should be deleted."); // Assert repository.Received().Save(model1); }
public void AddNewspaper_WithValidNewspaper_AddsAdvertisementToNewspaperAdvertisementssCollection() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var advertisementModel = new Advertisement(); var paperModel = new Newspaper(); var newspaperItemViewModel = new NewspaperItemViewModel(repository) {Model = paperModel}; var adDetailViewModel = new NewspaperDetailViewModel(repository) {ItemViewModel = newspaperItemViewModel}; var detailViewModel = new AdvertisementDetailViewModel(repository) {ItemViewModel = new AdvertisementItemViewModel(repository) {Model = advertisementModel}}; // Act detailViewModel.Newspapers.Add(newspaperItemViewModel); // Assert detailViewModel.Newspapers.ToList().First().Advertisements.Contains(detailViewModel.ItemViewModel); }
public void AddNewspaper_WithValidNewspaper_AddsNewspaperToNewspapersCollection() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var advertisementModel = new Advertisement(); var paperModel = new Newspaper(); var newspaperItemViewModel = new NewspaperItemViewModel(repository) {Model = paperModel}; var adDetailViewModel = new NewspaperDetailViewModel(repository) {ItemViewModel = newspaperItemViewModel}; var detailViewModel = new AdvertisementDetailViewModel(repository) {ItemViewModel = new AdvertisementItemViewModel(repository) {Model = advertisementModel}}; // Act detailViewModel.Newspapers.Add(newspaperItemViewModel); // Assert detailViewModel.Newspapers.Count.Should().Be(1, "There should be one item in the collection"); }
public void CurrentItem_AfterDeletingLastItemOnNewspapersCollection_SetToLastItemInNewspapersCollection() { // 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."); // Act collectionViewModel.Newspapers.Remove(paperItemVm3); // Assert collectionViewModel.CurrentItem.Should().Be(paperItemVm2, "Removing the last entry makes the current last entry the CurrentItem"); }
public void CurrentItem_AfterDeletingNotLastExistingItem_IsTheFollowingItem() { // 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 model4 = new Newspaper {Name = "Paper 4"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var paperItemVm2 = new NewspaperItemViewModel(repository) {Model = model2}; var paperItemVm3 = new NewspaperItemViewModel(repository) {Model = model3}; var paperItemVm4 = new NewspaperItemViewModel(repository) {Model = model4}; var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.Newspapers.Add(paperItemVm1); collectionViewModel.Newspapers.Add(paperItemVm2); collectionViewModel.Newspapers.Add(paperItemVm3); collectionViewModel.Newspapers.Add(paperItemVm4); collectionViewModel.CurrentItem.Should().Be(paperItemVm4, "CurrentItem should be the last item added."); // Act collectionViewModel.Newspapers.Remove(paperItemVm2); // Assert collectionViewModel.CurrentItem.Should().Be(paperItemVm3, "CurrentItem should be the first item following the one removed"); }
public void SelectedItemChangedHandler_WhenInvoked_SetsCurrentItemToNewSelection() { // Arrange var repository = GetNewspaperRepository(); var model1 = new Newspaper {Name = "Paper 1"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.CurrentItem.Should().Be(null, "There is no current item in an empty list."); // Act collectionViewModel.Newspapers.Add(paperItemVm1); // Assert collectionViewModel.CurrentItem.Should().Be(paperItemVm1, "The current item is now"); }
public void SaveCommand_WhenPopulatedAndNewItemAdded_IsExecuted() { // Arrange var saveCommandCalled = false; var repository = GetNewspaperRepository(); var model1 = new Newspaper {Name = "Paper 1"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.SaveCommand = new RelayCommand(() => { saveCommandCalled = true; }); // Act collectionViewModel.Newspapers.Add(paperItemVm1); // Assert repository.Received().Save(model1); }
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 Newspapers_DeleteExistingItem_RemovesItemFromCollection() { // 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); var itemsInCollection = new List<NewspaperItemViewModel>() {paperItemVm1, paperItemVm3}; // Act collectionViewModel.Newspapers.Remove(paperItemVm2); // Assert collectionViewModel.Newspapers.ShouldBeEquivalentTo(itemsInCollection, "The items in the object match the items in the list."); }
public void SaveCommand_WhenPopulatedAndNewItemAdded_IsExecuted() { // Arrange var saveCommandCalled = false; var repository = Substitute.For<INewspaperAdRepository>(); var model1 = new Newspaper {Name = "Paper 1"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.SaveCommand = new RelayCommand(() => { saveCommandCalled = true; }); // Act collectionViewModel.Newspapers.Add(paperItemVm1); // Assert repository.Received().Save(model1); //saveCommandCalled.Should().Be(true, "Adding an item to the list causes the contents of SaveCommand to be executed"); }
public void SaveCommand_WhenInvoked_CallsRepositorySaveOnCurrentItem() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var saveCalled = false; Newspaper savedModel; var model1 = new Newspaper {Name = "Paper 1"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var collectionViewModel = new NewspaperCollectionViewModel(repository); repository.When(x => x.Save(model1)).Do(x => RepositoryUpdateFields(x, out saveCalled, out savedModel)); collectionViewModel.Newspapers.Add(paperItemVm1); var currentItem = collectionViewModel.CurrentItem; // Act collectionViewModel.SaveCommand.Execute(paperItemVm1); // Assert repository.Received().Save(model1); currentItem.Model.Should().Be(model1, "The Save was called with the added model."); }
public void SavingItemMessageHandler_WhenInvoked_CallsRepositorySaveOnCurrentItem() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var model1 = new Newspaper {Name = "Paper 1"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.CurrentItem.Should().Be(null, "There is no current item in an empty list."); // Act collectionViewModel.Newspapers.Add(paperItemVm1); // Assert repository.Received().Save(model1); }
public void SaveCommand_WhenItemAdded_CallsRepositorySaveOnCurrentItem() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var model1 = new Newspaper {Name = "Paper 1"}; var model2 = new Newspaper {Name = "Paper 2"}; var model3 = new Newspaper {Name = "Paper 3"}; var model4 = new Newspaper {Name = "Paper 4"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var paperItemVm2 = new NewspaperItemViewModel(repository) {Model = model2}; var paperItemVm3 = new NewspaperItemViewModel(repository) {Model = model3}; var paperItemVm4 = new NewspaperItemViewModel(repository) {Model = model4}; var collectionViewModel = new NewspaperCollectionViewModel(repository); // Act collectionViewModel.Newspapers.Add(paperItemVm1); collectionViewModel.Newspapers.Add(paperItemVm2); collectionViewModel.Newspapers.Add(paperItemVm3); // Assert repository.Received().Save(model1); repository.Received().Save(model2); repository.Received().Save(model3); repository.DidNotReceive().Save(paperItemVm4.Model); }
public void DetailViewModelReadyMessageHandler_WhenReceived_SendsCurrentItemAsCurrentItemChangedMessage() { // 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."); NewspaperItemViewModel itemFromMessage = paperItemVm2; Messenger.Default.Register<CurrentNewspaperItemChangedMessage>(this, (message) => itemFromMessage = message.ItemViewModel); // Act Messenger.Default.Send(new NewspaperDetailViewModelReady()); // Assert itemFromMessage.Model.Should().Be(model3, "When the NewspaperDetailViewModelIsReady the collection's current item is sent"); }
public void Newspapers_AddNewItem_InsertsItemInTheCollection() { // Arrange var repository = GetNewspaperRepository(); var model1 = new Newspaper {Name = "Paper 1"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var collectionViewModel = new NewspaperCollectionViewModel(repository); // Act collectionViewModel.Newspapers.Add(paperItemVm1); // Assert collectionViewModel.Newspapers.Count.Should().Be(1, "There is one item in the collection"); collectionViewModel.Newspapers.First().Should().Be(paperItemVm1, "The item added was the same as the paper we created."); }
public void SelectedItemChangedHandler_WhenInvoked_SendsMessageNewspaperChanged() { // Arrange var messageReceived = false; NewspaperItemViewModel vm = null; var repository = GetNewspaperRepository(); var model1 = new Newspaper {Name = "Paper 1"}; var model2 = new Newspaper {Name = "Paper 2"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var paperItemVm2 = new NewspaperItemViewModel(repository) {Model = model2}; var collectionViewModel = new NewspaperCollectionViewModel(repository); Messenger.Default.Register<CurrentNewspaperItemChangedMessage>(this, (msg) => { messageReceived = true; vm = msg.ItemViewModel; }); collectionViewModel.Newspapers.Add(paperItemVm1); collectionViewModel.Newspapers.Add(paperItemVm2); var args = new RoutedPropertyChangedEventArgs<object>(null, paperItemVm2); // Act collectionViewModel.SelectedItemChangedCommand.Execute(args); // Assert messageReceived.Should().Be(true, "The CurrentItemChangedMessage message was sent."); collectionViewModel.CurrentItem.Should().Be(paperItemVm2, "The current item is the last one added."); vm.Model.Should().Be(paperItemVm2.Model, "The added model was sent in the message."); }
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); }
public SaveNewspaperItemMessage(NewspaperItemViewModel itemViewModel) { ItemViewModel = itemViewModel; }
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 Name_WhenNullOrEmpty_SetsAllowSaveToFalse() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var model = new Newspaper(); var itemViewModel = new NewspaperItemViewModel(repository) {Model = model}; var viewModel = new NewspaperDetailViewModel(repository) {ItemViewModel = itemViewModel}; viewModel.AllowSave.Should().Be(true, "We have a valid name to reference."); // Act viewModel.Name = ""; // Assert viewModel.AllowSave.Should().Be(false, "Cannot save an newspaper without a name."); }
public void SelectedItemChangedHandler_WhenCollectionChanged_IsCalled() { // Arrange var repository = GetNewspaperRepository(); var collectionChangedCalled = false; var model1 = new Newspaper {Name = "Paper 1"}; var paperItemVm1 = new NewspaperItemViewModel(repository) {Model = model1}; var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.SelectedItemChangedCommand = new RelayCommand<RoutedPropertyChangedEventArgs<object>>((args) => { collectionChangedCalled = true; }); collectionViewModel.Newspapers.Add(paperItemVm1); // Act collectionViewModel.SelectedItemChangedCommand.Execute(null); // Assert collectionChangedCalled.Should().Be(true, "The event was called"); }
public void Name_WhenNotNullOrEmpty_SetsAllowAddToTrue() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var model = new Newspaper(); var itemViewModel = new NewspaperItemViewModel(repository) {Model = model}; // Act var viewModel = new NewspaperDetailViewModel(repository) {ItemViewModel = itemViewModel}; // Assert viewModel.AllowSave.Should().Be(true, "We have a valid name to reference."); }
public CurrentNewspaperItemChangedMessage(NewspaperItemViewModel itemViewModel) { ItemViewModel = itemViewModel; }
public void CurrentItem_AfterNewItemAdded_IsNewItem() { // Arrange var repository = GetNewspaperRepository(); var model = new Newspaper(); var itemViewModel = new NewspaperItemViewModel(repository) {Model = model}; var collectionViewModel = new NewspaperCollectionViewModel(repository); // Act collectionViewModel.Newspapers.Add(itemViewModel); // Assert collectionViewModel.CurrentItem.Should().Be(itemViewModel, "After adding a new item, it becomes the CurrentItem."); }
public void Name_SetWhenModelNotPresent_ThrowsMissingModelException() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var vm = new NewspaperItemViewModel(repository); vm.Model.Should().BeNull("Because vm.Model not set during object instantiation."); // Act var action = new Action(() => { vm.Name = "Name"; }); // Assert action.ShouldThrow<MissingModelException>("Cannot set any properties if Model not present."); }
public void CurrentItem_WhenItemDeletedThatIsNotInTheCollection_DoesNothing() { // 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.CurrentItem.Should().Be(paperItemVm2, "CurrentItem should be the last item added."); var count = collectionViewModel.Newspapers.Count; var itemsInCollection = collectionViewModel.Newspapers.ToList(); // Act collectionViewModel.Newspapers.Remove(paperItemVm3); // Assert collectionViewModel.Newspapers.Count.Should().Be(count, "The number of papers in the collection should not change"); collectionViewModel.Newspapers.ShouldBeEquivalentTo(itemsInCollection, "The collection remains unchanged"); }
public void NewspaperDetailItem_WhenNewspaperCurrentItemChangedMessageReceived_ResetsItemViewModelToValueSentInMessage() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var detailViewModel = new NewspaperDetailViewModel(repository); var collectionViewModel = new NewspaperCollectionViewModel(repository); var paperModel1 = new Newspaper() {Name = "New paper 1"}; var paperModel2 = new Newspaper() {Name = "New paper 2"}; var paperItemViewModel1 = new NewspaperItemViewModel(repository) {Model = paperModel1}; var paperItemViewModel2 = new NewspaperItemViewModel(repository) {Model = paperModel2}; collectionViewModel.Newspapers.Add(paperItemViewModel1); collectionViewModel.Newspapers.Add(paperItemViewModel2); collectionViewModel.CurrentItem.Should().Be(paperItemViewModel2); // Act collectionViewModel.CurrentItem = paperItemViewModel1; // Assert detailViewModel.ItemViewModel.Should().Be(paperItemViewModel1); }
public void RemoveNewspaper_WithExistingNewspaperInNewspapersCollection_RemovesNewspaperFromNewspapersCollection() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var advertisementModel = new Advertisement(); var paperModel1 = new Newspaper(); var newspaperItemViewModel1 = new NewspaperItemViewModel(repository) {Model = paperModel1}; var paperModel2 = new Newspaper(); var newspaperItemViewModel2 = new NewspaperItemViewModel(repository) {Model = paperModel2}; var adDetailViewModel = new NewspaperDetailViewModel(repository) {ItemViewModel = newspaperItemViewModel1}; var detailViewModel = new AdvertisementDetailViewModel(repository) {ItemViewModel = new AdvertisementItemViewModel(repository) {Model = advertisementModel}}; detailViewModel.Newspapers.Add(newspaperItemViewModel1); detailViewModel.Newspapers.Add(newspaperItemViewModel2); detailViewModel.Newspapers.Should().BeEquivalentTo(new List<NewspaperItemViewModel> {newspaperItemViewModel1, newspaperItemViewModel2}); // Act detailViewModel.Newspapers.Remove(newspaperItemViewModel1); // Assert detailViewModel.Newspapers.Should().BeEquivalentTo(new List<NewspaperItemViewModel> {newspaperItemViewModel2}); }