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