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