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));
 }