diff --git a/TestStack.Dossier.Tests/BuildTests.cs b/TestStack.Dossier.Tests/BuildTests.cs index c2fcdf6..19242b3 100644 --- a/TestStack.Dossier.Tests/BuildTests.cs +++ b/TestStack.Dossier.Tests/BuildTests.cs @@ -80,5 +80,19 @@ public void GivenBuilder_WhenCallingSetImplicitly_ShouldOverrideValues() customer.LastName.ShouldBe("Lanningham"); customer.YearJoined.ShouldBe(2014); } + + [Fact] + public void GivenBuilderUsingConstructorReflection_WhenCallingBuildExplicitly_ShouldOverrideValues() + { + Customer customer = new AutoConstructorCustomerBuilder() + .WithFirstName("Bruce") + .WithLastName("Wayne") + .WhoJoinedIn(2012) + .Build(); + + customer.FirstName.ShouldBe("Bruce"); + customer.LastName.ShouldBe("Wayne"); + customer.YearJoined.ShouldBe(2012); + } } } \ No newline at end of file diff --git a/TestStack.Dossier.Tests/Builders/AutoConstructorCustomerBuilder.cs b/TestStack.Dossier.Tests/Builders/AutoConstructorCustomerBuilder.cs new file mode 100644 index 0000000..f1b7b09 --- /dev/null +++ b/TestStack.Dossier.Tests/Builders/AutoConstructorCustomerBuilder.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TestStack.Dossier.Tests.Entities; + +namespace TestStack.Dossier.Tests.Builders +{ + class AutoConstructorCustomerBuilder : TestDataBuilder + { + protected override Customer BuildObject() + { + return BuildByConstructor(); + } + + public AutoConstructorCustomerBuilder WithFirstName(string firstName) + { + return Set(x => x.FirstName, firstName); + } + + public AutoConstructorCustomerBuilder WithLastName(string lastName) + { + return Set(x => x.LastName, lastName); + } + + public AutoConstructorCustomerBuilder WhoJoinedIn(int year) + { + return Set(x => x.YearJoined, year); + } + } +} diff --git a/TestStack.Dossier.Tests/TestStack.Dossier.Tests.csproj b/TestStack.Dossier.Tests/TestStack.Dossier.Tests.csproj index 73d099b..97b84cd 100644 --- a/TestStack.Dossier.Tests/TestStack.Dossier.Tests.csproj +++ b/TestStack.Dossier.Tests/TestStack.Dossier.Tests.csproj @@ -13,7 +13,7 @@ 512 ..\ - d4853673 + 660882d1 true @@ -54,6 +54,7 @@ + @@ -100,6 +101,9 @@ PreserveNewest + + +