Skip to content

Commit 3cc5f40

Browse files
committed
Merge pull request #12 from robdmoore/remove-nbuilder-woot
Removed NBuilder (woot!)
2 parents 3b42298 + 41e89e1 commit 3cc5f40

15 files changed

Lines changed: 111 additions & 244 deletions
Lines changed: 28 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Collections.Generic;
22
using System.Linq;
3-
using FizzWare.NBuilder;
3+
using NTestDataBuilder.DataSources.Generators;
4+
using NTestDataBuilder.Lists;
45
using NTestDataBuilder.Tests.Builders;
56
using NTestDataBuilder.Tests.Entities;
67
using Shouldly;
@@ -15,7 +16,7 @@ public void GivenListOfBuilders_WhenCallingBuildList_ThenAListOfEntitiesOfTheRig
1516
{
1617
var builders = BasicCustomerBuilder.CreateListOfSize(5);
1718

18-
var entities = builders.BuildList<Customer, BasicCustomerBuilder>();
19+
var entities = builders.BuildList();
1920

2021
entities.Count.ShouldBe(5);
2122
}
@@ -25,7 +26,7 @@ public void GivenListOfBuilders_WhenCallingBuildList_ThenAListOfEntitiesOfTheRig
2526
{
2627
var builders = BasicCustomerBuilder.CreateListOfSize(5);
2728

28-
var entities = builders.BuildList<Customer, BasicCustomerBuilder>();
29+
var entities = builders.BuildList();
2930

3031
entities.ShouldBeAssignableTo<IList<Customer>>();
3132
}
@@ -35,45 +36,6 @@ public void GivenListOfBuilders_WhenCallingBuildList_ThenAListOfUniqueEntitiesSh
3536
{
3637
var builders = BasicCustomerBuilder.CreateListOfSize(5);
3738

38-
var entities = builders.BuildList<Customer, BasicCustomerBuilder>();
39-
40-
entities[0].ShouldNotBe(entities[1]);
41-
entities[0].ShouldNotBe(entities[2]);
42-
entities[0].ShouldNotBe(entities[3]);
43-
entities[0].ShouldNotBe(entities[4]);
44-
entities[1].ShouldNotBe(entities[2]);
45-
entities[1].ShouldNotBe(entities[3]);
46-
entities[1].ShouldNotBe(entities[4]);
47-
entities[2].ShouldNotBe(entities[3]);
48-
entities[2].ShouldNotBe(entities[4]);
49-
entities[3].ShouldNotBe(entities[4]);
50-
}
51-
52-
[Fact]
53-
public void GivenListOfBuildersWithNoCustomisation_WhenCallingExtensionMethodToBuildList_ThenListOfTheRightSizeShouldBeReturned()
54-
{
55-
var builders = CustomerBuilder.CreateListOfSize(5);
56-
57-
var entities = builders.BuildList();
58-
59-
entities.Count.ShouldBe(5);
60-
}
61-
62-
[Fact]
63-
public void GivenListOfBuildersWithNoCustomisation_WhenCallingExtensionMethodToBuildList_ThenListOfTheRightTypeShouldBeReturned()
64-
{
65-
var builders = CustomerBuilder.CreateListOfSize(5);
66-
67-
var entities = builders.BuildList();
68-
69-
entities.ShouldBeAssignableTo<IList<Customer>>();
70-
}
71-
72-
[Fact]
73-
public void GivenListOfBuildersWithNoCustomisation_WhenCallingExtensionMethodToBuildList_ThenAListOfUniqueEntitiesShouldBeReturned()
74-
{
75-
var builders = CustomerBuilder.CreateListOfSize(5);
76-
7739
var entities = builders.BuildList();
7840

7941
entities[0].ShouldNotBe(entities[1]);
@@ -89,9 +51,9 @@ public void GivenListOfBuildersWithNoCustomisation_WhenCallingExtensionMethodToB
8951
}
9052

