@@ -11,41 +11,16 @@ public class MappingWithIncludeMembersConfigurations
1111 [ Fact ]
1212 public void ShouldMapWhenParenIsConfiguredUsingIncludeMembers ( )
1313 {
14- var config = new MapperConfiguration ( cfg =>
15- {
16- cfg . CreateMap < Player , PlayerModel > ( )
17- . IncludeMembers ( p => p . StatsA /*, p => p.StatsB*/ ) ;
18-
19- cfg . CreateMap < Stats , PlayerModel > ( )
20- . ForMember ( d => d . Name , opt => opt . Ignore ( ) )
21- . ForMember ( d => d . StatsARating , opt => opt . MapFrom ( s => s . Rating ) )
22- . ForMember ( d => d . StatsBRating , opt => opt . MapFrom ( s => s . Rating ) )
23- . ForMember ( d => d . StatsASpeed , opt => opt . MapFrom ( s => s . SpeedValue ) )
24- . ForMember ( d => d . StatsBSpeed , opt => opt . MapFrom ( s => s . SpeedValue ) )
25- . ForMember ( d => d . StatsAPower , opt => opt . MapFrom ( s => s . Power ) )
26- . ForMember ( d => d . StatsBPower , opt => opt . MapFrom ( s => s . Power ) )
27- . IncludeMembers ( p => p . StatsBuilder ) ;
28-
29- cfg . CreateMap < Builder , PlayerModel > ( )
30- . ForMember ( d => d . StatsABuilderCity , opt => opt . MapFrom ( s => s . City ) )
31- . ForMember ( d => d . StatsABuilderId , opt => opt . MapFrom ( s => s . Id ) )
32- . ForMember ( d => d . StatsBBuilderCity , opt => opt . MapFrom ( s => s . City ) )
33- . ForMember ( d => d . StatsBBuilderId , opt => opt . MapFrom ( s => s . Id ) )
34- . ForMember ( d => d . Name , opt => opt . Ignore ( ) )
35- . ForMember ( d => d . StatsASpeed , opt => opt . Ignore ( ) )
36- . ForMember ( d => d . StatsAPower , opt => opt . Ignore ( ) )
37- . ForMember ( d => d . StatsARating , opt => opt . Ignore ( ) )
38- . ForMember ( d => d . StatsBSpeed , opt => opt . Ignore ( ) )
39- . ForMember ( d => d . StatsBPower , opt => opt . Ignore ( ) )
40- . ForMember ( d => d . StatsBRating , opt => opt . Ignore ( ) ) ;
41- } ) ;
42-
14+ //Arrange
15+ var config = GetConfigurationWiithIncludeMembers ( ) ;
4316 config . AssertConfigurationIsValid ( ) ;
4417 var mapper = config . CreateMapper ( ) ;
4518
19+ //Act
4620 List < PlayerModel > models = mapper . ProjectTo < PlayerModel > ( Players ) . ToList ( ) ;
47- Assert . Equal ( "Jack" , models [ 0 ] . Name ) ;
4821
22+ //Assert
23+ Assert . Equal ( "Jack" , models [ 0 ] . Name ) ;
4924 Assert . Equal ( 1 , models [ 0 ] . StatsAPower ) ;
5025 Assert . Equal ( 2 , models [ 0 ] . StatsASpeed ) ;
5126 Assert . Equal ( 5 , models [ 0 ] . StatsARating ) ;
@@ -62,35 +37,10 @@ public void ShouldMapWhenParenIsConfiguredUsingIncludeMembers()
6237 [ Fact ]
6338 public void Map_member_init_with_include_members ( )
6439 {
65- var config = new MapperConfiguration ( cfg =>
66- {
67- cfg . AddExpressionMapping ( ) ;
68-
69- cfg . CreateMap < Player , PlayerModel > ( )
70- . ForMember ( d => d . StatsABuilderCity , opt => opt . Ignore ( ) )
71- . ForMember ( d => d . StatsABuilderId , opt => opt . Ignore ( ) )
72- . ForMember ( d => d . StatsBBuilderCity , opt => opt . Ignore ( ) )
73- . ForMember ( d => d . StatsBBuilderId , opt => opt . Ignore ( ) )
74- . IncludeMembers ( p => p . StatsA ) ;
75-
76- cfg . CreateMap < Stats , PlayerModel > ( )
77- . ForMember ( d => d . Name , opt => opt . Ignore ( ) )
78- . ForMember ( d => d . StatsABuilderCity , opt => opt . Ignore ( ) )
79- . ForMember ( d => d . StatsARating , opt => opt . MapFrom ( s => s . Rating ) )
80- . ForMember ( d => d . StatsABuilderId , opt => opt . Ignore ( ) )
81- . ForMember ( d => d . StatsBBuilderCity , opt => opt . Ignore ( ) )
82- . ForMember ( d => d . StatsBRating , opt => opt . Ignore ( ) )
83- . ForMember ( d => d . StatsBBuilderId , opt => opt . Ignore ( ) )
84- . ForMember ( d => d . StatsASpeed , opt => opt . MapFrom ( s => s . SpeedValue ) )
85- . ForMember ( d => d . StatsBSpeed , opt => opt . MapFrom ( s => s . SpeedValue ) )
86- . ForMember ( d => d . StatsAPower , opt => opt . MapFrom ( s => s . Power ) )
87- . ForMember ( d => d . StatsBPower , opt => opt . MapFrom ( s => s . Power ) ) ;
88- } ) ;
89-
40+ //Arrange
41+ var config = GetConfigurationWiithIncludeMembers ( ) ;
9042 config . AssertConfigurationIsValid ( ) ;
9143 var mapper = config . CreateMapper ( ) ;
92-
93- //Arrange
9444 Expression < Func < PlayerModel , PlayerModel > > selection = s => new PlayerModel { Name = s . Name , StatsASpeed = s . StatsASpeed , StatsAPower = s . StatsAPower , StatsARating = s . StatsARating } ;
9545
9646 //Act
@@ -107,41 +57,10 @@ public void Map_member_init_with_include_members()
10757 [ Fact ]
10858 public void Map_member_init_with_include_members_and_nested_include_members ( )
10959 {
110- var config = new MapperConfiguration ( cfg =>
111- {
112- cfg . AddExpressionMapping ( ) ;
113-
114- cfg . CreateMap < Player , PlayerModel > ( )
115- . IncludeMembers ( p => p . StatsA /*, p => p.StatsB*/ ) ;
116-
117- cfg . CreateMap < Stats , PlayerModel > ( )
118- . ForMember ( d => d . Name , opt => opt . Ignore ( ) )
119- . ForMember ( d => d . StatsARating , opt => opt . MapFrom ( s => s . Rating ) )
120- . ForMember ( d => d . StatsBRating , opt => opt . MapFrom ( s => s . Rating ) )
121- . ForMember ( d => d . StatsASpeed , opt => opt . MapFrom ( s => s . SpeedValue ) )
122- . ForMember ( d => d . StatsBSpeed , opt => opt . MapFrom ( s => s . SpeedValue ) )
123- . ForMember ( d => d . StatsAPower , opt => opt . MapFrom ( s => s . Power ) )
124- . ForMember ( d => d . StatsBPower , opt => opt . MapFrom ( s => s . Power ) )
125- . IncludeMembers ( p => p . StatsBuilder ) ;
126-
127- cfg . CreateMap < Builder , PlayerModel > ( )
128- . ForMember ( d => d . StatsABuilderCity , opt => opt . MapFrom ( s => s . City ) )
129- . ForMember ( d => d . StatsABuilderId , opt => opt . MapFrom ( s => s . Id ) )
130- . ForMember ( d => d . StatsBBuilderCity , opt => opt . MapFrom ( s => s . City ) )
131- . ForMember ( d => d . StatsBBuilderId , opt => opt . MapFrom ( s => s . Id ) )
132- . ForMember ( d => d . Name , opt => opt . Ignore ( ) )
133- . ForMember ( d => d . StatsASpeed , opt => opt . Ignore ( ) )
134- . ForMember ( d => d . StatsAPower , opt => opt . Ignore ( ) )
135- . ForMember ( d => d . StatsARating , opt => opt . Ignore ( ) )
136- . ForMember ( d => d . StatsBSpeed , opt => opt . Ignore ( ) )
137- . ForMember ( d => d . StatsBPower , opt => opt . Ignore ( ) )
138- . ForMember ( d => d . StatsBRating , opt => opt . Ignore ( ) ) ;
139- } ) ;
140-
60+ //Arrange
61+ var config = GetConfigurationWiithIncludeMembers ( ) ;
14162 config . AssertConfigurationIsValid ( ) ;
14263 var mapper = config . CreateMapper ( ) ;
143-
144- //Arrange
14564 Expression < Func < PlayerModel , PlayerModel > > selection = s => new PlayerModel
14665 {
14766 Name = s . Name ,
@@ -179,41 +98,10 @@ public void Map_member_init_with_include_members_and_nested_include_members()
17998 [ Fact ]
18099 public void Map_member_expression_with_include_members_and_nested_include_members ( )
181100 {
182- var config = new MapperConfiguration ( cfg =>
183- {
184- cfg . AddExpressionMapping ( ) ;
185-
186- cfg . CreateMap < Player , PlayerModel > ( )
187- . IncludeMembers ( p => p . StatsA ) ;
188-
189- cfg . CreateMap < Stats , PlayerModel > ( )
190- . ForMember ( d => d . Name , opt => opt . Ignore ( ) )
191- . ForMember ( d => d . StatsARating , opt => opt . MapFrom ( s => s . Rating ) )
192- . ForMember ( d => d . StatsBRating , opt => opt . MapFrom ( s => s . Rating ) )
193- . ForMember ( d => d . StatsASpeed , opt => opt . MapFrom ( s => s . SpeedValue ) )
194- . ForMember ( d => d . StatsBSpeed , opt => opt . MapFrom ( s => s . SpeedValue ) )
195- . ForMember ( d => d . StatsAPower , opt => opt . MapFrom ( s => s . Power ) )
196- . ForMember ( d => d . StatsBPower , opt => opt . MapFrom ( s => s . Power ) )
197- . IncludeMembers ( p => p . StatsBuilder ) ;
198-
199- cfg . CreateMap < Builder , PlayerModel > ( )
200- . ForMember ( d => d . StatsABuilderCity , opt => opt . MapFrom ( s => s . City ) )
201- . ForMember ( d => d . StatsABuilderId , opt => opt . MapFrom ( s => s . Id ) )
202- . ForMember ( d => d . StatsBBuilderCity , opt => opt . MapFrom ( s => s . City ) )
203- . ForMember ( d => d . StatsBBuilderId , opt => opt . MapFrom ( s => s . Id ) )
204- . ForMember ( d => d . Name , opt => opt . Ignore ( ) )
205- . ForMember ( d => d . StatsASpeed , opt => opt . Ignore ( ) )
206- . ForMember ( d => d . StatsAPower , opt => opt . Ignore ( ) )
207- . ForMember ( d => d . StatsARating , opt => opt . Ignore ( ) )
208- . ForMember ( d => d . StatsBSpeed , opt => opt . Ignore ( ) )
209- . ForMember ( d => d . StatsBPower , opt => opt . Ignore ( ) )
210- . ForMember ( d => d . StatsBRating , opt => opt . Ignore ( ) ) ;
211- } ) ;
212-
101+ //Arrange
102+ var config = GetConfigurationWiithIncludeMembers ( ) ;
213103 config . AssertConfigurationIsValid ( ) ;
214104 var mapper = config . CreateMapper ( ) ;
215-
216- //Arrange
217105 Expression < Func < PlayerModel , string > > selection = p => p . StatsABuilderCity ;
218106
219107 //Act
@@ -228,25 +116,10 @@ public void Map_member_expression_with_include_members_and_nested_include_member
228116 [ Fact ]
229117 public void Map_member_init_without_include_members ( )
230118 {
231- var config = new MapperConfiguration ( cfg =>
232- {
233- cfg . AddExpressionMapping ( ) ;
234-
235- cfg . CreateMap < Player , PlayerModel > ( )
236- . ForMember ( d => d . StatsABuilderId , opt => opt . Ignore ( ) )
237- . ForMember ( d => d . StatsABuilderCity , opt => opt . MapFrom ( s => s . StatsA . StatsBuilder . City ) )
238- . ForMember ( d => d . StatsBBuilderCity , opt => opt . Ignore ( ) )
239- . ForMember ( d => d . StatsBBuilderId , opt => opt . Ignore ( ) )
240- . ForMember ( d => d . StatsAPower , opt => opt . MapFrom ( s => s . StatsA . Power ) )
241- . ForMember ( d => d . StatsASpeed , opt => opt . MapFrom ( s => s . StatsA . SpeedValue ) )
242- . ForMember ( d => d . StatsBPower , opt => opt . MapFrom ( s => s . StatsB . Power ) )
243- . ForMember ( d => d . StatsBSpeed , opt => opt . MapFrom ( s => s . StatsB . SpeedValue ) ) ;
244- } ) ;
245-
119+ //Arrange
120+ var config = GetConfigurationWiithoutIncludeMembers ( ) ;
246121 config . AssertConfigurationIsValid ( ) ;
247122 var mapper = config . CreateMapper ( ) ;
248-
249- //Arrange
250123 Expression < Func < PlayerModel , PlayerModel > > selection = s => new PlayerModel { Name = s . Name , StatsASpeed = s . StatsASpeed , StatsAPower = s . StatsAPower , StatsARating = s . StatsARating } ;
251124
252125 //Act
@@ -263,25 +136,10 @@ public void Map_member_init_without_include_members()
263136 [ Fact ]
264137 public void Map_member_init_without_include_members_and_including_nested_members ( )
265138 {
266- var config = new MapperConfiguration ( cfg =>
267- {
268- cfg . AddExpressionMapping ( ) ;
269-
270- cfg . CreateMap < Player , PlayerModel > ( )
271- . ForMember ( d => d . StatsABuilderId , opt => opt . MapFrom ( s => s . StatsA . StatsBuilder . Id ) )
272- . ForMember ( d => d . StatsABuilderCity , opt => opt . MapFrom ( s => s . StatsA . StatsBuilder . City ) )
273- . ForMember ( d => d . StatsAPower , opt => opt . MapFrom ( s => s . StatsA . Power ) )
274- . ForMember ( d => d . StatsASpeed , opt => opt . MapFrom ( s => s . StatsA . SpeedValue ) )
275- . ForMember ( d => d . StatsBBuilderId , opt => opt . MapFrom ( s => s . StatsB . StatsBuilder . Id ) )
276- . ForMember ( d => d . StatsBBuilderCity , opt => opt . MapFrom ( s => s . StatsB . StatsBuilder . City ) )
277- . ForMember ( d => d . StatsBPower , opt => opt . MapFrom ( s => s . StatsB . Power ) )
278- . ForMember ( d => d . StatsBSpeed , opt => opt . MapFrom ( s => s . StatsB . SpeedValue ) ) ;
279- } ) ;
280-
139+ //Arrange
140+ var config = GetConfigurationWiithoutIncludeMembers ( ) ;
281141 config . AssertConfigurationIsValid ( ) ;
282142 var mapper = config . CreateMapper ( ) ;
283-
284- //Arrange
285143 Expression < Func < PlayerModel , PlayerModel > > selection = s => new PlayerModel
286144 {
287145 Name = s . Name ,
@@ -316,6 +174,54 @@ public void Map_member_init_without_include_members_and_including_nested_members
316174 Assert . Equal ( "Columbia" , result [ 0 ] . StatsB . StatsBuilder . City ) ;
317175 }
318176
177+ MapperConfiguration GetConfigurationWiithoutIncludeMembers ( )
178+ => new MapperConfiguration ( cfg =>
179+ {
180+ cfg . AddExpressionMapping ( ) ;
181+
182+ cfg . CreateMap < Player , PlayerModel > ( )
183+ . ForMember ( d => d . StatsABuilderId , opt => opt . MapFrom ( s => s . StatsA . StatsBuilder . Id ) )
184+ . ForMember ( d => d . StatsABuilderCity , opt => opt . MapFrom ( s => s . StatsA . StatsBuilder . City ) )
185+ . ForMember ( d => d . StatsAPower , opt => opt . MapFrom ( s => s . StatsA . Power ) )
186+ . ForMember ( d => d . StatsASpeed , opt => opt . MapFrom ( s => s . StatsA . SpeedValue ) )
187+ . ForMember ( d => d . StatsBBuilderId , opt => opt . MapFrom ( s => s . StatsB . StatsBuilder . Id ) )
188+ . ForMember ( d => d . StatsBBuilderCity , opt => opt . MapFrom ( s => s . StatsB . StatsBuilder . City ) )
189+ . ForMember ( d => d . StatsBPower , opt => opt . MapFrom ( s => s . StatsB . Power ) )
190+ . ForMember ( d => d . StatsBSpeed , opt => opt . MapFrom ( s => s . StatsB . SpeedValue ) ) ;
191+ } ) ;
192+
193+ MapperConfiguration GetConfigurationWiithIncludeMembers ( )
194+ => new MapperConfiguration ( cfg =>
195+ {
196+ cfg . AddExpressionMapping ( ) ;
197+
198+ cfg . CreateMap < Player , PlayerModel > ( )
199+ . IncludeMembers ( p => p . StatsA ) ;
200+
201+ cfg . CreateMap < Stats , PlayerModel > ( )
202+ . ForMember ( d => d . Name , opt => opt . Ignore ( ) )
203+ . ForMember ( d => d . StatsARating , opt => opt . MapFrom ( s => s . Rating ) )
204+ . ForMember ( d => d . StatsBRating , opt => opt . MapFrom ( s => s . Rating ) )
205+ . ForMember ( d => d . StatsASpeed , opt => opt . MapFrom ( s => s . SpeedValue ) )
206+ . ForMember ( d => d . StatsBSpeed , opt => opt . MapFrom ( s => s . SpeedValue ) )
207+ . ForMember ( d => d . StatsAPower , opt => opt . MapFrom ( s => s . Power ) )
208+ . ForMember ( d => d . StatsBPower , opt => opt . MapFrom ( s => s . Power ) )
209+ . IncludeMembers ( p => p . StatsBuilder ) ;
210+
211+ cfg . CreateMap < Builder , PlayerModel > ( )
212+ . ForMember ( d => d . StatsABuilderCity , opt => opt . MapFrom ( s => s . City ) )
213+ . ForMember ( d => d . StatsABuilderId , opt => opt . MapFrom ( s => s . Id ) )
214+ . ForMember ( d => d . StatsBBuilderCity , opt => opt . MapFrom ( s => s . City ) )
215+ . ForMember ( d => d . StatsBBuilderId , opt => opt . MapFrom ( s => s . Id ) )
216+ . ForMember ( d => d . Name , opt => opt . Ignore ( ) )
217+ . ForMember ( d => d . StatsASpeed , opt => opt . Ignore ( ) )
218+ . ForMember ( d => d . StatsAPower , opt => opt . Ignore ( ) )
219+ . ForMember ( d => d . StatsARating , opt => opt . Ignore ( ) )
220+ . ForMember ( d => d . StatsBSpeed , opt => opt . Ignore ( ) )
221+ . ForMember ( d => d . StatsBPower , opt => opt . Ignore ( ) )
222+ . ForMember ( d => d . StatsBRating , opt => opt . Ignore ( ) ) ;
223+ } ) ;
224+
319225 readonly IQueryable < Player > Players = new List < Player >
320226 {
321227 new Player
0 commit comments