상속: BaseViewModel, IPullRequestListViewModel, IDisposable
        public void SelectingAuthorShouldTriggerFilter()
        {
            var repositoryHost = CreateRepositoryHost();
            var repository = Substitute.For<ILocalRepositoryModel>();
            var settings = CreateSettings();
            var prViewModel = new PullRequestListViewModel(repositoryHost, repository, settings);

            prViewModel.Initialize(null);
            prViewModel.PullRequests.Received(1).Filter = AnyFilter;

            prViewModel.SelectedAuthor = prViewModel.PullRequests[0].Author;
            prViewModel.PullRequests.Received(2).Filter = AnyFilter;
        }
        public void ResettingAuthorToNoneShouldNotTriggerFilter()
        {
            var repositoryHost = CreateRepositoryHost();
            var repository = Substitute.For<ILocalRepositoryModel>();
            var settings = CreateSettings();
            var prViewModel = new PullRequestListViewModel(repositoryHost, repository, settings);

            prViewModel.Initialize(null);
            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;
        }