9153
[Fact]
92-
public void GivenListOfBuildersWithCustomisation_WhenCallingExtensionMethodToBuildList_ThenTheCustomisationShouldTakeEffect()
54+
public void GivenListOfBuildersWithCustomisation_WhenBuildingEntities_ThenTheCustomisationShouldTakeEffect()
9355
{
94-
var generator = new SequentialGenerator<int>();
56+
var generator = new SequentialGenerator(0, 100);
9557
var list = CustomerBuilder.CreateListOfSize(3)
9658
.All().With(b => b.WithFirstName(generator.Generate().ToString()));
9759

@@ -100,5 +62,27 @@ public void GivenListOfBuildersWithCustomisation_WhenCallingExtensionMethodToBui
10062
data.Select(c => c.FirstName).ToArray()
10163
.ShouldBe(new[]{"0", "1", "2"});
10264
}
65+
66+
[Fact]
67+
public void GivenListOfBuildersWithARangeOfCustomisationMethods_WhenBuildingEntities_ThenThenTheListIsBuiltAndModifiedCorrectly()
68+
{
69+
var i = 0;
70+
var customers = CustomerBuilder.CreateListOfSize(5)
71+
.TheFirst(1).WithFirstName("First")
72+
.TheNext(1).WithLastName("Next Last")
73+
.TheLast(1).WithLastName("Last Last")
74+
.ThePrevious(2).With(b => b.WithLastName("last" + (++i).ToString()))
75+
.All().WhoJoinedIn(1999)
76+
.BuildList();
77+
78+
customers.ShouldBeAssignableTo<IList<Customer>>();
79+
customers.Count.ShouldBe(5);
80+
customers[0].FirstName.ShouldBe("First");
81+
customers[1].LastName.ShouldBe("Next Last");
82+
customers[2].LastName.ShouldBe("last1");
83+
customers[3].LastName.ShouldBe("last2");
84+
customers[4].LastName.ShouldBe("Last Last");
85+
customers.ShouldAllBe(c => c.YearJoined == 1999);
86+
}
10387
}
10488
}

