Skip to content

Commit c36e100

Browse files
committed
Added ability to build lists of builders using NBuilder
1 parent 1736591 commit c36e100

File tree

4 files changed

+55
-0
lines changed

4 files changed

+55
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using NTestDataBuilder.Tests.Builders;
2+
using NUnit.Framework;
3+
4+
namespace NTestDataBuilder.Tests
5+
{
6+
class CreateListTests
7+
{
8+
[Test]
9+
public void GivenCreatingListOfSizeX_WhenListIsBuilt_ThenAListOfTheRightSizeIsGenerated()
10+
{
11+
var builderExpression = BasicCustomerBuilder.CreateListOfSize(5);
12+
13+
var builtList = builderExpression.Build();
14+
15+
Assert.That(builtList, Has.Count.EqualTo(5));
16+
}
17+
18+
[Test]
19+
public void GivenCreatingListOfSizeX_WhenListIsBuilt_ThenAListOfUniqueBuildersIsGenerated()
20+
{
21+
var builderExpression = BasicCustomerBuilder.CreateListOfSize(5);
22+
23+
var builtList = builderExpression.Build();
24+
25+
Assert.That(builtList, Is.Unique);
26+
}
27+
28+
[Test]
29+
public void GivenCreatingListOfSizeX_WhenListIsBuilt_ThenAListOfTheBuildersIsGenerated()
30+
{
31+
var builderExpression = BasicCustomerBuilder.CreateListOfSize(5);
32+
33+
var builtList = builderExpression.Build();
34+
35+
Assert.That(builtList, Has.All.With.TypeOf<BasicCustomerBuilder>());
36+
}
37+
}
38+
}

NTestDataBuilder.Tests/NTestDataBuilder.Tests.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@
3232
<WarningLevel>4</WarningLevel>
3333
</PropertyGroup>
3434
<ItemGroup>
35+
<Reference Include="FizzWare.NBuilder">
36+
<HintPath>..\packages\NBuilder.3.0.1.1\lib\FizzWare.NBuilder.dll</HintPath>
37+
</Reference>
3538
<Reference Include="nunit.framework">
3639
<HintPath>..\packages\NUnit.2.6.2\lib\nunit.framework.dll</HintPath>
3740
</Reference>
@@ -42,6 +45,7 @@
4245
<ItemGroup>
4346
<Compile Include="Builders\BasicCustomerBuilder.cs" />
4447
<Compile Include="BuildTests.cs" />
48+
<Compile Include="CreateListTests.cs" />
4549
<Compile Include="Entities\Customer.cs" />
4650
<Compile Include="GetOrDefaultTests.cs" />
4751
<Compile Include="GetSetTests.cs" />
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3+
<package id="NBuilder" version="3.0.1.1" targetFramework="net40" />
34
<package id="NUnit" version="2.6.2" targetFramework="net40" />
45
</packages>

NTestDataBuilder/DataBuilder.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Linq.Expressions;
4+
using FizzWare.NBuilder;
45

56
namespace NTestDataBuilder
67
{
@@ -79,6 +80,17 @@ public TValue GetOrDefault<TValue>(Expression<Func<TEntity, TValue>> property)
7980
: default(TValue);
8081
}
8182

83+
/// <summary>
84+
/// Creates an NBuilder list builder expression that allows you to create a list of builders.
85+
/// When you are done call .Build().Select(b => b.Build()) to get the list of entities.
86+
/// </summary>
87+
/// <param name="size">The size of list</param>
88+
/// <returns>The NBuilder list builder for a list of <see cref="TBuilder"/> of the specified size</returns>
89+
public static IListBuilder<TBuilder> CreateListOfSize(int size)
90+
{
91+
return Builder<TBuilder>.CreateListOfSize(size);
92+
}
93+
8294
/// <summary>
8395
/// Returns whether or not there is currently a value recorded against the given property from <see cref="TEntity"/>.
8496
/// </summary>

0 commit comments

Comments
 (0)