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

Commit ffc52b8

Browse files
committed
Simplify IncrementCounter assert
When the assert fails it will look like this: ``` Test 'IncrementCounter_Showing_Default_Tab("https://enterprise.com",True,1,"xxx")' failed: NSubstitute.Exceptions.ReceivedCallsException : Expected to receive exactly 1 call matching: IncrementCounter(x => (Convert(x.Body).Member.Name == value(GitHub.App.UnitTests.ViewModels.Dialog.Clone.RepositoryCloneViewModelTests+<>c__DisplayClass2_0).counterName)) Actually received no matching calls. Received 1 non-matching call (non-matching arguments indicated with '*' characters): IncrementCounter(*model => model.NumberOfCloneViewUrlTab*) ```
1 parent b1e6fe1 commit ffc52b8

1 file changed

Lines changed: 8 additions & 15 deletions

File tree

test/GitHub.App.UnitTests/ViewModels/Dialog/Clone/RepositoryCloneViewModelTests.cs

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ public async Task Default_SelectedTabIndex_For_Group(string address, bool isGrou
4545
Assert.That(target.SelectedTabIndex, Is.EqualTo(expectTabIndex));
4646
}
4747

48-
[TestCase("https://github.com", false, nameof(UsageModel.MeasuresModel.NumberOfCloneViewGitHubTab))]
49-
[TestCase("https://enterprise.com", false, nameof(UsageModel.MeasuresModel.NumberOfCloneViewEnterpriseTab))]
50-
[TestCase("https://github.com", true, nameof(UsageModel.MeasuresModel.NumberOfCloneViewUrlTab))]
51-
[TestCase("https://enterprise.com", true, nameof(UsageModel.MeasuresModel.NumberOfCloneViewUrlTab))]
52-
public async Task IncrementCounter_Showing_Default_Tab(string address, bool isGroupA, string expectCounter)
48+
[TestCase("https://github.com", false, 1, nameof(UsageModel.MeasuresModel.NumberOfCloneViewGitHubTab))]
49+
[TestCase("https://enterprise.com", false, 1, nameof(UsageModel.MeasuresModel.NumberOfCloneViewEnterpriseTab))]
50+
[TestCase("https://github.com", true, 1, nameof(UsageModel.MeasuresModel.NumberOfCloneViewUrlTab))]
51+
[TestCase("https://enterprise.com", true, 1, nameof(UsageModel.MeasuresModel.NumberOfCloneViewUrlTab))]
52+
public async Task IncrementCounter_Showing_Default_Tab(string address, bool isGroupA, int numberOfCalls, string counterName)
5353
{
5454
var cm = CreateConnectionManager(address);
5555
var connection = cm.Connections[0];
@@ -60,8 +60,9 @@ public async Task IncrementCounter_Showing_Default_Tab(string address, bool isGr
6060

6161
await target.InitializeAsync(connection).ConfigureAwait(false);
6262

63-
var counter = await GetIncrementedCounter(usageTracker);
64-
Assert.That(counter, Is.EqualTo(expectCounter));
63+
await usageTracker.Received(numberOfCalls).IncrementCounter(
64+
Arg.Is<Expression<Func<UsageModel.MeasuresModel, int>>>(x =>
65+
((MemberExpression)x.Body).Member.Name == counterName));
6566
}
6667

6768
[Test]
@@ -363,13 +364,5 @@ static IRepositoryModel CreateRepositoryModel(string owner, string name)
363364
repository.Name.Returns(name);
364365
return repository;
365366
}
366-
367-
static async Task<string> GetIncrementedCounter(IUsageTracker usageTracker)
368-
{
369-
await usageTracker.Received(1).IncrementCounter(Arg.Any<Expression<Func<UsageModel.MeasuresModel, int>>>()).ConfigureAwait(false);
370-
var expression = (Expression<Func<UsageModel.MeasuresModel, int>>)usageTracker.ReceivedCalls().First().GetArguments()[0];
371-
var counter = ((MemberExpression)expression.Body).Member.Name;
372-
return counter;
373-
}
374367
}
375368
}

0 commit comments

Comments
 (0)