Example #1
0
        public void When_connected_to_the_network_should_check_feeds_and_download_new_item()
        {
            FeedsViewModel.IsNetworkAvailable = () => true;

            var gotNewItems = false;
            var feed        = new Mock <Feed>();

            feed.CallBase = true;
            feed.Setup(f => f.Name).Returns("The Feed");
            feed.Object.DownloadedGuids = new[] { "item-1", "item-2" };

            var mediaUri = new Uri("http://blockedcontent/media.mp3");
            var feedItem = new FeedItem("new-item", "The Media", mediaUri);

            feed.Setup(f => f.GetNewItemsInFeed()).Callback(() => gotNewItems = true).Returns(new [] { feedItem });
            var feedRepository = new Mock <IFeedRepository>();

            feedRepository.Setup(f => f.Feeds).Returns(new ObservableCollection <Feed> {
                feed.Object
            });

            var library = new Mock <ILibrary>();

            var viewModel = new FeedsViewModel(library.Object, feedRepository.Object);

            viewModel.RefreshFeeds(null);

            Assert.IsTrue(gotNewItems);
            library.Verify(l => l.AddNewMediaItem("The Feed: The Media", mediaUri));
            feedRepository.Verify(fr => fr.Update(feed.Object));
            Assert.AreEqual(string.Join("|", new[] { "item-1", "item-2", "new-item" }), string.Join("|", feed.Object.DownloadedGuids));
        }
Example #2
0
 public void Show(Page page, AppBar appbar, Button button, object context)
 {
     TweetsListPopup.IsOpen = true;
     feedsViewModel         = (FeedsViewModel)context;
     TweetList.ItemsSource  = feedsViewModel.TwitterFeedsList;
     FlyoutHelper.ShowRelativeToAppBar(TweetsListPopup, page, appbar, button);
 }
        /// <summary>
        /// Invoked when this page is about to be displayed in a Frame.
        /// </summary>
        /// <param name="e">Event data that describes how this page was reached.  The Parameter
        /// property is typically used to configure the page.</param>
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            SetRandomImageName();
            viewModel      = (ViewModel)e.Parameter;
            feedsViewModel = new FeedsViewModel();
            Task.Run(new Func <Task>(InitFeedsViewModel));

            this.DataContext = feedsViewModel;
            FeedsPage.Navigate(typeof(Feeds), e.Parameter);
        }
        public FeedsView()
        {
            InitializeComponent();

            DataContextChanged += (s, e) =>
            {
                ViewModel = DataContext as FeedsViewModel;
            };

            HideAppBar();
        }
Example #5
0
        public void When_not_connected_to_the_network_should_not_download_feeds()
        {
            FeedsViewModel.IsNetworkAvailable = () => false;

            var gotNewItems = false;
            var feed        = new Mock <Feed>();

            feed.Setup(f => f.GetNewItemsInFeed()).Callback(() => gotNewItems = true);
            var feedRepository = new Mock <IFeedRepository>();

            feedRepository.Setup(f => f.Feeds).Returns(new ObservableCollection <Feed> {
                feed.Object
            });

            var viewModel = new FeedsViewModel(new Mock <ILibrary>().Object, feedRepository.Object);

            viewModel.RefreshFeeds(null);

            Assert.IsFalse(gotNewItems);
        }
Example #6
0
        public FeedsPage(Country country)
        {
            InitializeComponent();

            BindingContext = viewModel = new FeedsViewModel(country);
        }