Skip to content

Commit d948029

Browse files
committed
Merge pull request #36 from Tynamix/FEATURE_33_Use_Value_By_Type
Feature #33 implemented
2 parents be48f67 + a3cd6f0 commit d948029

File tree

5 files changed

+46
-1
lines changed

5 files changed

+46
-1
lines changed

ObjectFiller.Test/AddressFillingTest.cs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public void IgnoreCountry()
2525
{
2626
Filler<Address> addressFiller = new Filler<Address>();
2727
addressFiller.Setup()
28-
.OnProperty(x=>x.Country).IgnoreIt();
28+
.OnProperty(x => x.Country).IgnoreIt();
2929
Address a = addressFiller.Create();
3030

3131
Assert.IsNotNull(a.City);
@@ -80,6 +80,23 @@ public void SetupCityAndCountryPropertyWithConstantValue()
8080
Assert.IsNotNull(a.Street);
8181
}
8282

83+
[TestMethod]
84+
public void SetupTheAdressWithStaticValues()
85+
{
86+
Filler<Address> addressFiller = new Filler<Address>();
87+
addressFiller.Setup()
88+
.OnType<int>().Use(10)
89+
.OnProperty(x => x.City).Use("Dresden")
90+
.OnProperty(x => x.Country).Use("Germany")
91+
.OnProperty(x => x.PostalCode).Use(() => "0011100");
92+
93+
var address = addressFiller.Create();
94+
Assert.AreEqual("Dresden", address.City);
95+
Assert.AreEqual("Germany", address.Country);
96+
Assert.AreEqual("0011100", address.PostalCode);
97+
Assert.AreEqual(10, address.HouseNumber);
98+
}
99+
83100

84101
}
85102
}

ObjectFiller/Setup/FluentFillerApi.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public FluentFillerApi<TTargetObject> ListItemCount(int maxCount)
9090
return this;
9191
}
9292

93+
9394
/// <summary>
9495
/// Call this if the ObjectFiller should ignore all unknown types which can not filled automatically by the ObjectFiller.
9596
/// When you not call this method, the ObjectFiller raises an exception when it is not possible to generate a random value for that type!

ObjectFiller/Setup/FluentPropertyApi.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,16 @@ public FluentFillerApi<TTargetObject> UseDefault()
4949
return _callback;
5050
}
5151

52+
/// <summary>
53+
/// Defines which static value will be used for the given <see cref="TTargetType"/>
54+
/// </summary>
55+
/// <param name="valueToUse">Value which will be used</param>
56+
/// <returns>Main FluentFiller API</returns>
57+
public FluentFillerApi<TTargetObject> Use(TTargetType valueToUse)
58+
{
59+
return Use(() => valueToUse);
60+
}
61+
5262
/// <summary>
5363
/// Defines which <see cref="Func{TResult}"/> will be used to generate a value for the given <see cref="TTargetType"/>
5464
/// </summary>

ObjectFiller/Setup/FluentTypeApi.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,16 @@ internal FluentTypeApi(FluentFillerApi<TTargetObject> callback, SetupManager set
2020
_setupManager = setupManager;
2121
}
2222

23+
/// <summary>
24+
/// Defines which static value will be used for the given <see cref="TTargetType"/>
25+
/// </summary>
26+
/// <param name="valueToUse">Value which will be used</param>
27+
/// <returns>Main FluentFiller API</returns>
28+
public FluentFillerApi<TTargetObject> Use(TTargetType valueToUse)
29+
{
30+
return Use(() => valueToUse);
31+
}
32+
2333
/// <summary>
2434
/// Defines which <see cref="Func{TResult}"/> will be used to generate a value for the given <see cref="TTargetType"/>
2535
/// </summary>

ObjectFiller/Setup/IFluentApi.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ namespace Tynamix.ObjectFiller
1111
/// <typeparam name="TTargetType">Type which will be setup</typeparam>
1212
internal interface IFluentApi<TTargetObject, TTargetType> where TTargetObject : class
1313
{
14+
/// <summary>
15+
/// Defines which static value will be used for the given <see cref="TTargetType"/>
16+
/// </summary>
17+
/// <param name="valueToUse">Value which will be used</param>
18+
/// <returns>Main FluentFiller API</returns>
19+
FluentFillerApi<TTargetObject> Use(TTargetType valueToUse);
20+
1421
/// <summary>
1522
/// Defines which <see cref="Func{TResult}"/> will be used to generate a value for the given <see cref="TTargetType"/>
1623
/// </summary>

0 commit comments

Comments
 (0)