Skip to content

Commit fc26600

Browse files
committed
Added failing test for #40
1 parent a28dffd commit fc26600

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

TestStack.Dossier.Tests/BuildListTests.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,5 +172,24 @@ public void WhenBuildingEntitiesImplicitly_ThenTheAnonymousValueFixtureIsSharedA
172172
customers[3].CustomerClass.ShouldBe(CustomerClass.Gold);
173173
customers[4].CustomerClass.ShouldBe(CustomerClass.Platinum);
174174
}
175+
176+
[Fact]
177+
public void GivenBuilderWithSetCallsInConstructor_WhenBuildingAListOfTheBuilders_ThenDefaultValuesShouldBeRespectedUnlessOverridden()
178+
{
179+
const string overriddenFirstName = "FirstOverride";
180+
const string overriddenLastName = "LastOverride";
181+
182+
var customers = BuilderWithDefaults.CreateListOfSize(3)
183+
.TheFirst(1).With(x => x.Set(y => y.FirstName, overriddenFirstName))
184+
.TheNext(1).With(x => x.Set(y => y.LastName, overriddenLastName))
185+
.BuildList();
186+
187+
customers[0].FirstName.ShouldBe(overriddenFirstName);
188+
customers[0].LastName.ShouldBe(BuilderWithDefaults.DefaultLastName);
189+
customers[1].FirstName.ShouldBe(BuilderWithDefaults.DefaultFirstName);
190+
customers[1].LastName.ShouldBe(overriddenLastName);
191+
customers[2].FirstName.ShouldBe(BuilderWithDefaults.DefaultFirstName);
192+
customers[2].LastName.ShouldBe(BuilderWithDefaults.DefaultLastName);
193+
}
175194
}
176195
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using TestStack.Dossier.Tests.TestHelpers.Objects.Entities;
2+
3+
namespace TestStack.Dossier.Tests.TestHelpers.Builders
4+
{
5+
public class BuilderWithDefaults : TestDataBuilder<Customer, BuilderWithDefaults>
6+
{
7+
public const string DefaultFirstName = "Joe";
8+
public const string DefaultLastName = "Bloggs";
9+
10+
public BuilderWithDefaults()
11+
{
12+
Set(x => x.FirstName, DefaultFirstName);
13+
Set(x => x.LastName, DefaultLastName);
14+
}
15+
}
16+
}

TestStack.Dossier.Tests/TestStack.Dossier.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
<Compile Include="Factories\AutoFixtureFactoryTests.cs" />
6666
<Compile Include="Factories\CallConstructorFactoryTests.cs" />
6767
<Compile Include="Factories\PublicPropertySettersFactoryTests.cs" />
68+
<Compile Include="TestHelpers\Builders\BuilderWithDefaults.cs" />
6869
<Compile Include="TestHelpers\Objects\Entities\Company.cs" />
6970
<Compile Include="TestHelpers\Objects\Entities\Customer.cs" />
7071
<Compile Include="TestHelpers\Objects\Entities\CustomerClass.cs" />

0 commit comments

Comments
 (0)