Skip to content

Commit cbbad23

Browse files
committed
Ensured that UniqueEmailAddress is unique across fixture instances
1 parent a850c43 commit cbbad23

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

NTestDataBuilder.Tests/EquivalenceClasses/PersonEquivalenceClassesTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,14 @@ public void WhenGettingAnyPersonData_ThenReturnRandomPersonDataWhichIsReasonably
3838
}
3939

4040
[Fact]
41-
public void WhenGettingUniqueEmail_ThenReturnUniqueEmails()
41+
public void WhenGettingUniqueEmail_ThenReturnUniqueEmailsAcrossFixtureInstances()
4242
{
4343
var source = new PersonEmailAddressSource();
4444
var generatedValues = new List<string>();
45+
var any2 = new AnonymousValueFixture();
4546

46-
for (var i = 0; i < source.Data.Count; i++)
47+
generatedValues.Add(any2.UniqueEmailAddress());
48+
for (var i = 0; i < source.Data.Count - 1; i++)
4749
{
4850
generatedValues.Add(Any.UniqueEmailAddress());
4951
}

NTestDataBuilder/EquivalenceClasses/Person/PersonEquivalenceClasses.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace NTestDataBuilder.EquivalenceClasses.Person
1010
public static class NameEquivalenceClasses
1111
{
1212
private static PersonEmailAddressSource _personEmailAddressSource;
13-
private static PersonEmailAddressSource _personUniqueEmailAddressSource;
13+
private static PersonEmailAddressSource _uniquePersonEmailAddressSource;
1414
private static PersonLanguageSource _personLanguageSource;
1515
private static PersonNameFirstFemaleSource _personNameFirstFemaleSource;
1616
private static PersonNameFirstSource _personNameFirstSource;
@@ -38,13 +38,14 @@ public static string EmailAddress(this AnonymousValueFixture fixture)
3838
/// <returns>The generated unique email</returns>
3939
public static string UniqueEmailAddress(this AnonymousValueFixture fixture)
4040
{
41-
if (fixture.Bag.UniqueEmailAddressSource == null)
41+
if (_uniquePersonEmailAddressSource == null)
4242
{
43+
if (_personEmailAddressSource == null) _personEmailAddressSource = new PersonEmailAddressSource();
4344
var generator = new SequentialGenerator(0, _personEmailAddressSource.Data.Count, listShouldBeUnique: true);
44-
fixture.Bag.UniqueEmailAddressSource = new PersonEmailAddressSource(generator);
45+
_uniquePersonEmailAddressSource = new PersonEmailAddressSource(generator);
4546
}
4647

47-
return fixture.Bag.UniqueEmailAddressSource.Next();
48+
return _uniquePersonEmailAddressSource.Next();
4849
}
4950

5051
/// <summary>

0 commit comments

Comments
 (0)