Skip to content

Commit 322912d

Browse files
authored
Supporting Automapper v15. (#183)
1 parent b8b4900 commit 322912d

30 files changed

+91
-69
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ To use, configure using the configuration helper method:
99
var mapper = new Mapper(new MapperConfiguration(cfg => {
1010
cfg.AddExpressionMapping();
1111
// Rest of your configuration
12-
}));
12+
}, loggerFactory));
1313

1414
// or if using the MS Ext DI:
1515

src/AutoMapper.Extensions.ExpressionMapping/AutoMapper.Extensions.ExpressionMapping.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<Summary>Expression mapping (OData) extensions for AutoMapper</Summary>
55
<Description>Expression mapping (OData) extensions for AutoMapper</Description>
6-
<TargetFramework>net8.0</TargetFramework>
6+
<TargetFramework>net8.0</TargetFramework>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>
88
<AssemblyOriginatorKeyFile>..\..\AutoMapper.snk</AssemblyOriginatorKeyFile>
99
<SignAssembly>true</SignAssembly>
@@ -29,7 +29,7 @@
2929
</ItemGroup>
3030

3131
<ItemGroup>
32-
<PackageReference Include="AutoMapper" Version="[14.0.0,15.0.0)" />
32+
<PackageReference Include="AutoMapper" Version="[15.0.0,16.0.0)" />
3333
<PackageReference Include="MinVer" Version="6.0.0">
3434
<PrivateAssets>all</PrivateAssets>
3535
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using Microsoft.Extensions.Logging.Abstractions;
2+
using System;
3+
4+
namespace AutoMapper.Extensions.ExpressionMapping
5+
{
6+
public static class ConfigurationHelper
7+
{
8+
public static MapperConfiguration GetMapperConfiguration(Action<IMapperConfigurationExpression> configure)
9+
{
10+
return new MapperConfiguration(configure, new NullLoggerFactory());
11+
}
12+
13+
public static MapperConfiguration GetMapperConfiguration(MapperConfigurationExpression configurationExpression)
14+
{
15+
return new MapperConfiguration(configurationExpression, new NullLoggerFactory());
16+
}
17+
}
18+
}

src/AutoMapper.Extensions.ExpressionMapping/ExpressionMapper.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ public Expression MapExpression(IGlobalConfiguration configurationProvider, Prof
3232
Constant(configurationProvider)
3333
);
3434

35+
public TypePair? GetAssociatedTypes(TypePair initialTypes)
36+
{
37+
return null;
38+
}
39+
3540
internal class MappingVisitor : ExpressionVisitor
3641
{
3742
private IList<Type> _destSubTypes = new Type[0];

src/AutoMapper.Extensions.ExpressionMapping/XpressionMapperVisitor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ private void ConfigureAnonymousTypeMaps(Type oldType, Type newAnonymousType)
286286
}
287287
});
288288

289-
anonymousTypesConfigurationProvider = new MapperConfiguration(anonymousTypesBaseMappings);
289+
anonymousTypesConfigurationProvider = ConfigurationHelper.GetMapperConfiguration(anonymousTypesBaseMappings);
290290
}
291291

