77using System . Linq . Expressions ;
88using System ;
99using GitHub . Models ;
10- using GitHub . Api ;
1110
1211public class RepositoryCloneServiceTests
1312{
@@ -16,10 +15,10 @@ public class TheCloneRepositoryMethod : TestBaseClass
1615 [ Test ]
1716 public async Task ClonesToRepositoryPathAsync ( )
1817 {
19- var serviceProvider = Substitutes . ServiceProvider ;
18+ var serviceProvider = Substitutes . GetServiceProvider ( ) ;
2019 var operatingSystem = serviceProvider . GetOperatingSystem ( ) ;
2120 var vsGitServices = serviceProvider . GetVSGitServices ( ) ;
22- var cloneService = serviceProvider . GetRepositoryCloneService ( ) ;
21+ var cloneService = CreateRepositoryCloneService ( serviceProvider ) ;
2322
2423 await cloneService . CloneRepository ( "https://github.com/foo/bar" , @"c:\dev\bar" ) ;
2524
@@ -35,15 +34,9 @@ public async Task ClonesToRepositoryPathAsync()
3534 [ TestCase ( "https://enterprise.com/foo/bar" , 0 , nameof ( UsageModel . MeasuresModel . NumberOfGitHubClones ) ) ]
3635 public async Task UpdatesMetricsWhenRepositoryClonedAsync ( string cloneUrl , int numberOfCalls , string counterName )
3736 {
38- var serviceProvider = Substitutes . ServiceProvider ;
39- var operatingSystem = serviceProvider . GetOperatingSystem ( ) ;
40- var vsGitServices = serviceProvider . GetVSGitServices ( ) ;
41- var teamExplorerServices = Substitute . For < ITeamExplorerServices > ( ) ;
42- var graphqlFactory = Substitute . For < IGraphQLClientFactory > ( ) ;
43- var gitHubContextService = Substitute . For < IGitHubContextService > ( ) ;
44- var usageTracker = Substitute . For < IUsageTracker > ( ) ;
45- var cloneService = new RepositoryCloneService ( operatingSystem , vsGitServices , teamExplorerServices ,
46- graphqlFactory , gitHubContextService , usageTracker ) ;
37+ var serviceProvider = Substitutes . GetServiceProvider ( ) ;
38+ var usageTracker = serviceProvider . GetUsageTracker ( ) ;
39+ var cloneService = CreateRepositoryCloneService ( serviceProvider ) ;
4740
4841 await cloneService . CloneRepository ( cloneUrl , @"c:\dev\bar" ) ;
4942 var model = UsageModel . Create ( Guid . NewGuid ( ) ) ;
@@ -68,16 +61,11 @@ public async Task UpdatesMetricsWhenCloneOrOpenRepositoryAsync(string cloneUrl,
6861 {
6962 var repositoryPath = @"c:\dev\bar" ;
7063 var cloneDialogResult = new CloneDialogResult ( repositoryPath , cloneUrl ) ;
71- var serviceProvider = Substitutes . ServiceProvider ;
64+ var serviceProvider = Substitutes . GetServiceProvider ( ) ;
7265 var operatingSystem = serviceProvider . GetOperatingSystem ( ) ;
7366 operatingSystem . Directory . DirectoryExists ( repositoryPath ) . Returns ( dirExists ) ;
74- var vsGitServices = serviceProvider . GetVSGitServices ( ) ;
75- var teamExplorerServices = Substitute . For < ITeamExplorerServices > ( ) ;
76- var graphqlFactory = Substitute . For < IGraphQLClientFactory > ( ) ;
77- var gitHubContextService = Substitute . For < IGitHubContextService > ( ) ;
78- var usageTracker = Substitute . For < IUsageTracker > ( ) ;
79- var cloneService = new RepositoryCloneService ( operatingSystem , vsGitServices , teamExplorerServices ,
80- graphqlFactory , gitHubContextService , usageTracker ) ;
67+ var usageTracker = serviceProvider . GetUsageTracker ( ) ;
68+ var cloneService = CreateRepositoryCloneService ( serviceProvider ) ;
8169
8270 await cloneService . CloneOrOpenRepository ( cloneDialogResult ) ;
8371
@@ -90,16 +78,11 @@ await usageTracker.Received(numberOfCalls).IncrementCounter(
9078 [ TestCase ( @"c:\not_default\repo" , @"c:\default" , 0 , nameof ( UsageModel . MeasuresModel . NumberOfClonesToDefaultClonePath ) ) ]
9179 public async Task UpdatesMetricsWhenDefaultClonePath ( string targetPath , string defaultPath , int numberOfCalls , string counterName )
9280 {
93- var serviceProvider = Substitutes . ServiceProvider ;
94- var operatingSystem = serviceProvider . GetOperatingSystem ( ) ;
81+ var serviceProvider = Substitutes . GetServiceProvider ( ) ;
9582 var vsGitServices = serviceProvider . GetVSGitServices ( ) ;
96- var teamExplorerServices = Substitute . For < ITeamExplorerServices > ( ) ;
9783 vsGitServices . GetLocalClonePathFromGitProvider ( ) . Returns ( defaultPath ) ;
98- var graphqlFactory = Substitute . For < IGraphQLClientFactory > ( ) ;
99- var gitHubContextService = Substitute . For < IGitHubContextService > ( ) ;
100- var usageTracker = Substitute . For < IUsageTracker > ( ) ;
101- var cloneService = new RepositoryCloneService ( operatingSystem , vsGitServices , teamExplorerServices ,
102- graphqlFactory , gitHubContextService , usageTracker ) ;
84+ var usageTracker = serviceProvider . GetUsageTracker ( ) ;
85+ var cloneService = CreateRepositoryCloneService ( serviceProvider ) ;
10386
10487 await cloneService . CloneRepository ( "https://github.com/foo/bar" , targetPath ) ;
10588 var model = UsageModel . Create ( Guid . NewGuid ( ) ) ;
@@ -108,5 +91,12 @@ await usageTracker.Received(numberOfCalls).IncrementCounter(
10891 Arg . Is < Expression < Func < UsageModel . MeasuresModel , int > > > ( x =>
10992 ( ( MemberExpression ) x . Body ) . Member . Name == counterName ) ) ;
11093 }
94+
95+ static RepositoryCloneService CreateRepositoryCloneService ( IGitHubServiceProvider sp )
96+ {
97+ return new RepositoryCloneService ( sp . GetOperatingSystem ( ) , sp . GetVSGitServices ( ) , sp . GetTeamExplorerServices ( ) ,
98+ sp . GetGraphQLClientFactory ( ) , sp . GetGitHubContextService ( ) , sp . GetUsageTracker ( ) ) ;
99+
100+ }
111101 }
112102}
0 commit comments