Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ public static class ConfigurationHelper
{
public static MapperConfiguration GetMapperConfiguration(Action<IMapperConfigurationExpression> configure)
{
return new MapperConfiguration(configure, new NullLoggerFactory());
return new MapperConfiguration(configure, NullLoggerFactory.Instance);
}

public static MapperConfiguration GetMapperConfiguration(MapperConfigurationExpression configurationExpression)
{
return new MapperConfiguration(configurationExpression, new NullLoggerFactory());
return new MapperConfiguration(configurationExpression, NullLoggerFactory.Instance);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ private static Type GetSourceType(PropertyMap propertyMap) =>
private PropertyMap FindPropertyMapOfExpression(MemberExpression expression)
{
var propertyMap = PropertyMap(expression);
return propertyMap == null && expression.Expression is MemberExpression memberExpression
return propertyMap == null && expression?.Expression is MemberExpression memberExpression
? FindPropertyMapOfExpression(memberExpression)
: propertyMap;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public static MemberExpression GetMemberExpression(this LambdaExpression expr)
=> expr.Body.GetUnconvertedExpression() as MemberExpression;

public static MemberExpression GetMemberExpression(this Expression expr)
=> expr.GetUnconvertedExpression() as MemberExpression;
=> expr?.GetUnconvertedExpression() as MemberExpression;

/// <summary>
/// Returns the ParameterExpression for the LINQ parameter.
Expand Down Expand Up @@ -101,6 +101,9 @@ public static ParameterExpression GetParameterExpression(this Expression express
if (isExtension && parentExpression == null && methodExpression.Arguments.Count > 0)
parentExpression = methodExpression.Arguments[0];//Method is an extension method based on the type of methodExpression.Arguments[0].

if (parentExpression == null)
return null;

return GetParameterExpression(parentExpression);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public void MappingMemberOfNullableParentToMemberOfNonNullableParentWithoutCusto
{
//arrange
var mapper = GetMapper();
Expression<Func<ProductModel, bool>> expression = x => x.DateTimeOffset.Value.Day.ToString() == "2";
Expression<Func<ProductModel, bool>> expression = x => x.DateTimeOffset.HasValue && x.DateTimeOffset.Value.Day.ToString() == "2";

//act
var exception = Assert.Throws<InvalidOperationException>(() => mapper.MapExpression<Expression<Func<Product, bool>>>(expression));
Expand Down Expand Up @@ -47,7 +47,7 @@ public void MappingMemberOfNullableParentToMemberOfNonNullableParentWorksUsingCu
{
//arrange
var mapper = GetMapperWithCustomExpressions();
Expression<Func<ProductModel, bool>> expression = x => x.DateTimeOffset.Value.Day.ToString() == "2";
Expression<Func<ProductModel, bool>> expression = x => x.DateTimeOffset.HasValue && x.DateTimeOffset.Value.Day.ToString() == "2";

//act
var mappedExpression = mapper.MapExpression<Expression<Func<Product, bool>>>(expression);
Expand Down Expand Up @@ -92,7 +92,7 @@ private static IMapper GetMapperWithCustomExpressions()
var config = ConfigurationHelper.GetMapperConfiguration(c =>
{
c.CreateMap<Product, ProductModel>()
.ForMember(d => d.DateTime, o => o.MapFrom(s => s.DateTime.Value))
.ForMember(d => d.DateTime, o => o.MapFrom(s => s.DateTime ?? default))
.ForMember(d => d.DateTimeOffset, o => o.MapFrom(s => (DateTimeOffset?)s.DateTimeOffset));
});
config.AssertConfigurationIsValid();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,34 +74,6 @@ public void Equals_NullDeclaringMemberKey_ReturnsFalse()
Assert.False(result);
}

[Fact]
public void Equals_DifferentTypeObject_ReturnsFalse()
{
// Arrange
var key = new DeclaringMemberKey(_testMemberInfo1, TestFullName1);
var otherObject = "some string";

// Act
var result = key.Equals(otherObject);

// Assert
Assert.False(result);
}

[Fact]
public void Equals_SameValues_ReturnsTrue()
{
// Arrange
var key1 = new DeclaringMemberKey(_testMemberInfo1, TestFullName1);
var key2 = new DeclaringMemberKey(_testMemberInfo1, TestFullName1);

// Act
var result = key1.Equals(key2);

// Assert
Assert.True(result);
}

[Fact]
public void Equals_DifferentMemberInfo_ReturnsFalse()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ public void Map__flattened_property()
{
//Arrange
int age = 25;
Expression<Func<UserModel, bool>> selection = s => ((s != null ? s.AccountName : null) ?? "").ToLower().StartsWith("P".ToLower()) && ((s.AgeInYears == age) && s.IsActive);
Expression<Func<UserModel, bool>> selection = s => ((s != null ? s.AccountName : null) ?? "").ToLower().StartsWith("P".ToLower()) && s != null && s.AgeInYears == age && s.IsActive;

//Act
Expression<Func<User, bool>> selectionMapped = mapper.Map<Expression<Func<User, bool>>>(selection);
Expand Down Expand Up @@ -531,7 +531,7 @@ public void Map_to_anonymous_type_when_init_member_is_not_a_literal()
public void Map_to_anonymous_type_when_init_member_is_not_a_literal_and_parameter_is_anonymous_type()
{
//Arrange
Expression<Func<IQueryable<UserModel>, IEnumerable<object>>> expression = q => q.OrderBy(s => s.Id).Select(u => new { UserId = u.Id, Account = u.AccountModel }).Where(a => a.Account.Bal != -1);
Expression<Func<IQueryable<UserModel>, IEnumerable<object>>> expression = q => q.OrderBy(s => s.Id).Select(u => new { UserId = u.Id, Account = u.AccountModel }).Where(a => Math.Abs(a.Account.Bal + 1) > double.Epsilon);

//Act
Expression<Func<IQueryable<User>, IEnumerable<object>>> expMapped = (Expression<Func<IQueryable<User>, IEnumerable<object>>>)mapper.MapExpression
Expand Down