public async Task Filter(string filter, string owner, string name, string url, int expectCount) { var contributedToRepositories = new[] { new RepositoryListItemModel { Owner = owner, Name = name, Url = new Uri(url) } }; var hostAddress = HostAddress.GitHubDotComHostAddress; var connection = CreateConnection(hostAddress); var repositoryCloneService = CreateRepositoryCloneService(contributedToRepositories, hostAddress); var gitHubContextService = CreateGitHubContextService(); var target = new RepositorySelectViewModel(repositoryCloneService, gitHubContextService); target.Filter = filter; target.Initialize(connection); await target.Activate(); var items = target.ItemsView.Groups .Cast <CollectionViewGroup>() .SelectMany(g => g.Items) .Cast <RepositoryItemViewModel>(); Assert.That(items.Count, Is.EqualTo(expectCount)); }
public void Set_Repository_When_Filter_Is_Url(string url, string expectUrl) { var expectCloneUrl = expectUrl != null ? new UriString(expectUrl) : null; var repositoryCloneService = CreateRepositoryCloneService(); var gitHubContextService = new GitHubContextService(Substitute.For <IGitHubServiceProvider>(), Substitute.For <IGitService>(), Substitute.For <IVSServices>()); var target = new RepositorySelectViewModel(repositoryCloneService, gitHubContextService); target.Filter = url; Assert.That(target.Repository?.CloneUrl, Is.EqualTo(expectCloneUrl)); }
public void Change_Filters(string filters, string expectUrl) { var expectCloneUrl = expectUrl != null ? new UriString(expectUrl) : null; var repositoryCloneService = CreateRepositoryCloneService(); var gitHubContextService = new GitHubContextService(Substitute.For <IGitHubServiceProvider>(), Substitute.For <IGitService>(), Substitute.For <IVSServices>()); var target = new RepositorySelectViewModel(repositoryCloneService, gitHubContextService); foreach (var filter in filters.Split(';')) { target.Filter = filter; } Assert.That(target.Repository?.CloneUrl, Is.EqualTo(expectCloneUrl)); }