@@ -56,8 +56,7 @@ public void ShouldExecuteAPreMappingCallbackForASpecifiedTargetTypeConditionally
5656 {
5757 using ( var mapper = Mapper . CreateNew ( ) )
5858 {
59- mapper
60- . WhenMapping
59+ mapper . WhenMapping
6160 . To < Person > ( )
6261 . Before
6362 . MappingBegins
@@ -87,8 +86,7 @@ public void ShouldExecutePreAndPostMappingCallbacksForASpecifiedMember()
8786 var preMappingName = default ( string ) ;
8887 var postMappingName = default ( string ) ;
8988
90- mapper
91- . WhenMapping
89+ mapper . WhenMapping
9290 . From < Person > ( )
9391 . Over < PersonViewModel > ( )
9492 . Before
@@ -116,8 +114,7 @@ public void ShouldExecuteAPreMemberMappingCallbackConditionally()
116114 {
117115 var mappedTargetId = default ( Guid ) ;
118116
119- mapper
120- . WhenMapping
117+ mapper . WhenMapping
121118 . From < Person > ( )
122119 . ToANew < Person > ( )
123120 . Before
@@ -145,8 +142,7 @@ public void ShouldExecuteAPostMemberMappingCallbackConditionally()
145142 var mappedAddress = default ( Address ) ;
146143 var callbackCalled = false ;
147144
148- mapper
149- . WhenMapping
145+ mapper . WhenMapping
150146 . ToANew < Person > ( )
151147 . After
152148 . Mapping ( p => p . Address )
@@ -194,8 +190,7 @@ public void ShouldRestrictAPreMappingCallbackByTargetType()
194190 {
195191 using ( var mapper = Mapper . CreateNew ( ) )
196192 {
197- mapper
198- . WhenMapping
193+ mapper . WhenMapping
199194 . To < PublicField < string > > ( )
200195 . Before
201196 . MappingBegins
@@ -219,8 +214,7 @@ public void ShouldRestrictAPreMappingCallbackBySourceTypeConditionally()
219214 {
220215 using ( var mapper = Mapper . CreateNew ( ) )
221216 {
222- mapper
223- . WhenMapping
217+ mapper . WhenMapping
224218 . From < PublicProperty < string > > ( )
225219 . To < PublicField < string > > ( )
226220 . Before
@@ -245,8 +239,7 @@ public void ShouldExecuteAPostMappingCallbackForASpecifiedTargetTypeConditionall
245239 {
246240 using ( var mapper = Mapper . CreateNew ( ) )
247241 {
248- mapper
249- . WhenMapping
242+ mapper . WhenMapping
250243 . To < PersonViewModel > ( )
251244 . After
252245 . MappingEnds
@@ -274,8 +267,7 @@ public void ShouldRestrictAPostMappingCallbackByTargetType()
274267 {
275268 using ( var mapper = Mapper . CreateNew ( ) )
276269 {
277- mapper
278- . WhenMapping
270+ mapper . WhenMapping
279271 . To < PublicProperty < string > > ( )
280272 . After
281273 . MappingEnds
@@ -299,8 +291,7 @@ public void ShouldRestrictAPostMappingCallbackBySourceType()
299291 {
300292 using ( var mapper = Mapper . CreateNew ( ) )
301293 {
302- mapper
303- . WhenMapping
294+ mapper . WhenMapping
304295 . From < PublicField < string > > ( )
305296 . To < PublicProperty < string > > ( )
306297 . After
@@ -338,5 +329,30 @@ public void ShouldExecuteAPostMappingCallbackForADerivedType()
338329 derivedSource . ShouldBeSameAs ( source ) ;
339330 }
340331 }
332+
333+ // See https://github.com/agileobjects/AgileMapper/issues/15
334+ [ Fact ]
335+ public void ShouldPopulateAChildTargetObjectInAPostMappingCallback ( )
336+ {
337+ using ( var mapper = Mapper . CreateNew ( ) )
338+ {
339+ mapper . WhenMapping
340+ . From < PublicProperty < string > > ( )
341+ . To < PublicField < string > > ( )
342+ . After
343+ . MappingEnds
344+ . Call ( ctx => ctx . Target . Value += "!" ) ;
345+
346+ var source = new PublicField < PublicProperty < string > >
347+ {
348+ Value = new PublicProperty < string > { Value = "Hello" }
349+ } ;
350+
351+ var result = mapper . Map ( source ) . ToANew < PublicProperty < PublicField < string > > > ( ) ;
352+
353+ result . Value . ShouldNotBeNull ( ) ;
354+ result . Value . Value . ShouldBe ( "Hello!" ) ;
355+ }
356+ }
341357 }
342358}
0 commit comments