Exemple #1
0
        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());
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        public override async void Invalidate()
        {
            var visible = await IsAGitHubRepo(ActiveRepoUri);

            if (visible)
            {
                var repo = await SimpleApiClient.GetRepository();

                visible = repo.HasWiki && SimpleApiClient.HasWiki();
            }
            IsVisible = visible;
        }
Exemple #4
0
        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;
        }
Exemple #6
0
        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);
            }
        }