Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit f5b7a05

Browse files
committed
Add NumberOfClonesToDefaultClonePath unit tests
Check that counter is only incremented when user clones a repository into the default clone path.
1 parent 916e2fd commit f5b7a05

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

test/GitHub.App.UnitTests/Services/RepositoryCloneServiceTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,25 @@ await usageTracker.Received(numberOfCalls).IncrementCounter(
4949
Arg.Is<Expression<Func<UsageModel.MeasuresModel, int>>>(x =>
5050
((MemberExpression)x.Body).Member.Name == counterName));
5151
}
52+
53+
[TestCase(@"c:\default\repo", @"c:\default", 1, nameof(UsageModel.MeasuresModel.NumberOfClonesToDefaultClonePath))]
54+
[TestCase(@"c:\not_default\repo", @"c:\default", 0, nameof(UsageModel.MeasuresModel.NumberOfClonesToDefaultClonePath))]
55+
public async Task UpdatesMetricsWhenDefaultClonePath(string targetPath, string defaultPath, int numberOfCalls, string counterName)
56+
{
57+
var serviceProvider = Substitutes.ServiceProvider;
58+
var operatingSystem = serviceProvider.GetOperatingSystem();
59+
var vsGitServices = serviceProvider.GetVSGitServices();
60+
vsGitServices.GetLocalClonePathFromGitProvider().Returns(defaultPath);
61+
var graphqlFactory = Substitute.For<IGraphQLClientFactory>();
62+
var usageTracker = Substitute.For<IUsageTracker>();
63+
var cloneService = new RepositoryCloneService(operatingSystem, vsGitServices, graphqlFactory, usageTracker);
64+
65+
await cloneService.CloneRepository("https://github.com/foo/bar", targetPath);
66+
var model = UsageModel.Create(Guid.NewGuid());
67+
68+
await usageTracker.Received(numberOfCalls).IncrementCounter(
69+
Arg.Is<Expression<Func<UsageModel.MeasuresModel, int>>>(x =>
70+
((MemberExpression)x.Body).Member.Name == counterName));
71+
}
5272
}
5373
}

0 commit comments

Comments
 (0)