using System; using System.Collections.Generic; using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; using PoweredSoft.DynamicLinq; using PoweredSoft.DynamicLinq.Test.Helpers; namespace PoweredSoft.DynamicLinq.Test { [TestClass] public class InTests { internal List Persons = new List { new MockPersonObject { FirstName = "David", LastName = "Lebee", Age = 28 }, new MockPersonObject { FirstName = "Michaela", LastName = "Vickar", Age = 27 }, new MockPersonObject { FirstName = "John", LastName = "Doe", Age = 28 }, new MockPersonObject { FirstName = "Chuck", LastName = "Norris", Age = 50 }, new MockPersonObject { FirstName = "Michael", LastName = "Jackson", Age = 58 } }; [TestMethod] public void In() { IQueryable a, b; var ageGroup = new List() { 28, 27, 50 }; a = Persons.AsQueryable().Query(t => t.In("Age", ageGroup)); b = Persons.AsQueryable().Where(t => ageGroup.Contains(t.Age)); QueryableAssert.AreEqual(a, b); } [TestMethod] public void NotIn() { IQueryable a, b; var ageGroup = new List() { 50, 58 }; a = Persons.AsQueryable().Query(t => t.NotIn("Age", ageGroup)); b = Persons.AsQueryable().Where(t => !ageGroup.Contains(t.Age)); QueryableAssert.AreEqual(a, b); } [TestMethod] public void InString() { IQueryable a, b; var group = new List() { "David", "Michaela" }; a = Persons.AsQueryable().Query(t => t.In("FirstName", group)); b = Persons.AsQueryable().Where(t => group.Contains(t.FirstName)); QueryableAssert.AreEqual(a, b); } [TestMethod] public void DiffTypeListConversion() { IQueryable a, b; var ageGroup = new List() { "28", "27", "50" }; var ageGroupInt = ageGroup.Select(t => Convert.ToInt32(t)).ToList(); a = Persons.AsQueryable().Query(t => t.In("Age", ageGroup)); b = Persons.AsQueryable().Where(t => ageGroupInt.Contains(t.Age)); QueryableAssert.AreEqual(a, b); } } }