public void GeneratePlaylist_CallsGenerate() { // arrange SetupMockControlFileFor1Podcast(); ViewModel.Initialise(); // act ViewModel.GeneratePlaylist(); // assert A.CallTo(() => MockCrashReporter.LogNonFatalException(A <Exception> .Ignored)).MustNotHaveHappened(); A.CallTo(() => MockPlaylistGenerator.GeneratePlaylist(MockControlFile, "/sdcard/sourceroot", true, A <EventHandler <StatusUpdateEventArgs> > .Ignored)).MustHaveHappened(1, Times.Exactly); }
public void GeneratePlaylist_HandlesErrors() { // arrange SetupMockControlFileFor1Podcast(); ViewModel.Initialise(); var testException = new Exception(); A.CallTo(() => MockPlaylistGenerator.GeneratePlaylist(A <IReadOnlyControlFile> .Ignored, A <string> .Ignored, A <bool> .Ignored, A <EventHandler <StatusUpdateEventArgs> > .Ignored)).Throws(testException); // act ViewModel.GeneratePlaylist(); // assert A.CallTo(() => MockCrashReporter.LogNonFatalException(testException)).MustHaveHappened(1, Times.Exactly); Assert.AreEqual("Mocked playlist error", ObservedResults.LastToastMessage); }
public void GeneratePlaylist_StatusUpdates() { // arrange SetupMockControlFileFor1Podcast(); ViewModel.Initialise(); A.CallTo(() => MockPlaylistGenerator.GeneratePlaylist(MockControlFile, "/sdcard/sourceroot", true, A <EventHandler <StatusUpdateEventArgs> > .Ignored)) .Invokes((IReadOnlyControlFile control, string root, bool copy, EventHandler <StatusUpdateEventArgs> statusUpdateHandler) => { statusUpdateHandler?.Invoke(this, new StatusUpdateEventArgs(StatusUpdateLevel.Status, "status message", true, null)); }); // act ViewModel.GeneratePlaylist(); // assert A.CallTo(() => MockCrashReporter.LogNonFatalException(A <Exception> .Ignored)).MustNotHaveHappened(); Assert.AreEqual("status message", ObservedResults.LastToastMessage); }