292292
private MemberInitExpression GetAnonymousTypeMemberInitExpression(Dictionary<string, Expression> bindingExpressions, Type oldType)

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class CanMapExpressionWithListConstants
1212
public void Map_expression_with_constant_array()
1313
{
1414
//Arrange
15-
var config = new MapperConfiguration
15+
var config = ConfigurationHelper.GetMapperConfiguration
1616
(
1717
cfg =>
1818
{
@@ -43,7 +43,7 @@ public void Map_expression_with_constant_array()
4343
public void Map_expression_with_constant_list_using_generic_list_dot_contains()
4444
{
4545
//Arrange
46-
var config = new MapperConfiguration
46+
var config = ConfigurationHelper.GetMapperConfiguration
4747
(
4848
cfg =>
4949
{
@@ -73,7 +73,7 @@ public void Map_expression_with_constant_list_using_generic_list_dot_contains()
7373
public void Map_expression_with_constant_list_using_generic_enumerable_dot_contains()
7474
{
7575
//Arrange
76-
var config = new MapperConfiguration
76+
var config = ConfigurationHelper.GetMapperConfiguration
7777
(
7878
cfg =>
7979
{
@@ -103,7 +103,7 @@ public void Map_expression_with_constant_list_using_generic_enumerable_dot_conta
103103
public void Map_expression_with_constant_dictionary()
104104
{
105105
//Arrange
106-
var config = new MapperConfiguration
106+
var config = ConfigurationHelper.GetMapperConfiguration
107107
(
108108
cfg =>
109109
{
@@ -133,7 +133,7 @@ public void Map_expression_with_constant_dictionary()
133133
public void Map_expression_with_constant_dictionary_mapping_both_Key_and_value()
134134
{
135135
//Arrange
136-
var config = new MapperConfiguration
136+
var config = ConfigurationHelper.GetMapperConfiguration
137137
(
138138
cfg =>
139139
{

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class CanMapExpressionWithLocalExpressionConstant
1212
public void Map_expression_wchich_includes_local_constant()
1313
{
1414
//Arrange
15-
var config = new MapperConfiguration
15+
var config = ConfigurationHelper.GetMapperConfiguration
1616
(
1717
cfg =>
1818
{

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class CanMapMemberFromTypeBinaryExpression
1212
public void Can_map_using_type_binary_expression_to_test_the_parameter_expression()
1313
{
1414
//arrange
15-
var config = new MapperConfiguration(cfg =>
15+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
1616
{
1717
cfg.AddExpressionMapping();
1818

@@ -41,7 +41,7 @@ public void Can_map_using_type_binary_expression_to_test_the_parameter_expressio
4141
public void Can_map_using_type_binary_expression_to_test_a_member_expression()
4242
{
4343
//arrange
44-
var config = new MapperConfiguration(cfg =>
44+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
4545
{
4646
cfg.AddExpressionMapping();
4747

@@ -77,7 +77,7 @@ public void Can_map_using_type_binary_expression_to_test_a_member_expression()
7777
public void Can_map_using_instance_method_call_to_test_the_parameter_expression()
7878
{
7979
//arrange
80-
var config = new MapperConfiguration(cfg =>
80+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
8181
{
8282
cfg.AddExpressionMapping();
8383

@@ -101,7 +101,7 @@ public void Can_map_using_instance_method_call_to_test_the_parameter_expression(
101101
public void Can_map_using_static_method_call_to_test_the_parameter_expression()
102102
{
103103
//arrange
104-
var config = new MapperConfiguration(cfg =>
104+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
105105
{
106106
cfg.AddExpressionMapping();
107107

@@ -129,7 +129,7 @@ public void Can_map_using_static_method_call_to_test_the_parameter_expression()
129129
public void Can_map_using_static_generic_method_call_to_test_the_parameter_expression()
130130
{
131131
//arrange
132-
var config = new MapperConfiguration(cfg =>
132+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
133133
{
134134
cfg.AddExpressionMapping();
135135

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ public void CanMapNullableSelectorToNonNullableelectorWithoutCustomExpression(st
198198

199199
private static IMapper GetModelToDataMapper()
200200
{
201-
var config = new MapperConfiguration(c =>
201+
var config = ConfigurationHelper.GetMapperConfiguration(c =>
202202
{
203203
c.CreateMap<ProductModel, Product>();
204204
});
@@ -208,7 +208,7 @@ private static IMapper GetModelToDataMapper()
208208

209209
private static IMapper GetDataToModelMapper()
210210
{
211-
var config = new MapperConfiguration(c =>
211+
var config = ConfigurationHelper.GetMapperConfiguration(c =>
212212
{
213213
c.CreateMap<Product, ProductModel>();
214214
});

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class CanMapParameterBodyFromChildReferenceWithoutMemberExpression
1212
public void Can_map_parameter_body_from_child_reference_without_member_expression()
1313
{
1414
// Arrange
15-
var config = new MapperConfiguration(c =>
15+
var config = ConfigurationHelper.GetMapperConfiguration(c =>
1616
{
1717
c.CreateMap<TestCategory, TestProductDTO>()
1818
.ForMember(p => p.Brand, c => c.MapFrom(p => EF.Property<int>(p, "BrandId"))); ;
@@ -42,7 +42,7 @@ public class TestCategory
4242
}
4343
public class TestProduct
4444
{
45-
public TestCategory? Category { get; set; }
45+
public TestCategory Category { get; set; }
4646
}
4747

4848
public class TestProductDTO

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class CanMapParameterBodyWithoutMemberExpression
1212
public void Can_map_parameter_body_without_member_expression()
1313
{
1414
// Arrange
15-
var config = new MapperConfiguration(c =>
15+
var config = ConfigurationHelper.GetMapperConfiguration(c =>
1616
{
1717
c.CreateMap<TestProduct, TestProductDTO>()
1818
.ForMember(p => p.Brand, c => c.MapFrom(p => EF.Property<int>(p, "BrandId")));

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class EnumerableDotContainsWorksOnLocalVariables
1212
[Fact]
1313
public void Issue87()
1414
{
15-
var config = new MapperConfiguration(cfg =>
15+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
1616
{
1717
cfg.AddExpressionMapping();
1818

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class GrandChildDest
4444

4545
}
4646

47-
protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(cfg =>
47+
protected override MapperConfiguration Configuration { get; } = ConfigurationHelper.GetMapperConfiguration(cfg =>
4848
{
4949

5050
cfg.CreateMap<Source, Dest>()
@@ -145,7 +145,7 @@ public class GrandChildDest
145145

146146
}
147147

148-
protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(cfg =>
148+
protected override MapperConfiguration Configuration { get; } = ConfigurationHelper.GetMapperConfiguration(cfg =>
149149
{
150150
cfg.CreateMap<Source, Dest>()
151151
.ForMember(m => m.Child1, opt => opt.ExplicitExpansion())

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public class DestWithEnum : Dest
5353
[Fact]
5454
public void Can_map_unary_expression_converting_enum_to_int()
5555
{
56-
var config = new MapperConfiguration(cfg =>
56+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
5757
{
5858
cfg.AddExpressionMapping();
5959
cfg.CreateMap<SourceEnum, DestEnum>();
@@ -77,7 +77,7 @@ public void Can_map_unary_expression_converting_enum_to_int()
7777
[Fact]
7878
public void Can_map_single_properties()
7979
{
80-
var config = new MapperConfiguration(cfg =>
80+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
8181
{
8282
cfg.AddExpressionMapping();
8383
cfg.CreateMap<Source, Dest>();
@@ -100,7 +100,7 @@ public void Can_map_single_properties()
100100
[Fact]
101101
public void Can_map_flattened_properties()
102102
{
103-
var config = new MapperConfiguration(cfg =>
103+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
104104
{
105105
cfg.AddExpressionMapping();
106106
cfg.CreateMap<Source, Dest>();
@@ -123,7 +123,7 @@ public void Can_map_flattened_properties()
123123
[Fact]
124124
public void Can_map_custom_mapped_properties()
125125
{
126-
var config = new MapperConfiguration(cfg =>
126+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
127127
{
128128
cfg.AddExpressionMapping();
129129
cfg.CreateMap<Source, Dest>().ForMember(d => d.Bar, opt => opt.MapFrom(src => src.Foo));
@@ -146,7 +146,7 @@ public void Can_map_custom_mapped_properties()
146146
[Fact]
147147
public void Throw_AutoMapperMappingException_if_expression_types_dont_match()
148148
{
149-
var config = new MapperConfiguration(cfg =>
149+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
150150
{
151151
cfg.AddExpressionMapping();
152152
cfg.CreateMap<Source, Dest>();
@@ -160,7 +160,7 @@ public void Throw_AutoMapperMappingException_if_expression_types_dont_match()
160160
[Fact]
161161
public void Can_map_with_different_destination_types()
162162
{
163-
var config = new MapperConfiguration(cfg =>
163+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
164164
{
165165
cfg.AddExpressionMapping();
166166
cfg.CreateMap<Source, Dest>().ForMember(d => d.Bar, opt => opt.MapFrom(src => src.Foo));

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class DestExpressionHolder
2323
public Expression<Func<ExpressionMapping.Parent, bool>> Expression { get; set; }
2424
}
2525

26-
protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(cfg =>
26+
protected override MapperConfiguration Configuration { get; } = ConfigurationHelper.GetMapperConfiguration(cfg =>
2727
{
2828
cfg.AddExpressionMapping();
2929
cfg.CreateMap<SourceExpressionHolder, DestExpressionHolder>().ReverseMap();
@@ -109,7 +109,7 @@ public Parent Parent
109109
private Expression<Func<ParentDTO, bool>> _predicateExpression;
110110
private Parent _valid;
111111

112-
protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(cfg =>
112+
protected override MapperConfiguration Configuration { get; } = ConfigurationHelper.GetMapperConfiguration(cfg =>
113113
{
114114
cfg.AddExpressionMapping();
115115
cfg.CreateMap<GrandParent, GrandParentDTO>().ReverseMap();
@@ -319,7 +319,7 @@ public class TestModel
319319
public string Code { get; set; }
320320
}
321321

322-
protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(config => config.CreateMap<TestModel, TestData>());
322+
protected override MapperConfiguration Configuration { get; } = ConfigurationHelper.GetMapperConfiguration(config => config.CreateMap<TestModel, TestData>());
323323

324324
public void Should_map_with_closures()
325325
{

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ protected override MapperConfiguration Configuration
6969
{
7070
get
7171
{
72-
return new MapperConfiguration(config =>
72+
return ConfigurationHelper.GetMapperConfiguration(config =>
7373
{
7474
config.AddExpressionMapping();
7575
config.CreateMap<Entity<byte>, EntityDto<SimpleEnumByte>>()
@@ -169,7 +169,6 @@ protected override MapperConfiguration Configuration
169169
[InlineData(SimpleEnumUInt.Value3, 1U)]
170170
[InlineData(SimpleEnumLong.Value3, 1L)]
171171
[InlineData(SimpleEnumULong.Value3, 1UL)]
172-
[InlineData(SimpleEnumSByte.Value3, (sbyte)3)]
173172
[InlineData(SimpleEnumByte.Value3, (byte)3)]
174173
[InlineData(SimpleEnumShort.Value3, (short)3)]
175174
[InlineData(SimpleEnumUShort.Value3, (ushort)3)]

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ protected override MapperConfiguration Configuration
3939
{
4040
get
4141
{
42-
var config = new MapperConfiguration(cfg =>
42+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
4343
{
4444
cfg.AddExpressionMapping();
4545
// issue #1886

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ protected override MapperConfiguration Configuration
1717
{
1818
get
1919
{
20-
var config = new MapperConfiguration(cfg =>
20+
var config = ConfigurationHelper.GetMapperConfiguration(cfg =>
2121
{
2222
cfg.AddExpressionMapping();
2323
cfg.AddProfile(typeof(DerivedTypeProfile));

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void Should_Map_From_Generic_Type()
7373

7474
private static IMapper CreateMapper()
7575
{
76-
var mapperConfig = new MapperConfiguration(cfg =>
76+
var mapperConfig = ConfigurationHelper.GetMapperConfiguration(cfg =>
7777
{
7878
cfg.CreateMap<Model, DTO>()
7979
.ForMember(d => d.Nested, opt => opt.MapFrom(s => s));

0 commit comments

Comments
 (0)