Skip to content

Commit 045d8de

Browse files
committed
Merge pull request #29 from Tynamix/FEATURE_GetSetupFromFluentAPI
FillerSetup can now be exported and reused for the next time
2 parents 4aa2a01 + 720a5fe commit 045d8de

File tree

8 files changed

+204
-134
lines changed

8 files changed

+204
-134
lines changed

ObjectFiller.Test/ObjectFiller.Test.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
<Compile Include="SequenceGeneratorTest.cs" />
7474
<Compile Include="TestPoco\Person\OrderedPersonProperties.cs" />
7575
<Compile Include="TestPoco\SimpleList.cs" />
76+
<Compile Include="SaveFillerSetupTest.cs" />
7677
</ItemGroup>
7778
<ItemGroup>
7879
<ProjectReference Include="..\ObjectFiller\ObjectFiller.csproj">
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
using System;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using ObjectFiller.Test.TestPoco.Person;
4+
using Tynamix.ObjectFiller;
5+
6+
namespace ObjectFiller.Test
7+
{
8+
[TestClass]
9+
public class SaveFillerSetupTest
10+
{
11+
private FillerSetup _fillerSetup;
12+
13+
[TestInitialize]
14+
public void GetFillerSetup()
15+
{
16+
17+
Filler<Person> filler = new Filler<Person>();
18+
_fillerSetup = filler.Setup()
19+
.OnType<IAddress>().CreateInstanceOf<Address>()
20+
.OnProperty(x => x.Age).Use(new IntRange(18, 35))
21+
.OnProperty(x => x.FirstName).Use(new RealNames(RealNameStyle.FirstNameOnly))
22+
.OnProperty(x => x.LastName).Use(new RealNames(RealNameStyle.LastNameOnly))
23+
.SetupFor<Address>()
24+
.OnProperty(x => x.HouseNumber).Use(new IntRange(1, 100))
25+
.Result;
26+
27+
}
28+
29+
[TestMethod]
30+
public void UseSavedFillerDefaultSetup()
31+
{
32+
Filler<Person> filler = new Filler<Person>();
33+
filler.Setup(_fillerSetup);
34+
35+
Person p = filler.Create();
36+
37+
Assert.IsTrue(p.Age < 35 && p.Age >= 18);
38+
Assert.IsTrue(p.Address.HouseNumber < 100 && p.Age >= 1);
39+
}
40+
41+
42+
[TestMethod]
43+
public void UseSavedFillerSetupWithExtensions()
44+
{
45+
var dateNow = DateTime.Now;
46+
Filler<Person> filler = new Filler<Person>();
47+
filler.Setup(_fillerSetup)
48+
.OnProperty(x => x.Birthdate).Use(() => dateNow);
49+
50+
Person p = filler.Create();
51+
52+
Assert.IsTrue(p.Age < 35 && p.Age >= 18);
53+
Assert.IsTrue(p.Address.HouseNumber < 100 && p.Age >= 1);
54+
Assert.AreEqual(p.Birthdate, dateNow);
55+
56+
}
57+
58+
[TestMethod]
59+
public void UseSavedFillerSetupWithOverrides()
60+
{
61+
Filler<Person> filler = new Filler<Person>();
62+
filler.Setup(_fillerSetup)
63+
.OnProperty(x => x.Age).Use(() => 1000)
64+
.SetupFor<Address>()
65+
.OnProperty(x => x.HouseNumber).Use(() => 9999);
66+
67+
Person p = filler.Create();
68+
69+
Assert.AreEqual(p.Age, 1000);
70+
Assert.AreEqual(p.Address.HouseNumber, 9999);
71+
72+
}
73+
74+
75+
76+
}
77+
}

0 commit comments

Comments
 (0)