public void AddingItemMessageHandler_WhenInvoked_CallsRepositorySaveWithNewItem() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var message = new AddingNewspaperItemMessage(); var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.Newspapers.Count.Should().Be(0, "There are no items in the collection initially."); // Act Messenger.Default.Send(message); // Assert repository.Received().Save(collectionViewModel.Newspapers.First().Model); }
public void AddingItemMessageHandler_WhenInvoked_AddsNewItemToNewspapersCollection() { // Arrange var repository = Substitute.For<INewspaperAdRepository>(); var message = new AddingNewspaperItemMessage(); var collectionViewModel = new NewspaperCollectionViewModel(repository); collectionViewModel.Newspapers.Count.Should().Be(0, "There are no items in the collection initially."); // Act Messenger.Default.Send(message); // Assert collectionViewModel.Newspapers.Count.Should().Be(1, "A new item should have been added to the collection."); collectionViewModel.Newspapers.First().Name.Should().Be(Newspaper.MSG_NEW_NEWSPAPER_NAME, "The new item should be a new Newspaper."); }
public void AddingItemMessageHandler_WhenInvoked_SendsCurrentItemChangedMessage() { // Arrange var repository = GetNewspaperRepository(); var message = new AddingNewspaperItemMessage(); var collectionViewModel = new NewspaperCollectionViewModel(repository); var changedMessageReceived = false; NewspaperItemViewModel receivedItemViewModel = null; collectionViewModel.Newspapers.Count.Should().Be(0, "There are no items in the collection initially."); Messenger.Default.Register<CurrentNewspaperItemChangedMessage>(this, msg => { changedMessageReceived = true; receivedItemViewModel = msg.ItemViewModel; }); // Act Messenger.Default.Send(message); // Assert changedMessageReceived.Should().Be(true, "The message was sent from the NewspaperCollectionsViewModel."); receivedItemViewModel.Should().Be(collectionViewModel.Newspapers.First(), "The item received in the message matches the CurrentItem in the collection."); }
private void AddingNewspaperItemMessageHandler(AddingNewspaperItemMessage message) { var model = new Newspaper(); var vm = new NewspaperItemViewModel(_adRepository) {Model = model}; Newspapers.Add(vm); var sortedNewspapers = Newspapers.OrderBy(n => n.Name).ToList(); Newspapers.Clear(); sortedNewspapers.ForEach(Newspapers.Add); Messenger.Default.Send(new CurrentNewspaperItemChangedMessage(vm)); }