Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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;
        }