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); }
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); }
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()); }
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); }
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); }
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); }
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); }