private static GitHubUserModelService CreateTarget(
            IGitHubAppInstallationsClient gitHubAppsInstallationsClient = null,
            IGitHubAppsClient gitHubAppsClient = null,
            IGitHubUserClientFactory gitHubUserClientFactory = null,
            IGitHubClient gitHubClient           = null,
            IRepositoriesClient repositoryClient = null)
        {
            gitHubAppsInstallationsClient =
                gitHubAppsInstallationsClient ?? Substitute.For <IGitHubAppInstallationsClient>();

            gitHubAppsClient = gitHubAppsClient ?? Substitute.For <IGitHubAppsClient>();
            gitHubAppsClient.Installation.Returns(gitHubAppsInstallationsClient);

            gitHubClient = gitHubClient ?? Substitute.For <IGitHubClient>();
            gitHubClient.GitHubApps.Returns(gitHubAppsClient);

            repositoryClient = repositoryClient ?? Substitute.For <IRepositoriesClient>();

            gitHubClient.Repository.Returns(repositoryClient);

            gitHubUserClientFactory = gitHubUserClientFactory ?? Substitute.For <IGitHubUserClientFactory>();
            gitHubUserClientFactory.CreateClient().Returns(gitHubClient);

            return(new GitHubUserModelService(gitHubUserClientFactory));
        }
        private static GitHubUserModelService CreateTarget(
            IGitHubAppsInstallationsClient gitHubAppsInstallationsClient = null,
            IGitHubAppsClient gitHubAppsClient = null,
            IGitHubUserClientFactory gitHubUserClientFactory = null,
            IGitHubClient gitHubClient = null)
        {
            gitHubAppsInstallationsClient =
                gitHubAppsInstallationsClient ?? Substitute.For <IGitHubAppsInstallationsClient>();

            gitHubAppsClient = gitHubAppsClient ?? Substitute.For <IGitHubAppsClient>();
            gitHubAppsClient.Installations.Returns(gitHubAppsInstallationsClient);

            gitHubClient = gitHubClient ?? Substitute.For <IGitHubClient>();
            gitHubClient.GitHubApps.Returns(gitHubAppsClient);

            gitHubUserClientFactory = gitHubUserClientFactory ?? Substitute.For <IGitHubUserClientFactory>();
            gitHubUserClientFactory.CreateClient().Returns(gitHubClient);

            var gitHubUserModelService = new GitHubUserModelService(gitHubUserClientFactory);

            return(gitHubUserModelService);
        }
 public GitHubUserModelService(IGitHubUserClientFactory gitHubUserClientFactory)
 {
     _lazyGitHubUserClient = new AsyncLazy<IGitHubClient>(() => gitHubUserClientFactory.CreateClient());
     _lazyGitHubUserGraphQLClient = new AsyncLazy<IGitHubGraphQLClient>(() => gitHubUserClientFactory.CreateGraphQLClient());
 }