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

Commit bc91249

Browse files
committed
Add tests for NumberOfGitHub/EnterpriseClones
Check NumberOfGitHubClones and NumberOfEnterpriseClones are being incremented separately. Expect failing tests on this commit.
1 parent 8fa09e5 commit bc91249

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

src/GitHub.Exports/Models/UsageModel.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ public class MeasuresModel
8989
public int NumberOfCloneViewGitHubTab { get; set; }
9090
public int NumberOfCloneViewEnterpriseTab { get; set; }
9191
public int NumberOfCloneViewUrlTab { get; set; }
92+
public int NumberOfGitHubClones { get; set; }
93+
public int NumberOfEnterpriseClones { get; set; }
9294
}
9395
}
9496
}

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

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,13 @@ public async Task ClonesToRepositoryPathAsync()
2727
await vsGitServices.Received().Clone("https://github.com/foo/bar", @"c:\dev\bar", true);
2828
}
2929

30-
[Test]
31-
public async Task UpdatesMetricsWhenRepositoryClonedAsync()
30+
[TestCase("https://github.com/foo/bar", 1, nameof(UsageModel.MeasuresModel.NumberOfClones))]
31+
[TestCase("https://github.com/foo/bar", 1, nameof(UsageModel.MeasuresModel.NumberOfGitHubClones))]
32+
[TestCase("https://github.com/foo/bar", 0, nameof(UsageModel.MeasuresModel.NumberOfEnterpriseClones))]
33+
[TestCase("https://enterprise.com/foo/bar", 1, nameof(UsageModel.MeasuresModel.NumberOfClones))]
34+
[TestCase("https://enterprise.com/foo/bar", 1, nameof(UsageModel.MeasuresModel.NumberOfEnterpriseClones))]
35+
[TestCase("https://enterprise.com/foo/bar", 0, nameof(UsageModel.MeasuresModel.NumberOfGitHubClones))]
36+
public async Task UpdatesMetricsWhenRepositoryClonedAsync(string cloneUrl, int numberOfCalls, string counterName)
3237
{
3338
var serviceProvider = Substitutes.ServiceProvider;
3439
var operatingSystem = serviceProvider.GetOperatingSystem();
@@ -37,12 +42,12 @@ public async Task UpdatesMetricsWhenRepositoryClonedAsync()
3742
var usageTracker = Substitute.For<IUsageTracker>();
3843
var cloneService = new RepositoryCloneService(operatingSystem, vsGitServices, graphqlFactory, usageTracker);
3944

40-
await cloneService.CloneRepository("https://github.com/foo/bar", @"c:\dev\bar");
45+
await cloneService.CloneRepository(cloneUrl, @"c:\dev\bar");
4146
var model = UsageModel.Create(Guid.NewGuid());
4247

43-
await usageTracker.Received().IncrementCounter(
48+
await usageTracker.Received(numberOfCalls).IncrementCounter(
4449
Arg.Is<Expression<Func<UsageModel.MeasuresModel, int>>>(x =>
45-
((MemberExpression)x.Body).Member.Name == nameof(model.Measures.NumberOfClones)));
50+
((MemberExpression)x.Body).Member.Name == counterName));
4651
}
4752
}
4853
}

0 commit comments

Comments
 (0)