@@ -31,7 +31,7 @@ public void EnumToAnotherEnumMapTest()
3131 } ;
3232
3333 var unitOfWorkViewModel = unitOfWork . Map < UnitOfWork , UnitOfWorkViewModel > ( ) ;
34- Assert . AreEqual ( ( int ) unitOfWork . State , ( int ) unitOfWorkViewModel . State ) ;
34+ Assert . AreEqual ( ( int ) unitOfWork . State , ( int ) unitOfWorkViewModel . State ) ;
3535 Assert . AreEqual ( unitOfWork . Id , unitOfWorkViewModel . Id ) ;
3636 }
3737
@@ -60,7 +60,7 @@ public void DefaultPrimitiveTypePropertyToStringTest()
6060 . Member ( dest => dest . TestString , src => src . TestDecimal ) ;
6161 Mapper . RegisterCustom < decimal , string > ( src => src . ToString ( "#0.00" , CultureInfo . InvariantCulture ) ) ;
6262 Mapper . Compile ( ) ;
63- var test = new TestDefaultDecimal ( ) { TestDecimal = default ( decimal ) } ;
63+ var test = new TestDefaultDecimal ( ) { TestDecimal = default ( decimal ) } ;
6464 test . TestDecimal = default ( decimal ) ;
6565 var result = Mapper . Map < TestDefaultDecimal , TestDefaultDecimalToStringViewModel > ( test ) ;
6666 //This is where the mapping fails
@@ -74,9 +74,9 @@ public void MemberMappingsHasHigherPriorityThanCaseSensetiveTest()
7474 . Member ( t => t . Enabled , s => s . enabled == "Y" ) ;
7575 Mapper . Compile ( ) ;
7676
77- var source = new Source { enabled = "N" } ;
78- var result = Mapper . Map < Source , TargetViewModel > ( source ) ;
79- Assert . AreEqual ( result . Enabled , false ) ;
77+ var source = new Source { enabled = "N" } ;
78+ var result = Mapper . Map < Source , TargetViewModel > ( source ) ;
79+ Assert . AreEqual ( result . Enabled , false ) ;
8080 }
8181
8282 [ Test ]
@@ -293,7 +293,7 @@ public void HiddenInheritedMemberMap()
293293 Assert . AreEqual ( result , srcDst . Value ) ;
294294 }
295295
296- private void MapBaseMember < T , TN > ( IMemberConfiguration < T , TN > mapConfig )
296+ private void MapBaseMember < T , TN > ( IMemberConfiguration < T , TN > mapConfig )
297297 where T : Gift
298298 where TN : GiftViewModel
299299 {
@@ -421,7 +421,8 @@ public void BeforeMapDuplicateTest()
421421 . Before ( ( src , dest ) => dest . Name = src . Name )
422422 . Before ( ( src , dest ) => dest . Name = src . Name )
423423 . Ignore ( dest => dest . Name ) ) ;
424- Assert . That ( exception . Message , Is . EqualTo ( "BeforeMap already registered for ExpressMapper.Tests.Model.Models.Size" ) ) ;
424+ Assert . That ( exception . Message ,
425+ Is . EqualTo ( "BeforeMap already registered for ExpressMapper.Tests.Model.Models.Size" ) ) ;
425426
426427 var sizeResult = Functional . BeforeMap ( ) ;
427428 var result = Mapper . Map < Size , SizeViewModel > ( sizeResult . Key ) ;
@@ -445,7 +446,8 @@ public void AfterMapDuplicateTest()
445446 var exception = Assert . Throws < InvalidOperationException > ( ( ) => Mapper . Register < Size , SizeViewModel > ( )
446447 . After ( ( src , dest ) => dest . Name = "OVERRIDE BY AFTER MAP" )
447448 . After ( ( src , dest ) => dest . Name = "Duplicate map" ) ) ;
448- Assert . That ( exception . Message , Is . EqualTo ( "AfterMap already registered for ExpressMapper.Tests.Model.Models.Size" ) ) ;
449+ Assert . That ( exception . Message ,
450+ Is . EqualTo ( "AfterMap already registered for ExpressMapper.Tests.Model.Models.Size" ) ) ;
449451 var sizeResult = Functional . AfterMap ( ) ;
450452 var result = Mapper . Map < Size , SizeViewModel > ( sizeResult . Key ) ;
451453 Assert . AreEqual ( result , sizeResult . Value ) ;
@@ -754,7 +756,8 @@ public void NonGenericSimpleWithDestinationMap()
754756 var test = Functional . AutoMemberMap ( ) ;
755757
756758 var resultInstanceHash = test . Value . GetHashCode ( ) ;
757- var testViewModel = Mapper . Map ( test . Key , test . Value , typeof ( TestModel ) , typeof ( TestViewModel ) ) as TestViewModel ;
759+ var testViewModel =
760+ Mapper . Map ( test . Key , test . Value , typeof ( TestModel ) , typeof ( TestViewModel ) ) as TestViewModel ;
758761
759762 Assert . AreEqual ( testViewModel . GetHashCode ( ) , resultInstanceHash ) ;
760763 Assert . AreEqual ( testViewModel , test . Value ) ;
@@ -873,7 +876,7 @@ public void ExistingDestCollEqualsWithNullElement()
873876 var testItemHash = testResult . Item2 . GetHashCode ( ) ;
874877 var arrayHash = testResult . Item2 . Array . GetHashCode ( ) ;
875878 var testArr = new List < int ? > ( testResult . Item2 . Array . Length ) ;
876- testArr . AddRange ( testResult . Item2 . Array . Select ( tc => tc == null ? ( int ? ) null : tc . GetHashCode ( ) ) ) ;
879+ testArr . AddRange ( testResult . Item2 . Array . Select ( tc => tc == null ? ( int ? ) null : tc . GetHashCode ( ) ) ) ;
877880
878881 var result = Mapper . Map ( testResult . Item1 , testResult . Item2 ) ;
879882 Assert . AreEqual ( result , testResult . Item2 ) ;
@@ -950,7 +953,7 @@ public void ExistingSrcCollGreater()
950953 Assert . AreEqual ( result . Collection . ElementAt ( i ) , testResult . Item3 . Collection . ElementAt ( i ) ) ;
951954 }
952955 }
953-
956+
954957 [ Test ]
955958 public void ExistingDestDestCollGreater ( )
956959 {
@@ -1086,15 +1089,20 @@ public void ExistingDestinationComplex()
10861089 for ( var i = 0 ; i < result . SubItems . Length ; i ++ )
10871090 {
10881091 Assert . AreEqual ( result . SubItems [ i ] . GetHashCode ( ) , subItemsHashes [ i ] ) ;
1089- Assert . AreEqual ( result . SubItems [ i ] . Units . GetHashCode ( ) , subItemUnitsCollHashes [ result . SubItems [ i ] . GetHashCode ( ) ] ) ;
1092+ Assert . AreEqual ( result . SubItems [ i ] . Units . GetHashCode ( ) ,
1093+ subItemUnitsCollHashes [ result . SubItems [ i ] . GetHashCode ( ) ] ) ;
10901094
10911095 for ( var j = 0 ; j < 4 ; j ++ )
10921096 {
1093- Assert . AreEqual ( result . SubItems [ i ] . Units [ j ] . GetHashCode ( ) , subItemUnitsHashes [ result . SubItems [ i ] . GetHashCode ( ) ] [ j ] ) ;
1094- Assert . AreEqual ( result . SubItems [ i ] . Units [ j ] . SubUnits . GetHashCode ( ) , subItemUnitSubUnitCollHashes [ result . SubItems [ i ] . GetHashCode ( ) ] [ j ] ) ;
1097+ Assert . AreEqual ( result . SubItems [ i ] . Units [ j ] . GetHashCode ( ) ,
1098+ subItemUnitsHashes [ result . SubItems [ i ] . GetHashCode ( ) ] [ j ] ) ;
1099+ Assert . AreEqual ( result . SubItems [ i ] . Units [ j ] . SubUnits . GetHashCode ( ) ,
1100+ subItemUnitSubUnitCollHashes [ result . SubItems [ i ] . GetHashCode ( ) ] [ j ] ) ;
10951101 for ( var k = 0 ; k < 3 ; k ++ )
10961102 {
1097- Assert . AreEqual ( result . SubItems [ i ] . Units [ j ] . SubUnits [ k ] . GetHashCode ( ) , subItemUnitSubUnitsHashes [ result . SubItems [ i ] . GetHashCode ( ) ] [ result . SubItems [ i ] . Units [ j ] . GetHashCode ( ) ] [ k ] ) ;
1103+ Assert . AreEqual ( result . SubItems [ i ] . Units [ j ] . SubUnits [ k ] . GetHashCode ( ) ,
1104+ subItemUnitSubUnitsHashes [ result . SubItems [ i ] . GetHashCode ( ) ] [
1105+ result . SubItems [ i ] . Units [ j ] . GetHashCode ( ) ] [ k ] ) ;
10981106 }
10991107 }
11001108 }
@@ -1144,7 +1152,7 @@ public void EnumMap()
11441152
11451153 Assert . AreEqual ( GenderTypes . Men , testViewModel . Gender ) ;
11461154 Assert . AreEqual ( GenderTypes . Women . ToString ( ) , testViewModel . NullableGender ) ;
1147- Assert . AreEqual ( ( int ) GenderTypes . Women , testViewModel . GenderIndex ) ;
1155+ Assert . AreEqual ( ( int ) GenderTypes . Women , testViewModel . GenderIndex ) ;
11481156 }
11491157
11501158 [ Test ]
@@ -1203,7 +1211,7 @@ public void MemberCaseSensitivityGlobalMapTest()
12031211 } ;
12041212
12051213 var typoCaseViewModel = Mapper . Map < TypoCase , TypoCaseViewModel > ( typoCase ) ;
1206-
1214+
12071215 Assert . AreEqual ( typoCaseViewModel . Id , Guid . Empty ) ;
12081216 Assert . AreEqual ( typoCaseViewModel . Name , null ) ;
12091217 Assert . AreEqual ( typoCase . TestId , typoCaseViewModel . TestId ) ;
@@ -1416,7 +1424,7 @@ public void NestedInheritanceIncludeTest()
14161424 Assert . AreEqual ( uiViewModel . ControlViewModel . Description , textBox . Description ) ;
14171425 Assert . AreEqual ( uiViewModel . ControlViewModel . id_ctrl , textBox . Id ) ;
14181426 Assert . AreEqual ( uiViewModel . ControlViewModel . name_ctrl , textBox . Name ) ;
1419- Assert . AreEqual ( ( ( TextBoxViewModel ) uiViewModel . ControlViewModel ) . Text , textBox . Text ) ;
1427+ Assert . AreEqual ( ( ( TextBoxViewModel ) uiViewModel . ControlViewModel ) . Text , textBox . Text ) ;
14201428 }
14211429
14221430 [ Test ]
@@ -1426,7 +1434,70 @@ public void MapNullSourceReturnNullDest()
14261434 Mapper . Compile ( ) ;
14271435
14281436 Assert . IsNull ( Mapper . Map < object , object > ( null ) ) ;
1429- Assert . IsNull ( Mapper . Map < object , object > ( null , ( object ) null ) ) ;
1437+ Assert . IsNull ( Mapper . Map < object , object > ( null , ( object ) null ) ) ;
1438+ }
1439+
1440+ #region Duplicate property names in the class hierarchy
1441+
1442+ [ Test ]
1443+ public void MapDuplicatePropertyNamesInHierarchyTest ( )
1444+ {
1445+ Mapper . Register < A , AN > ( ) ;
1446+ Mapper . Register < AN , A > ( ) ;
1447+
1448+ Mapper . Register < T , TNT > ( ) ;
1449+ Mapper . Register < TNT , T > ( ) ;
1450+ Mapper . Compile ( ) ;
1451+
1452+
1453+ var tnt = new TNT
1454+ {
1455+ Foo = new AN
1456+ {
1457+ Id = 4
1458+ }
1459+ } ;
1460+
1461+ var t = new T
1462+ {
1463+ Foo = new A
1464+ {
1465+ Id = 5
1466+ }
1467+ } ;
1468+
1469+ var tntResult = t . Map < T , TNT > ( ) ;
1470+ var tResult = tnt . Map < TNT , T > ( ) ;
1471+
1472+ Assert . AreEqual ( tntResult . Foo . Id , 5 ) ;
1473+ Assert . AreEqual ( tResult . Foo . Id , 4 ) ;
1474+ }
1475+
1476+ class A
1477+ {
1478+ public int Id { get ; set ; }
14301479 }
1480+
1481+ class AN : A
1482+ {
1483+ public new int Id { get ; set ; }
1484+ }
1485+
1486+ class T
1487+ {
1488+ public A Foo { get ; set ; }
1489+ }
1490+
1491+ class TN : T
1492+ {
1493+ public new AN Foo { get ; set ; }
1494+ }
1495+
1496+ class TNT : TN
1497+ {
1498+ public new AN Foo { get ; set ; }
1499+ }
1500+
1501+ #endregion
14311502 }
14321503}
0 commit comments