public async Task UpdatesMetricsWhenRepositoryCloned() { var serviceProvider = Substitutes.ServiceProvider; var operatingSystem = serviceProvider.GetOperatingSystem(); var vsGitServices = serviceProvider.GetVSGitServices(); var usageTracker = Substitute.For <IUsageTracker>(); var cloneService = new RepositoryCloneService(operatingSystem, vsGitServices, usageTracker); await cloneService.CloneRepository("https://github.com/foo/bar", "bar", @"c:\dev"); usageTracker.Received().IncrementCloneCount(); }
public async Task UpdatesMetricsWhenRepositoryCloned() { var serviceProvider = Substitutes.ServiceProvider; var operatingSystem = serviceProvider.GetOperatingSystem(); var vsGitServices = serviceProvider.GetVSGitServices(); var usageTracker = Substitute.For <IUsageTracker>(); var cloneService = new RepositoryCloneService(operatingSystem, vsGitServices, usageTracker); await cloneService.CloneRepository("https://github.com/foo/bar", "bar", @"c:\dev"); var model = new UsageModel(); await usageTracker.Received().IncrementCounter( Arg.Is <Expression <Func <UsageModel, int> > >(x => ((MemberExpression)x.Body).Member.Name == nameof(model.NumberOfClones))); }
public async Task UpdatesMetricsWhenRepositoryClonedAsync(string cloneUrl, int numberOfCalls, string counterName) { var serviceProvider = Substitutes.ServiceProvider; var operatingSystem = serviceProvider.GetOperatingSystem(); var vsGitServices = serviceProvider.GetVSGitServices(); var graphqlFactory = Substitute.For <IGraphQLClientFactory>(); var usageTracker = Substitute.For <IUsageTracker>(); var cloneService = new RepositoryCloneService(operatingSystem, vsGitServices, graphqlFactory, usageTracker); await cloneService.CloneRepository(cloneUrl, @"c:\dev\bar"); var model = UsageModel.Create(Guid.NewGuid()); await usageTracker.Received(numberOfCalls).IncrementCounter( Arg.Is <Expression <Func <UsageModel.MeasuresModel, int> > >(x => ((MemberExpression)x.Body).Member.Name == counterName)); }
public async Task UpdatesMetricsWhenDefaultClonePath(string targetPath, string defaultPath, int numberOfCalls, string counterName) { var serviceProvider = Substitutes.ServiceProvider; var operatingSystem = serviceProvider.GetOperatingSystem(); var vsGitServices = serviceProvider.GetVSGitServices(); var teamExplorerServices = Substitute.For <ITeamExplorerServices>(); vsGitServices.GetLocalClonePathFromGitProvider().Returns(defaultPath); var graphqlFactory = Substitute.For <IGraphQLClientFactory>(); var usageTracker = Substitute.For <IUsageTracker>(); var cloneService = new RepositoryCloneService(operatingSystem, vsGitServices, teamExplorerServices, graphqlFactory, usageTracker); await cloneService.CloneRepository("https://github.com/foo/bar", targetPath); var model = UsageModel.Create(Guid.NewGuid()); await usageTracker.Received(numberOfCalls).IncrementCounter( Arg.Is <Expression <Func <UsageModel.MeasuresModel, int> > >(x => ((MemberExpression)x.Body).Member.Name == counterName)); }