public void StatusUpdate_StatusMessageComplete()
        {
            // arrange
            SetupMockControlFileFor2Podcasts();
            SetupEpisodesFor2Podcasts();
            ViewModel.Initialise();
            ViewModel.FindEpisodesToDownload();
            var syncItemMocker = SetupFireStatusEvent(EPISODE_1_ID, StatusUpdateLevel.Status, true, null, "test message complete");

            Fake.ClearRecordedCalls(MockStatusAndProgressMessageStore);
            Fake.ClearRecordedCalls(MockAnalyticsEngine);

            // act
            ViewModel.DownloadAllPodcastsWithoutNetworkCheck().Wait();

            // assert
            A.CallTo(() => MockCrashReporter.LogNonFatalException(A <Exception> .Ignored)).MustNotHaveHappened();
            A.CallTo(() => MockStatusAndProgressMessageStore.StoreMessage(
                         A <Guid> .That.Matches(g => g.ToString() == EPISODE_1_ID.ToString()),
                         A <string> .That.Matches(s => s == "test message complete")))
            .MustHaveHappened(1, Times.Exactly);
            Assert.AreEqual("test message complete", ObservedResults.LastUpdateStatusMessage, "message");
            Assert.AreEqual(syncItemMocker.GetMockedSyncItem(), ObservedResults.LastUpdateStatusItem, "item");
            Assert.AreEqual(Status.Complete, ObservedResults.LastUpdateStatus, "status");
            A.CallTo(() => MockAnalyticsEngine.DownloadEpisodeCompleteEvent()).MustHaveHappened(1, Times.Exactly);
        }
        public void GeneratePlaylist_RecordsAnalytics()
        {
            // arrange
            SetupMockControlFileFor1Podcast();
            ViewModel.Initialise();

            // act
            ViewModel.GeneratePlaylist();

            // assert
            A.CallTo(() => MockAnalyticsEngine.GeneratePlaylistEvent(PlaylistFormat.M3U)).MustHaveHappened(1, Times.Exactly);
        }
        public void FindItemsToDelete_Analytics()
        {
            // arrange
            SetupMockControlFileFor2Podcasts();
            SetupMockPurger();
            ViewModel.Initialise();

            // act
            ViewModel.FindItemsToDelete();

            // assert
            A.CallTo(() => MockAnalyticsEngine.PurgeScanEvent(4)).MustHaveHappened(1, Times.Exactly);
        }
Beispiel #4
0
        public void LoadControlFile_RecordsAnalytics()
        {
            // arrange
            Android.Net.Uri uri     = Android.Net.Uri.Parse("content://com.android.externalstorage.documents/document/primary%3APodcastUtilities%2FDerekPodcastsSmall2.xml");
            var             control = SetupRealControlFile(uri);

            ViewModel.Initialise();

            // act
            ViewModel.LoadContolFile(uri);

            // assert
            A.CallTo(() => MockAnalyticsEngine.LoadControlFileEvent()).MustHaveHappened(1, Times.Exactly);
        }
        public void FindEpisodesToDownload_Analytics()
        {
            // arrange
            SetupMockControlFileFor2Podcasts();
            SetupEpisodesFor2Podcasts();
            ViewModel.Initialise();

            // act
            ViewModel.FindEpisodesToDownload();

            // assert
            A.CallTo(() => MockAnalyticsEngine.DownloadFeedEvent(2)).MustHaveHappened(1, Times.Exactly);
            A.CallTo(() => MockAnalyticsEngine.DownloadFeedEvent(3)).MustHaveHappened(1, Times.Exactly);
        }
        public void ProgressUpdate_UpdatesProgress_At_100()
        {
            // arrange
            SetupMockControlFileFor2Podcasts();
            SetupEpisodesFor2Podcasts();
            ViewModel.Initialise();
            ViewModel.FindEpisodesToDownload();
            var syncItemMocker = SetupFireProgressEvent(EPISODE_1_ID, 100);

            Fake.ClearRecordedCalls(MockStatusAndProgressMessageStore);

            // act
            ViewModel.DownloadAllPodcastsWithoutNetworkCheck().Wait();

            // assert
            A.CallTo(() => MockCrashReporter.LogNonFatalException(A <Exception> .Ignored)).MustNotHaveHappened();
            A.CallTo(() => MockStatusAndProgressMessageStore.StoreMessage(
                         A <Guid> .That.Matches(g => g.ToString() == EPISODE_1_ID.ToString()),
                         A <string> .That.Matches(s => s == "EpisodeTitle (100 bytes of 100 bytes) 100%")))
            .MustHaveHappened(1, Times.Exactly);
            Assert.AreEqual(100, ObservedResults.LastUpdatePercentage, "percentage");
            Assert.AreEqual(syncItemMocker.GetMockedSyncItem(), ObservedResults.LastUpdatePercentageItem, "item");
            A.CallTo(() => MockAnalyticsEngine.DownloadEpisodeEvent(A <long> .Ignored)).MustHaveHappened(1, Times.Exactly);
        }