Skip to content

Commit 5f31111

Browse files
authored
Fixes for CodeQL reliability warnings. (#192)
1 parent 8dd4e54 commit 5f31111

File tree

6 files changed

+12
-37
lines changed

6 files changed

+12
-37
lines changed

src/AutoMapper.Extensions.ExpressionMapping/ConfigurationHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ public static class ConfigurationHelper
77
{
88
public static MapperConfiguration GetMapperConfiguration(Action<IMapperConfigurationExpression> configure)
99
{
10-
return new MapperConfiguration(configure, new NullLoggerFactory());
10+
return new MapperConfiguration(configure, NullLoggerFactory.Instance);
1111
}
1212

1313
public static MapperConfiguration GetMapperConfiguration(MapperConfigurationExpression configurationExpression)
1414
{
15-
return new MapperConfiguration(configurationExpression, new NullLoggerFactory());
15+
return new MapperConfiguration(configurationExpression, NullLoggerFactory.Instance);
1616
}
1717
}
1818
}

src/AutoMapper.Extensions.ExpressionMapping/ExpressionMapper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ private static Type GetSourceType(PropertyMap propertyMap) =>
267267
private PropertyMap FindPropertyMapOfExpression(MemberExpression expression)
268268
{
269269
var propertyMap = PropertyMap(expression);
270-
return propertyMap == null && expression.Expression is MemberExpression memberExpression
270+
return propertyMap == null && expression?.Expression is MemberExpression memberExpression
271271
? FindPropertyMapOfExpression(memberExpression)
272272
: propertyMap;
273273
}

src/AutoMapper.Extensions.ExpressionMapping/Extensions/VisitorExtensions.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public static MemberExpression GetMemberExpression(this LambdaExpression expr)
6262
=> expr.Body.GetUnconvertedExpression() as MemberExpression;
6363

6464
public static MemberExpression GetMemberExpression(this Expression expr)
65-
=> expr.GetUnconvertedExpression() as MemberExpression;
65+
=> expr?.GetUnconvertedExpression() as MemberExpression;
6666

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

104+
if (parentExpression == null)
105+
return null;
106+
104107
return GetParameterExpression(parentExpression);
105108
}
106109

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public void MappingMemberOfNullableParentToMemberOfNonNullableParentWithoutCusto
1111
{
1212
//arrange
1313
var mapper = GetMapper();
14-
Expression<Func<ProductModel, bool>> expression = x => x.DateTimeOffset.Value.Day.ToString() == "2";
14+
Expression<Func<ProductModel, bool>> expression = x => x.DateTimeOffset.HasValue && x.DateTimeOffset.Value.Day.ToString() == "2";
1515

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

5252
//act
5353
var mappedExpression = mapper.MapExpression<Expression<Func<Product, bool>>>(expression);
@@ -92,7 +92,7 @@ private static IMapper GetMapperWithCustomExpressions()
9292
var config = ConfigurationHelper.GetMapperConfiguration(c =>
9393
{
9494
c.CreateMap<Product, ProductModel>()
95-
.ForMember(d => d.DateTime, o => o.MapFrom(s => s.DateTime.Value))
95+
.ForMember(d => d.DateTime, o => o.MapFrom(s => s.DateTime ?? default))
9696
.ForMember(d => d.DateTimeOffset, o => o.MapFrom(s => (DateTimeOffset?)s.DateTimeOffset));
9797
});
9898
config.AssertConfigurationIsValid();

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

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -74,34 +74,6 @@ public void Equals_NullDeclaringMemberKey_ReturnsFalse()
7474
Assert.False(result);
7575
}
7676

77-
[Fact]
78-
public void Equals_DifferentTypeObject_ReturnsFalse()
79-
{
80-
// Arrange
81-
var key = new DeclaringMemberKey(_testMemberInfo1, TestFullName1);
82-
var otherObject = "some string";
83-
84-
// Act
85-
var result = key.Equals(otherObject);
86-
87-
// Assert
88-
Assert.False(result);
89-
}
90-
91-
[Fact]
92-
public void Equals_SameValues_ReturnsTrue()
93-
{
94-
// Arrange
95-
var key1 = new DeclaringMemberKey(_testMemberInfo1, TestFullName1);
96-
var key2 = new DeclaringMemberKey(_testMemberInfo1, TestFullName1);
97-
98-
// Act
99-
var result = key1.Equals(key2);
100-
101-
// Assert
102-
Assert.True(result);
103-
}
104-
10577
[Fact]
10678
public void Equals_DifferentMemberInfo_ReturnsFalse()
10779
{

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ public void Map__flattened_property()
276276
{
277277
//Arrange
278278
int age = 25;
279-
Expression<Func<UserModel, bool>> selection = s => ((s != null ? s.AccountName : null) ?? "").ToLower().StartsWith("P".ToLower()) && ((s.AgeInYears == age) && s.IsActive);
279+
Expression<Func<UserModel, bool>> selection = s => ((s != null ? s.AccountName : null) ?? "").ToLower().StartsWith("P".ToLower()) && s != null && s.AgeInYears == age && s.IsActive;
280280

281281
//Act
282282
Expression<Func<User, bool>> selectionMapped = mapper.Map<Expression<Func<User, bool>>>(selection);
@@ -531,7 +531,7 @@ public void Map_to_anonymous_type_when_init_member_is_not_a_literal()
531531
public void Map_to_anonymous_type_when_init_member_is_not_a_literal_and_parameter_is_anonymous_type()
532532
{
533533
//Arrange
534-
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);
534+
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);
535535

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

0 commit comments

Comments
 (0)