Skip to content

Commit

Permalink
Small update to tests (#61)
Browse files Browse the repository at this point in the history
  • Loading branch information
StefH committed Mar 3, 2017
1 parent d65d1b2 commit 294ae81
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 25 deletions.
10 changes: 5 additions & 5 deletions src/System.Linq.Dynamic.Core/ExpressionParser.cs
Expand Up @@ -439,7 +439,7 @@ Expression ParseConditionalAnd()
}

// in operator for literals - example: "x in (1,2,3,4)"
// in operator to mimic contains - example: "x in @0", compare to @0.contains(x)
// in operator to mimic contains - example: "x in @0", compare to @0.Contains(x)
// Adapted from ticket submitted by github user mlewis9548
Expression ParseIn()
{
Expand Down Expand Up @@ -571,7 +571,7 @@ Expression ParseComparison()
_textParser.NextToken();
Expression right = ParseShift();
bool isEquality = op.Id == TokenId.Equal || op.Id == TokenId.DoubleEqual || op.Id == TokenId.ExclamationEqual;
if (isEquality && ((!left.Type.GetTypeInfo().IsValueType && !right.Type.GetTypeInfo().IsValueType) || (left.Type == typeof(Guid) && right.Type == typeof(Guid))))
if (isEquality && (!left.Type.GetTypeInfo().IsValueType && !right.Type.GetTypeInfo().IsValueType || left.Type == typeof(Guid) && right.Type == typeof(Guid)))
{
if (left.Type != right.Type)
{
Expand Down Expand Up @@ -1243,7 +1243,7 @@ static Expression GenerateConversion(Expression expr, Type type, int errorPos)
return Expression.Convert(expr, type);

if ((IsNumericType(exprType) || IsEnumType(exprType)) &&
(IsNumericType(type)) || IsEnumType(type))
IsNumericType(type) || IsEnumType(type))
return Expression.ConvertChecked(expr, type);
}

Expand Down Expand Up @@ -1386,7 +1386,7 @@ Expression ParseAggregate(Expression instance, Type elementType, string methodNa
throw ParseError(errorPos, Res.NoApplicableAggregate, methodName);

Type[] typeArgs;
if ((new[] { "Min", "Max", "Select", "OrderBy", "OrderByDescending" }).Contains(signature.Name))
if (new[] { "Min", "Max", "Select", "OrderBy", "OrderByDescending" }.Contains(signature.Name))
{
typeArgs = new[] { elementType, args[0].Type };
}
Expand Down Expand Up @@ -1507,7 +1507,7 @@ static bool TryGetMemberName(Expression expression, out string memberName)
var memberExpression = expression as MemberExpression;
if (memberExpression == null && expression.NodeType == ExpressionType.Coalesce)
{
memberExpression = ((expression as BinaryExpression).Left) as MemberExpression;
memberExpression = (expression as BinaryExpression).Left as MemberExpression;
}

if (memberExpression != null)
Expand Down
24 changes: 4 additions & 20 deletions test/System.Linq.Dynamic.Core.Tests/QueryableTests.Contains.cs
@@ -1,37 +1,21 @@
using System.Collections.Generic;
//using System.Linq;
using System.Linq.Dynamic.Core.Tests.Helpers.Models;
using Xunit;

namespace System.Linq.Dynamic.Core.Tests
{
public partial class QueryableTests
{
//[Fact]
//public void Contains()
//{
// const int search = 2;
// //Arrange
// var queryable = new[] { 1, 2, 3, 4, 5 }.AsQueryable();

// //Act
// bool expected = queryable.Contains(search);
// bool result = queryable.Contains(search);

// //Assert
// Assert.Equal(expected, result);
//}

[Fact]
public void Contains_Dynamic_Args()
public void Contains_Dynamic_StringList()
{
//Arrange
var baseQuery = User.GenerateSampleModels(100).AsQueryable();
var containsList = new List<string>() { "User1", "User5", "User10" };
var list = new List<string> { "User1", "User5", "User10" };

//Act
var realQuery = baseQuery.Where(x => containsList.Contains(x.UserName)).Select(x => x.Id);
var testQuery = baseQuery.Where("@0.Contains(UserName)", containsList).Select("Id");
var realQuery = baseQuery.Where(x => list.Contains(x.UserName)).Select(x => x.Id);
var testQuery = baseQuery.Where("@0.Contains(UserName)", list).Select("Id");

//Assert
Assert.Equal(realQuery.ToArray(), testQuery.Cast<Guid>().ToArray());
Expand Down

0 comments on commit 294ae81

Please sign in to comment.