@@ -408,7 +408,8 @@ public bool MatchesUsers(IEnumerable<User> u1s, IEnumerable<User> u2s)
408408 [ Test ]
409409 public void Does_convert_models_with_collections ( )
410410 {
411- var from = new ModelWithEnumerable {
411+ var from = new ModelWithEnumerable
412+ {
412413 Collection = new [ ] {
413414 new User { FirstName = "First1" , LastName = "Last1" , Car = new Car { Name = "Car1" , Age = 1 } } ,
414415 new User { FirstName = "First2" , LastName = "Last2" , Car = new Car { Name = "Car2" , Age = 2 } } ,
@@ -437,5 +438,45 @@ public void Does_convert_models_with_collections()
437438 Assert . That ( MatchesUsers ( hashset , from . Collection . ConvertTo < User [ ] > ( ) ) ) ;
438439 Assert . That ( MatchesUsers ( hashset , from . Collection . ConvertTo < HashSet < User > > ( ) ) ) ;
439440 }
441+
442+
443+ public class Customer
444+ {
445+ public CompanyInfo CompanyInfo { get ; set ; }
446+ // other properties
447+ }
448+
449+ public class CustomerDto
450+ {
451+ public CompanyInfoDto CompanyInfo { get ; set ; }
452+ }
453+
454+ public class CompanyInfo
455+ {
456+ public int Id { get ; set ; }
457+ public string ITN { get ; set ; }
458+ }
459+
460+ public class CompanyInfoDto
461+ {
462+ public int Id { get ; set ; }
463+ public string ITN { get ; set ; }
464+ }
465+
466+ [ Test ]
467+ public void Does_retain_null_properties ( )
468+ {
469+ var user = new User { FirstName = "Foo" } ;
470+ var userDto = user . ConvertTo < UserFields > ( ) ;
471+
472+ Assert . That ( userDto . FirstName , Is . EqualTo ( "Foo" ) ) ;
473+ Assert . That ( userDto . LastName , Is . Null ) ;
474+ Assert . That ( userDto . Car , Is . Null ) ;
475+
476+ var customer = new Customer { CompanyInfo = null } ;
477+ var dto = customer . ConvertTo < CustomerDto > ( ) ;
478+
479+ Assert . That ( dto . CompanyInfo , Is . Null ) ;
480+ }
440481 }
441482}
0 commit comments