Наследование: ISimpleApiClient
Пример #1
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<IEnterpriseProbeTask>();
            var wikiProbe = Substitute.For<IWikiProbe>();
            var client = new SimpleApiClient(
                "https://github.com/github/visualstudio",
                gitHubClient,
                new Lazy<IEnterpriseProbeTask>(() => enterpriseProbe),
                new Lazy<IWikiProbe>(() => wikiProbe));

            var result = await client.GetRepository();

            Assert.Equal(42, result.Id);
        }
Пример #2
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<IEnterpriseProbeTask>();
            var wikiProbe = Substitute.For<IWikiProbe>();
            var client = new SimpleApiClient(
                "https://github.com/github/visualstudio",
                gitHubClient,
                new Lazy<IEnterpriseProbeTask>(() => enterpriseProbe),
                new Lazy<IWikiProbe>(() => wikiProbe));
            await client.GetRepository();

            var result = await client.GetRepository();

            Assert.Equal(42, result.Id);
        }
Пример #3
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(
                "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());
        }
Пример #4
0
        public void ReturnsFalseWhenWeHaveNotRequestedRepository()
        {
            var gitHubHost = HostAddress.GitHubDotComHostAddress;
            var gitHubClient = Substitute.For<IGitHubClient>();
            var enterpriseProbe = Substitute.For<IEnterpriseProbeTask>();
            var wikiProbe = Substitute.For<IWikiProbe>();
            var client = new SimpleApiClient(
                "https://github.com/github/visualstudio",
                gitHubClient,
                new Lazy<IEnterpriseProbeTask>(() => enterpriseProbe),
                new Lazy<IWikiProbe>(() => wikiProbe));

            var result = client.HasWiki();

            Assert.False(result);
        }
Пример #5
0
        public void ReturnsTrueWhenLoginIsSetToOAuth()
        {
            var connection = Substitute.For<IConnection>();
            connection.Credentials.Returns(new Credentials("token"));

            var gitHubClient = Substitute.For<IGitHubClient>();
            gitHubClient.Connection.Returns(connection);

            var client = new SimpleApiClient(
                "https://github.com/github/visualstudio",
                gitHubClient,
                null,
                null);

            var result = client.IsAuthenticated();
            Assert.True(result);
        }
Пример #6
0
        public void ReturnsFalseWhenAuthenicationTypeIsAnonymous()
        {
            var connection = Substitute.For<IConnection>();
            connection.Credentials=Credentials.Anonymous;

            var gitHubClient = Substitute.For<IGitHubClient>();
            gitHubClient.Connection.Returns(connection);

            var client = new SimpleApiClient(
                "https://github.com/github/visualstudio",
                gitHubClient,
                null,
                null);

            var result = client.IsAuthenticated();
            Assert.False(result);
        }
Пример #7
0
        public void ReturnsFalseWhenCredentialsNotSet()
        {
            var gitHubClient = Substitute.For<IGitHubClient>();
            gitHubClient.Connection.Credentials.Returns((Credentials)null);

            var client = new SimpleApiClient(
                "https://github.com/github/visualstudio",
                gitHubClient,
                null,
                null);

            var result = client.IsAuthenticated();
            Assert.False(result);
        }