Skip to content

Commit a8f5f45

Browse files
committed
Added test that checks using NBuilder works
1 parent c36e100 commit a8f5f45

File tree

3 files changed

+58
-2
lines changed

3 files changed

+58
-2
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using NTestDataBuilder.Tests.Entities;
2+
3+
namespace NTestDataBuilder.Tests.Builders
4+
{
5+
class CustomerBuilder : DataBuilder<Customer, CustomerBuilder>
6+
{
7+
public CustomerBuilder()
8+
{
9+
WithFirstName("Rob");
10+
WithLastName("Moore");
11+
JoinedIn(2013);
12+
}
13+
14+
public CustomerBuilder WithFirstName(string firstName)
15+
{
16+
Set(x => x.FirstName, firstName);
17+
return this;
18+
}
19+
20+
public CustomerBuilder WithLastName(string lastName)
21+
{
22+
Set(x => x.LastName, lastName);
23+
return this;
24+
}
25+
26+
public CustomerBuilder JoinedIn(int yearJoined)
27+
{
28+
Set(x => x.YearJoined, yearJoined);
29+
return this;
30+
}
31+
32+
public override Customer Build()
33+
{
34+
return new Customer(
35+
Get(x => x.FirstName),
36+
Get(x => x.LastName),
37+
Get(x => x.YearJoined)
38+
);
39+
}
40+
}
41+
}

NTestDataBuilder.Tests/CreateListTests.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using NTestDataBuilder.Tests.Builders;
1+
using System.Linq;
2+
using FizzWare.NBuilder;
3+
using NTestDataBuilder.Tests.Builders;
24
using NUnit.Framework;
35

46
namespace NTestDataBuilder.Tests
@@ -26,13 +28,25 @@ public void GivenCreatingListOfSizeX_WhenListIsBuilt_ThenAListOfUniqueBuildersIs
2628
}
2729

2830
[Test]
29-
public void GivenCreatingListOfSizeX_WhenListIsBuilt_ThenAListOfTheBuildersIsGenerated()
31+
public void GivenCreatingListOfSizeX_WhenListIsBuilt_ThenAListOfTheRightBuilderTypesIsGenerated()
3032
{
3133
var builderExpression = BasicCustomerBuilder.CreateListOfSize(5);
3234

3335
var builtList = builderExpression.Build();
3436

3537
Assert.That(builtList, Has.All.With.TypeOf<BasicCustomerBuilder>());
3638
}
39+
40+
[Test]
41+
public void GivenCreatingAList_WhenUsingNBuilderToChangeTheList_ThenTheChangesAreReflected()
42+
{
43+
var generator = new SequentialGenerator<int>();
44+
45+
var list = CustomerBuilder.CreateListOfSize(3)
46+
.All().With(b => b.WithFirstName(generator.Generate().ToString()))
47+
.Build();
48+
49+
Assert.That(list.Select(b => b.Get(x => x.FirstName)), Is.EqualTo(new[]{"0", "1", "2"}));
50+
}
3751
}
3852
}

NTestDataBuilder.Tests/NTestDataBuilder.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
</ItemGroup>
4545
<ItemGroup>
4646
<Compile Include="Builders\BasicCustomerBuilder.cs" />
47+
<Compile Include="Builders\CustomerBuilder.cs" />
4748
<Compile Include="BuildTests.cs" />
4849
<Compile Include="CreateListTests.cs" />
4950
<Compile Include="Entities\Customer.cs" />

0 commit comments

Comments
 (0)