|
1 | 1 | using System; |
2 | 2 | using System.Collections; |
3 | 3 | using System.Collections.Generic; |
4 | | -using System.Diagnostics; |
5 | 4 | using System.Linq; |
6 | 5 | using System.Reflection; |
7 | 6 |
|
8 | 7 | namespace ObjectFiller |
9 | 8 | { |
10 | 9 | public class ObjectFiller<T> where T : class |
11 | 10 | { |
12 | | - private T _objectToFill; |
13 | | - |
14 | | - public ObjectFiller(T objectToFill) |
15 | | - : this() |
16 | | - { |
17 | | - _objectToFill = objectToFill; |
18 | | - } |
19 | | - |
20 | 11 | public ObjectFiller() |
21 | 12 | { |
22 | 13 | SetupManager.Clear(); |
@@ -49,23 +40,21 @@ public T Fill(ObjectFillerSetup setup) |
49 | 40 | /// </summary> |
50 | 41 | public T Fill() |
51 | 42 | { |
52 | | - try |
53 | | - { |
54 | | - if (_objectToFill == null) |
55 | | - { |
56 | | - _objectToFill = (T)CreateInstanceOfType(typeof(T), SetupManager.GetFor<T>()); |
57 | | - } |
| 43 | + T objectToFill = (T)CreateInstanceOfType(typeof(T), SetupManager.GetFor<T>()); |
58 | 44 |
|
59 | | - Fill(_objectToFill); |
| 45 | + Fill(objectToFill); |
60 | 46 |
|
| 47 | + return objectToFill; |
| 48 | + } |
61 | 49 |
|
62 | | - return _objectToFill; |
63 | | - } |
64 | | - finally |
65 | | - { |
66 | | - _objectToFill = null; |
67 | | - } |
| 50 | + /// <summary> |
| 51 | + /// Fills your object instance. Call this after you finished your setup with the FluentAPI |
| 52 | + /// </summary> |
| 53 | + public T Fill(T instanceToFill) |
| 54 | + { |
| 55 | + FillInternal(instanceToFill); |
68 | 56 |
|
| 57 | + return instanceToFill; |
69 | 58 | } |
70 | 59 |
|
71 | 60 |
|
@@ -106,7 +95,7 @@ private object CreateInstanceOfType(Type type, ObjectFillerSetup currentSetup) |
106 | 95 | } |
107 | 96 |
|
108 | 97 |
|
109 | | - private void Fill(object objectToFill) |
| 98 | + private void FillInternal(object objectToFill) |
110 | 99 | { |
111 | 100 | var currentSetup = SetupManager.GetFor(objectToFill.GetType()); |
112 | 101 |
|
@@ -179,7 +168,7 @@ private object GetFilledPoco(Type type, ObjectFillerSetup currentSetup) |
179 | 168 | { |
180 | 169 | object result = CreateInstanceOfType(type, currentSetup); |
181 | 170 |
|
182 | | - Fill(result); |
| 171 | + FillInternal(result); |
183 | 172 | return result; |
184 | 173 | } |
185 | 174 |
|
@@ -272,7 +261,7 @@ private object GetInterfaceInstance(Type interfaceType, ObjectFillerSetup setup) |
272 | 261 | MethodInfo genericMethod = method.MakeGenericMethod(new Type[] { interfaceType }); |
273 | 262 | result = genericMethod.Invoke(setup.InterfaceMocker, null); |
274 | 263 | } |
275 | | - Fill(result); |
| 264 | + FillInternal(result); |
276 | 265 | return result; |
277 | 266 | } |
278 | 267 |
|
|
0 commit comments