public void SelectingAuthorShouldTriggerFilter() { var connection = Substitute.For <IConnection>(); var factory = CreateModelServiceFactory(); var repository = Substitute.For <ILocalRepositoryModel>(); var settings = CreateSettings(); var browser = Substitute.For <IVisualStudioBrowser>(); var prViewModel = new PullRequestListViewModel(factory, settings, browser); prViewModel.InitializeAsync(repository, connection).Wait(); prViewModel.PullRequests.Received(1).Filter = AnyFilter; prViewModel.SelectedAuthor = prViewModel.PullRequests[0].Author; prViewModel.PullRequests.Received(2).Filter = AnyFilter; }
public void OpenPullRequestOnGitHubShouldOpenBrowser(string cloneUrl, int pullNumber, string expectUrl) { var connection = Substitute.For <IConnection>(); var factory = CreateModelServiceFactory(); var repository = Substitute.For <ILocalRepositoryModel>(); var settings = CreateSettings(); var browser = Substitute.For <IVisualStudioBrowser>(); var prViewModel = new PullRequestListViewModel(factory, settings, browser); prViewModel.InitializeAsync(repository, connection).Wait(); prViewModel.SelectedRepository = Substitute.For <IRemoteRepositoryModel>(); prViewModel.SelectedRepository.CloneUrl.Returns(new UriString(cloneUrl)); prViewModel.OpenPullRequestOnGitHub.Execute(pullNumber); browser.ReceivedWithAnyArgs(1).OpenUrl(new Uri(expectUrl)); }
public void ResettingAuthorToNoneShouldNotTriggerFilter() { var connection = Substitute.For <IConnection>(); var factory = CreateModelServiceFactory(); var repository = Substitute.For <ILocalRepositoryModel>(); var settings = CreateSettings(); var browser = Substitute.For <IVisualStudioBrowser>(); var prViewModel = new PullRequestListViewModel(factory, settings, browser); prViewModel.InitializeAsync(repository, connection).Wait(); prViewModel.PullRequests.Received(1).Filter = AnyFilter; prViewModel.SelectedAuthor = prViewModel.PullRequests[0].Author; prViewModel.PullRequests.Received(2).Filter = AnyFilter; // Setting the Author filter to [None] should not trigger a filter: // doing this will remove the [None] entry from Authors, which will cause // the selection in the view to be set to null which will reset the filter. prViewModel.SelectedAuthor = prViewModel.EmptyUser; prViewModel.PullRequests.Received(2).Filter = AnyFilter; }