public async Task ReturnsTrueWhenWikiProbeReturnsOk(WikiProbeResult probeResult, bool expected) { var gitHubHost = HostAddress.GitHubDotComHostAddress; var gitHubClient = Substitute.For <IGitHubClient>(); var repository = CreateRepository(42, true); gitHubClient.Repository.Get("github", "visualstudio").Returns(Task.FromResult(repository)); var enterpriseProbe = Substitute.For <IEnterpriseProbeTask>(); var wikiProbe = Substitute.For <IWikiProbe>(); wikiProbe.ProbeAsync(repository) .Returns(_ => Task.FromResult(probeResult), _ => { throw new Exception("Only call it once"); }); var client = new SimpleApiClient( gitHubHost, "https://github.com/github/visualstudio", gitHubClient, new Lazy <IEnterpriseProbeTask>(() => enterpriseProbe), new Lazy <IWikiProbe>(() => wikiProbe)); await client.GetRepository(); var result = client.HasWiki(); Assert.Equal(expected, result); Assert.Equal(expected, client.HasWiki()); }
protected async override void RepoChanged(bool changed) { IsLoggedIn = true; IsVisible = false; base.RepoChanged(changed); IsVisible = await IsAGitHubRepo(); if (IsVisible) { RepoName = ActiveRepoName; RepoUrl = ActiveRepoUri.ToString(); Icon = GetIcon(false, true, false); // We want to display a welcome message but only if Team Explorer isn't // already displaying the "Install 3rd Party Tools" message and the current repo is hosted on GitHub. if (!settings.HideTeamExplorerWelcomeMessage && !IsGitToolsMessageVisible()) { ShowWelcomeMessage(); } Debug.Assert(SimpleApiClient != null, "If we're in this block, simpleApiClient cannot be null. It was created by UpdateStatus"); var repo = await SimpleApiClient.GetRepository(); Icon = GetIcon(repo.Private, true, repo.Fork); IsLoggedIn = await IsUserAuthenticated(); } else { teamExplorerServices.HideNotification(welcomeMessageGuid); } }
public override async void Invalidate() { var visible = await IsAGitHubRepo(ActiveRepoUri); if (visible) { var repo = await SimpleApiClient.GetRepository(); visible = repo.HasWiki && SimpleApiClient.HasWiki(); } IsVisible = visible; }
public async Task RetrievesCachedRepositoryForSubsequentCalls() { var gitHubHost = HostAddress.GitHubDotComHostAddress; var gitHubClient = Substitute.For <IGitHubClient>(); var repository = new Repository(42); gitHubClient.Repository.Get("github", "visualstudio") .Returns(_ => Task.FromResult(repository), _ => { throw new Exception("Should only be called once."); }); var enterpriseProbe = Substitute.For <IEnterpriseProbe>(); var wikiProbe = Substitute.For <IWikiProbe>(); var client = new SimpleApiClient( "https://github.com/github/visualstudio", gitHubClient, new Lazy <IEnterpriseProbe>(() => enterpriseProbe), new Lazy <IWikiProbe>(() => wikiProbe)); await client.GetRepository(); var result = await client.GetRepository(); Assert.That(42, Is.EqualTo(result.Id)); }
public override async void Invalidate() { IsVisible = false; var visible = await IsAGitHubRepo(); if (visible) { var repo = await SimpleApiClient.GetRepository(); visible = repo.HasIssues; } IsVisible = visible; }
public async Task RetrievesRepositoryFromWeb() { var gitHubHost = HostAddress.GitHubDotComHostAddress; var gitHubClient = Substitute.For <IGitHubClient>(); var repository = new Repository(42); gitHubClient.Repository.Get("github", "visualstudio").Returns(Task.FromResult(repository)); var enterpriseProbe = Substitute.For <IEnterpriseProbe>(); var wikiProbe = Substitute.For <IWikiProbe>(); var client = new SimpleApiClient( "https://github.com/github/visualstudio", gitHubClient, new Lazy <IEnterpriseProbe>(() => enterpriseProbe), new Lazy <IWikiProbe>(() => wikiProbe)); var result = await client.GetRepository(); Assert.That(42, Is.EqualTo(result.Id)); }
protected async override void RepoChanged() { IsVisible = false; base.RepoChanged(); IsVisible = await IsAGitHubRepo(); if (IsVisible) { RepoName = ActiveRepoName; RepoUrl = ActiveRepoUri.ToString(); Icon = GetIcon(false, true, false); Debug.Assert(SimpleApiClient != null, "If we're in this block, simpleApiClient cannot be null. It was created by UpdateStatus"); var repo = await SimpleApiClient.GetRepository(); Icon = GetIcon(repo.Private, true, repo.Fork); } }