NTestDataBuilder.Tests/Builders/BasicCustomerBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace NTestDataBuilder.Tests.Builders
66
{
7-
class BasicCustomerBuilder : TestDataBuilder<Customer, BasicCustomerBuilder>
7+
public class BasicCustomerBuilder : TestDataBuilder<Customer, BasicCustomerBuilder>
88
{
99
protected override Customer BuildObject()
1010
{

NTestDataBuilder.Tests/Builders/CustomerBuilder.cs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,7 @@
1-
using System.Collections.Generic;
2-
using FizzWare.NBuilder;
3-
using NTestDataBuilder.Tests.Entities;
1+
using NTestDataBuilder.Tests.Entities;
42

53
namespace NTestDataBuilder.Tests.Builders
64
{
7-
static class CustomerBuilderExtensions
8-
{
9-
public static IList<Customer> BuildList(this IOperable<CustomerBuilder> list)
10-
{
11-
return list.BuildList<Customer, CustomerBuilder>();
12-
}
13-
14-
public static IList<Customer> BuildList(this IListBuilder<CustomerBuilder> list)
15-
{
16-
return list.BuildList<Customer, CustomerBuilder>();
17-
}
18-
}
19-
205
public class CustomerBuilder : TestDataBuilder<Customer, CustomerBuilder>
216
{
227
public virtual CustomerBuilder WithFirstName(string firstName)

NTestDataBuilder.Tests/CreateListTests.cs

Lines changed: 0 additions & 45 deletions
This file was deleted.

NTestDataBuilder.Tests/GetAnonymousTests.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
using FizzWare.NBuilder;
1+
using NTestDataBuilder.Lists;
22
using NTestDataBuilder.Tests.Builders;
3-
using NTestDataBuilder.Tests.Entities;
43
using NTestDataBuilder.Tests.TestHelpers;
54
using Shouldly;
65
using Xunit;
@@ -9,7 +8,7 @@ namespace NTestDataBuilder.Tests
98
{
109
public class GetAnonymousTests
1110
{
12-
private BasicCustomerBuilder _b;
11+
private readonly BasicCustomerBuilder _b;
1312

1413
public GetAnonymousTests()
1514
{
@@ -69,8 +68,8 @@ public void GivenGlobalValueSupplierSet_WhenGeneratingList_UseTheSupplierForTheR
6968
{
7069
AnonymousValueFixture.GlobalValueSuppliers.Add(new YearValueSupplier());
7170
var customers = CustomerBuilder.CreateListOfSize(5)
72-
.TheLast(1).With(b => b.WhoJoinedIn(1990))
73-
.BuildList<Customer, CustomerBuilder>();
71+
.TheLast(1).WhoJoinedIn(1990)
72+
.BuildList();
7473

7574
customers[0].YearJoined.ShouldBe(2000);
7675
customers[1].YearJoined.ShouldBe(2001);

NTestDataBuilder.Tests/ListBuilderTests.cs

Lines changed: 0 additions & 34 deletions
This file was deleted.

NTestDataBuilder.Tests/NTestDataBuilder.Tests.csproj

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@
3131
<WarningLevel>4</WarningLevel>
3232
</PropertyGroup>
3333
<ItemGroup>
34-
<Reference Include="FizzWare.NBuilder">
35-
<HintPath>..\packages\NBuilder.3.0.1.1\lib\FizzWare.NBuilder.dll</HintPath>
36-
</Reference>
3734
<Reference Include="NSubstitute, Version=1.7.2.0, Culture=neutral, PublicKeyToken=92dd2e9066daa5ca, processorArchitecture=MSIL">
3835
<SpecificVersion>False</SpecificVersion>
3936
<HintPath>..\packages\NSubstitute.1.7.2.0\lib\NET40\NSubstitute.dll</HintPath>
@@ -69,13 +66,11 @@
6966
<Compile Include="Builders\CustomerBuilder.cs" />
7067
<Compile Include="Builders\ProxyAlteringCustomerBuilder.cs" />
7168
<Compile Include="BuildTests.cs" />
72-
<Compile Include="CreateListTests.cs" />
7369
<Compile Include="Entities\Company.cs" />
7470
<Compile Include="Entities\Customer.cs" />
7571
<Compile Include="GetAnonymousTests.cs" />
7672
<Compile Include="GetOrDefaultTests.cs" />
7773
<Compile Include="GetSetTests.cs" />
78-
<Compile Include="ListBuilderTests.cs" />
7974
<Compile Include="Properties\AssemblyInfo.cs" />
8075
<Compile Include="ProxyBuilderTests.cs" />
8176
<Compile Include="TestHelpers\StaticAnonymousValueSupplier.cs" />

NTestDataBuilder/DataSources/Generators/RandomGenerator.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ namespace NTestDataBuilder.DataSources.Generators
88
public class RandomGenerator : IGenerator
99
{
1010
private readonly Random _random;
11+
/// <inheritdoc />
1112
public int StartIndex { get; set; }
13+
/// <inheritdoc />
1214
public int ListSize { get; set; }
1315

1416
/// <summary>

NTestDataBuilder/DataSources/Generators/SequentialGenerator.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,13 @@ namespace NTestDataBuilder.DataSources.Generators
88
public class SequentialGenerator : IGenerator
99
{
1010
private int _currentListIndex;
11+
/// <inheritdoc />
1112
public int StartIndex { get; set; }
13+
/// <inheritdoc />
1214
public int ListSize { get; set; }
15+
/// <summary>
16+
/// Whether or not the list should be unique
17+
/// </summary>
1318
public bool ListShouldBeUnique { get; private set; }
1419

1520
/// <summary>
@@ -23,6 +28,7 @@ public SequentialGenerator()
2328
/// </summary>
2429
/// <param name="startIndex">The first index that can be selected in a list. Ranges from 0 to one less than the number of items in the list</param>
2530
/// <param name="listSize">The number of items in the list</param>
31+
/// <param name="listShouldBeUnique">Whether or not the generated list should be guaranteed to be unique or the range of values can be looped through infinitely</param>
2632
public SequentialGenerator(int startIndex, int listSize, bool listShouldBeUnique = false)
2733
{
2834
if (startIndex < 0) throw new ArgumentException("startIndex must be zero or more");

NTestDataBuilder/Lists/ListBuilder.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using System.Linq;
44
using System.Reflection;
55
using Castle.DynamicProxy;
6-
using FizzWare.NBuilder;
76

87
namespace NTestDataBuilder.Lists
98
{

0 commit comments

Comments
 (0)