11using System ;
22using System . ComponentModel ;
3+ using System . Numerics ;
34using System . Threading . Tasks ;
45using GitHub . Extensions ;
56using GitHub . Models ;
@@ -274,6 +275,8 @@ static RepositoryCloneViewModel CreateTarget(
274275 IOperatingSystem os = null ,
275276 IConnectionManager connectionManager = null ,
276277 IRepositoryCloneService service = null ,
278+ IUsageService usageService = null ,
279+ IUsageTracker usageTracker = null ,
277280 IRepositorySelectViewModel gitHubTab = null ,
278281 IRepositorySelectViewModel enterpriseTab = null ,
279282 IRepositoryUrlViewModel urlTab = null ,
@@ -282,6 +285,8 @@ static RepositoryCloneViewModel CreateTarget(
282285 os = os ?? Substitute . For < IOperatingSystem > ( ) ;
283286 connectionManager = connectionManager ?? CreateConnectionManager ( "https://github.com" ) ;
284287 service = service ?? CreateRepositoryCloneService ( defaultClonePath ) ;
288+ usageService = CreateUsageService ( ) ;
289+ usageTracker = Substitute . For < IUsageTracker > ( ) ;
285290 gitHubTab = gitHubTab ?? CreateSelectViewModel ( ) ;
286291 enterpriseTab = enterpriseTab ?? CreateSelectViewModel ( ) ;
287292 urlTab = urlTab ?? Substitute . For < IRepositoryUrlViewModel > ( ) ;
@@ -290,11 +295,23 @@ static RepositoryCloneViewModel CreateTarget(
290295 os ,
291296 connectionManager ,
292297 service ,
298+ usageService ,
299+ usageTracker ,
293300 gitHubTab ,
294301 enterpriseTab ,
295302 urlTab ) ;
296303 }
297304
305+ static IUsageService CreateUsageService ( bool isGroupA = false )
306+ {
307+ var usageService = Substitute . For < IUsageService > ( ) ;
308+ var guidBytes = new byte [ 16 ] ;
309+ guidBytes [ guidBytes . Length - 1 ] = ( byte ) ( isGroupA ? 0 : 1 ) ;
310+ var userGuid = new Guid ( guidBytes ) ;
311+ usageService . GetUserGuid ( ) . Returns ( userGuid ) ;
312+ return usageService ;
313+ }
314+
298315 static IRepositoryModel CreateRepositoryModel ( string repo = "owner/repo" )
299316 {
300317 var split = repo . Split ( '/' ) ;
0 commit comments