Skip to content

Commit 442eeb5

Browse files
committed
Consolidate configs.
1 parent 61295b3 commit 442eeb5

File tree

1 file changed

+63
-157
lines changed

1 file changed

+63
-157
lines changed

tests/AutoMapper.Extensions.ExpressionMapping.UnitTests/MappingWithIncludeMembersConfigurations.cs

Lines changed: 63 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)