public async Task SpotlightReaderRetryTest()
        {
            // arrange
            var mockCache = new Mock <IFeedCache <string> >();

            mockCache.Setup(r => r.IsFeedAvailable).Returns(false);

            var systemUnderTest = await SpotlightFeedReaderFactory.CreateSpotlightFeedReader(
                SpotlightBrowserTestOps.k_invalidFeedUrl,
                mockCache.Object);

            // act
            var isAvailableBefore = systemUnderTest.IsFeedAvailable;

            systemUnderTest.Url = SpotlightBrowserTestOps.k_validFeedUrl;
            await systemUnderTest.RefreshFeedAsync();

            mockCache.Setup(r => r.IsFeedAvailable).Returns(true);

            var isAvailableAfter = systemUnderTest.IsFeedAvailable;
            var root             = systemUnderTest.GetFeed();

            // assert
            Assert.IsFalse(isAvailableBefore);
            Assert.IsTrue(isAvailableAfter);
            Assert.IsNotNull(root);
        }
        public async Task SpotlightReaderCheckIsFeedAvailableTest()
        {
            // arrange
            var systemUnderTest = await SpotlightFeedReaderFactory.CreateSpotlightFeedReader(SpotlightBrowserTestOps.k_validFeedUrl);

            // act
            var isAvailable = systemUnderTest.IsFeedAvailable;

            // assert
            Assert.IsTrue(isAvailable);
        }
        public async Task SpotlightReaderCheckFeedHasItemsTest()
        {
            // arrange
            var systemUnderTest = await SpotlightFeedReaderFactory.CreateSpotlightFeedReader(SpotlightBrowserTestOps.k_validFeedUrl);

            // act
            var items = systemUnderTest.GetFeed();

            // assert
            Assert.IsNotNull(items);
        }
        public async Task SpotlightReaderCheckFeedHasUrlTest()
        {
            // arrange
            var systemUnderTest = await SpotlightFeedReaderFactory.CreateSpotlightFeedReader(SpotlightBrowserTestOps.k_validFeedUrl);

            // act
            var urlFromFeedReader = systemUnderTest.Url;

            // assert
            Assert.IsNotNull(urlFromFeedReader);
            Assert.AreEqual(SpotlightBrowserTestOps.k_validFeedUrl, urlFromFeedReader);
        }
        public async Task SpotlightReaderCheckIsInvalidFeedUnavailableTest()
        {
            // arrange
            var mockCache = new Mock <IFeedCache <string> >();

            mockCache.Setup(c => c.IsFeedAvailable).Returns(false);

            var systemUnderTest = await SpotlightFeedReaderFactory.CreateSpotlightFeedReader(
                SpotlightBrowserTestOps.k_invalidFeedUrl,
                mockCache.Object);

            // act
            var isAvailable = systemUnderTest.IsFeedAvailable;

            // assert
            Assert.IsFalse(isAvailable);
        }