public async Task WhenInitialJobsHaveFailedThenBuildFailedIsSent() { var messenger = new Mock <IMessenger>(); var jenkinsServiceMoq = new Mock <IJenkinService>(); jenkinsServiceMoq.Setup(o => o.Views()).Returns( () => { var task = new Task <IEnumerable <JenkinsViewViewModel> >(() => this.listViews); task.Start(); return(task); }); var vm = new JenkinsViewsViewModel(messenger.Object, jenkinsServiceMoq.Object, new Mock <ITimer>().Object); await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify( o => o.Send( new BuildOccured( new List <JenkinsJobViewModel> { new JenkinsJobViewModel("job2", JobStatus.Failed, UrlJob2, 1234, It.IsAny <RunBuildCommand>(), It.IsAny <StopBuildCommand>(), false) })), Times.Once); }
public async Task WhenLastJobsHaveFailedAndNewJobsFailedThenThereIsNewNotification() { var messenger = new Mock <IMessenger>(); var jenkinsServiceMoq = new Mock <IJenkinService>(); jenkinsServiceMoq.Setup(o => o.Views()).Returns( () => { var task = new Task <IEnumerable <JenkinsViewViewModel> >(() => this.listViews); task.Start(); return(task); }); var vm = new JenkinsViewsViewModel(messenger.Object, jenkinsServiceMoq.Object, new Mock <ITimer>().Object); await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify(o => o.Send(It.IsAny <BuildOccured>()), Times.Once); this.jobs[1] = new JenkinsJobViewModel(this.job2.DisplayName, JobStatus.Failed, UrlJob2, this.job2.LastRanBuildNumber + 1, this.buildCommandJob2, this.stopBuildCommandJob2); await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify(o => o.Send(It.IsAny <BuildOccured>()), Times.Exactly(2)); }
public async Task WhenInitialJobsHaveNoFailedThenNoEventIsSent() { var messenger = new Mock <IMessenger>(); var jenkinsViews = new List <JenkinsViewViewModel> { new JenkinsViewViewModel("view", new List <JenkinsJobViewModel> { this.job1, new JenkinsJobViewModel("job2", JobStatus.Success, UrlJob2, 564, this.buildCommandJob2, this.stopBuildCommandJob2) }) }; var jenkinsServiceMoq = new Mock <IJenkinService>(); jenkinsServiceMoq.Setup(o => o.Views()).Returns( () => { var task = new Task <IEnumerable <JenkinsViewViewModel> >(() => jenkinsViews); task.Start(); return(task); }); var vm = new JenkinsViewsViewModel(messenger.Object, jenkinsServiceMoq.Object, new Mock <ITimer>().Object); await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify(o => o.Send(new BuildOccured(null)), Times.Never()); }
public async Task WhenBreakBuildBackToNormalThenBuildBackToNormalIsSendOnce() { var messenger = new Mock <IMessenger>(); var jenkinsViews = new List <JenkinsViewViewModel> { new JenkinsViewViewModel("view", new List <JenkinsJobViewModel> { new JenkinsJobViewModel("job1", JobStatus.Failed, UrlJob1, 1265, this.buildCommandJob1, this.stopBuildCommandJob1), new JenkinsJobViewModel("job2", JobStatus.Failed, UrlJob2, 5454, this.buildCommandJob2, this.stopBuildCommandJob2) }) }; var jenkinsServiceMoq = new Mock <IJenkinService>(); jenkinsServiceMoq.Setup(o => o.Views()).Returns( () => { // ReSharper disable once AccessToModifiedClosure var task = new Task <IEnumerable <JenkinsViewViewModel> >(() => jenkinsViews); task.Start(); return(task); }); var vm = new JenkinsViewsViewModel(messenger.Object, jenkinsServiceMoq.Object, new Mock <ITimer>().Object); await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify(o => o.Send(It.IsAny <BuildOccured>()), Times.Once); jenkinsViews = new List <JenkinsViewViewModel> { new JenkinsViewViewModel("view", new List <JenkinsJobViewModel> { new JenkinsJobViewModel("job1", JobStatus.Failed, UrlJob1, 5445, this.buildCommandJob1, this.stopBuildCommandJob1), new JenkinsJobViewModel("job2", JobStatus.Success, UrlJob2, 5454, this.buildCommandJob2, this.stopBuildCommandJob2) }) }; await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify( o => o.Send( new BuildOccured( new List <JenkinsJobViewModel> { new JenkinsJobViewModel("job2", JobStatus.Success, UrlJob2, 5454, this.buildCommandJob2, this.stopBuildCommandJob2, false) })), Times.Once); messenger.Verify(o => o.Send(It.IsAny <BuildOccured>()), Times.Exactly(2)); await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify(o => o.Send(It.IsAny <BuildOccured>()), Times.Exactly(2)); }
public void WhenPreviousViewCommandThenLoginViewRequired() { var messenger = new Mock <IMessenger>(); var vm = new JenkinsViewsViewModel( messenger.Object, new Mock <IJenkinService>().Object, new Mock <ITimer>().Object); vm.Previous.Execute(null); messenger.Verify(o => o.Send(new LoginViewRequired(vm))); }
public async Task WhenRequestFailedThenErrorMessageIsDisplayedAndIsLoadingIsFalse() { var jenkinsServiceMoq = new Mock <IJenkinService>(); jenkinsServiceMoq.Setup(o => o.Views()).Throws(new Exception()); var vm = new JenkinsViewsViewModel( new Mock <IMessenger>().Object, jenkinsServiceMoq.Object, new Mock <ITimer>().Object); await vm.RefreshJobs.ExecuteAsync(null); Check.That(vm.IsErrorDisplay).IsTrue(); Check.That(vm.IsLoading).IsFalse(); }
public async Task WhenChangeSincePreviousRefreshThenThereIsNewNotification() { var messenger = new Mock <IMessenger>(); var jenkinsViews = new List <JenkinsViewViewModel> { new JenkinsViewViewModel("view", new List <JenkinsJobViewModel> { this.job1, new JenkinsJobViewModel("job2", JobStatus.Success, UrlJob2, 8764, this.buildCommandJob2, this.stopBuildCommandJob2) }) }; var jenkinsServiceMoq = new Mock <IJenkinService>(); jenkinsServiceMoq.Setup(o => o.Views()).Returns( () => { // ReSharper disable once AccessToModifiedClosure var task = new Task <IEnumerable <JenkinsViewViewModel> >(() => jenkinsViews); task.Start(); return(task); }); var vm = new JenkinsViewsViewModel(messenger.Object, jenkinsServiceMoq.Object, new Mock <ITimer>().Object); await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify(o => o.Send(new BuildOccured(null)), Times.Never); jenkinsViews = new List <JenkinsViewViewModel> { new JenkinsViewViewModel("view", new List <JenkinsJobViewModel> { new JenkinsJobViewModel("job1", JobStatus.Failed, UrlJob1, 5454, this.buildCommandJob1, this.stopBuildCommandJob1), new JenkinsJobViewModel("job2", JobStatus.Success, UrlJob1, 1231, this.buildCommandJob2, this.stopBuildCommandJob2) }) }; await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify( o => o.Send( new BuildOccured( new List <JenkinsJobViewModel> { new JenkinsJobViewModel("job1", JobStatus.Failed, UrlJob1, 5454, this.buildCommandJob1, this.stopBuildCommandJob1, false) })), Times.Once); }
public async Task WhenJenkinsViewsViewModelIsRefreshThenViewsAreListedAsync() { var jenkinsServiceMoq = new Mock <IJenkinService>(); jenkinsServiceMoq.Setup(o => o.Views()).Returns( () => { var task = new Task <IEnumerable <JenkinsViewViewModel> >(() => this.listViews); task.Start(); return(task); }); var vm = new JenkinsViewsViewModel( new Mock <IMessenger>().Object, jenkinsServiceMoq.Object, new Mock <ITimer>().Object); await vm.RefreshJobs.ExecuteAsync(null); Check.That(vm.SelectedIndex).Equals(0); Check.That(vm.JenkinsViews).ContainsExactly(this.listViews); }
public async Task WhenNothingChangeSincePreviousRefreshThenThereIsNoNewNotification() { var messenger = new Mock <IMessenger>(); var jenkinsServiceMoq = new Mock <IJenkinService>(); jenkinsServiceMoq.Setup(o => o.Views()).Returns( () => { var task = new Task <IEnumerable <JenkinsViewViewModel> >(() => this.listViews); task.Start(); return(task); }); var vm = new JenkinsViewsViewModel(messenger.Object, jenkinsServiceMoq.Object, new Mock <ITimer>().Object); await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify(o => o.Send(It.IsAny <BuildOccured>()), Times.Once); await vm.RefreshJobs.ExecuteAsync(null); messenger.Verify(o => o.Send(It.IsAny <BuildOccured>()), Times.Once); }