public void CeilingNullable() { Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => Math.Ceiling(t.FreightDecimalNullable.Value) == 32)), "ceiling(FreightDecimalNullable/Value) eq 32m"); // ReSharper disable once CompareOfFloatsByEqualityOperator Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => Math.Ceiling(t.FreightDoubleNullable.Value) == 32)), "ceiling(FreightDoubleNullable/Value) eq 32"); }
public void FloorNullable() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => Math.Floor(t.FreightDecimalNullable.Value) == 34), Filter.Deserialize <Customer>("floor(FreightDecimalNullable) eq 34"))); // ReSharper disable once CompareOfFloatsByEqualityOperator Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => Math.Floor(t.FreightDoubleNullable.Value) == 34), Filter.Deserialize <Customer>("floor(FreightDoubleNullable) eq 34"))); }
//[TestMethod] public void Negation() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => - t.Id > 0), Filter.Deserialize <Customer>("-Id gt 0"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => - t.FreightDoubleNullable > 0), Filter.Deserialize <Customer>("-FreightDoubleNullable gt 0"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => - t.FreightDoubleNullable > 0), Filter.Deserialize <Customer>("- FreightDoubleNullable gt 0"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => - t.FreightDoubleNullable > 0), Filter.Deserialize <Customer>("- FreightDoubleNullable gt 0"))); }
// [TestMethod] public void Equal() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => String.Compare(t.Name, t.LastName, StringComparison.Ordinal) > 0), Filter.Deserialize <Customer>("Name gt LastName"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Name != t.LastName), Filter.Deserialize <Customer>("Name ne LastName"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Id == 15), Filter.Deserialize <Customer>("Id eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.FreightDoubleNullable == t.FreightDouble), Filter.Deserialize <Customer>("FreightDoubleNullable eq FreightDouble"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Sbyte == 15), Filter.Deserialize <Customer>("Sbyte eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Char == 15), Filter.Deserialize <Customer>("Char eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableSbyte == 15), Filter.Deserialize <Customer>("NullableSbyte eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableChar == 15), Filter.Deserialize <Customer>("NullableChar eq 15"))); // ReSharper disable once ConditionIsAlwaysTrueOrFalse Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Id == null), Filter.Deserialize <Customer>("Id eq null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => null > t.Id), Filter.Deserialize <Customer>("null gt Id"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => null == t.FreightDecimalNullable), Filter.Deserialize <Customer>("null eq FreightDecimalNullable"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.FreightDecimalNullable == null), Filter.Deserialize <Customer>("FreightDecimalNullable eq null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Name == null), Filter.Deserialize <Customer>("Name eq null"))); //Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr<Customer, bool>(t => null == t.Name), Filter.Deserialize<Customer>("null eq Name"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableEnumData == null), Filter.Deserialize <Customer>("NullableEnumData eq null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableEnumData == (EnumData.TestData1 | EnumData.TestData2)), Filter.Deserialize <Customer>("NullableEnumData eq Sprint.Filter.OData.Test.Models.EnumData'TestData1,TestData2'"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.EnumData == (EnumData.TestData1 | EnumData.TestData2)), Filter.Deserialize <Customer>("EnumData eq Sprint.Filter.OData.Test.Models.EnumData'TestData1,TestData2'"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.EnumDataShort == (EnumDataShort.TestData1 | EnumDataShort.TestData2)), Filter.Deserialize <Customer>("EnumDataShort eq Sprint.Filter.OData.Test.Models.EnumDataShort'TestData1,TestData2'"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.EnumDataLong == (EnumDataLong.TestData1 | EnumDataLong.TestData2)), Filter.Deserialize <Customer>("EnumDataLong eq Sprint.Filter.OData.Test.Models.EnumDataLong'TestData1,TestData2'"))); }
public void Round() { Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => Math.Round(t.FreightDecimal) == 32)), "round(FreightDecimal) eq 32m"); // ReSharper disable once CompareOfFloatsByEqualityOperator Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => Math.Round(t.FreightDouble) == 32)), "round(FreightDouble) eq 32"); }
public void Isof() { // ReSharper disable once CSharpWarnings::CS0183 Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.Parent is Customer)), "isof(Parent, Sprint.Filter.OData.Test.Models.Customer)"); // ReSharper disable once CSharpWarnings::CS0183 Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t is Customer)), "isof(Sprint.Filter.OData.Test.Models.Customer)"); }
public void Ceiling() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => Math.Ceiling(t.FreightDecimal) == 33), Filter.Deserialize <Customer>("ceiling(FreightDecimal) eq 33"))); // ReSharper disable once CompareOfFloatsByEqualityOperator Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => Math.Ceiling(t.FreightDouble) == 33), Filter.Deserialize <Customer>("ceiling(FreightDouble) eq 33"))); }
// [TestMethod] public void Multiplication() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Sbyte + t.Sbyte > 10), Filter.Deserialize <Customer>("Sbyte add Sbyte gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Sbyte + t.Sbyte == null), Filter.Deserialize <Customer>("Sbyte add Sbyte eq null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableSbyte + t.NullableSbyte > 10), Filter.Deserialize <Customer>("NullableSbyte add NullableSbyte gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableSbyte + t.NullableSbyte == null), Filter.Deserialize <Customer>("NullableSbyte add NullableSbyte eq null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableSbyte + t.Sbyte > 10), Filter.Deserialize <Customer>("NullableSbyte add Sbyte gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Sbyte + t.NullableSbyte > 10), Filter.Deserialize <Customer>("Sbyte add NullableSbyte gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableSbyte + t.Sbyte > null), Filter.Deserialize <Customer>("NullableSbyte add Sbyte gt null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Sbyte + t.NullableSbyte > null), Filter.Deserialize <Customer>("Sbyte add NullableSbyte gt null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.FreightDouble + t.NullableInt > 10), Filter.Deserialize <Customer>("FreightDouble add NullableInt gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt + t.FreightDouble > 10), Filter.Deserialize <Customer>("NullableInt add FreightDouble gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt + t.FreightDouble > t.NullableInt), Filter.Deserialize <Customer>("NullableInt add FreightDouble gt NullableInt"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt + t.NullableInt > 10), Filter.Deserialize <Customer>("NullableInt add NullableInt gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt + t.NullableInt > 10.0), Filter.Deserialize <Customer>("NullableInt add NullableInt gt 10.0"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt + t.NullableInt > t.NullableInt), Filter.Deserialize <Customer>("NullableInt add NullableInt gt NullableInt"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt + t.NullableInt != null), Filter.Deserialize <Customer>("NullableInt add NullableInt ne null"))); }
// [TestMethod] public void Division() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Sbyte / t.Sbyte > 10), Filter.Deserialize <Customer>("Sbyte div Sbyte gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Sbyte / t.Sbyte == null), Filter.Deserialize <Customer>("Sbyte div Sbyte eq null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableSbyte / t.NullableSbyte > 10), Filter.Deserialize <Customer>("NullableSbyte div NullableSbyte gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableSbyte / t.NullableSbyte == null), Filter.Deserialize <Customer>("NullableSbyte div NullableSbyte eq null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableSbyte / t.Sbyte > 10), Filter.Deserialize <Customer>("NullableSbyte div Sbyte gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Sbyte / t.NullableSbyte > 10), Filter.Deserialize <Customer>("Sbyte div NullableSbyte gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableSbyte / t.Sbyte > null), Filter.Deserialize <Customer>("NullableSbyte div Sbyte gt null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Sbyte / t.NullableSbyte > null), Filter.Deserialize <Customer>("Sbyte div NullableSbyte gt null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.FreightDouble / t.NullableInt > 10), Filter.Deserialize <Customer>("FreightDouble div NullableInt gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt / t.FreightDouble > 10), Filter.Deserialize <Customer>("NullableInt div FreightDouble gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt / t.FreightDouble > t.NullableInt), Filter.Deserialize <Customer>("NullableInt div FreightDouble gt NullableInt"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt / t.NullableInt > 10), Filter.Deserialize <Customer>("NullableInt div NullableInt gt 10"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt / t.NullableInt > 10.0), Filter.Deserialize <Customer>("NullableInt div NullableInt gt 10.0"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt / t.NullableInt > t.NullableInt), Filter.Deserialize <Customer>("NullableInt div NullableInt gt NullableInt"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableInt / t.NullableInt != null), Filter.Deserialize <Customer>("NullableInt div NullableInt ne null"))); }
public void FloorNullable() { Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => Math.Floor(t.FreightDecimalNullable.Value) == 34)), "floor(FreightDecimalNullable/Value) eq 34m"); // ReSharper disable once CompareOfFloatsByEqualityOperator Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => Math.Floor(t.FreightDoubleNullable.Value) == 34)), "floor(FreightDoubleNullable/Value) eq 34"); }
public void Sum() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.Sum(x => x.Id) == 15), Filter.Deserialize <Customer>("Customers/Sum(x: x/Id) eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Numbers.Sum() == 15), Filter.Deserialize <Customer>("Numbers/Sum() eq 15"))); }
public void AnyNoArgsTest() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.Any()), Filter.Deserialize <Customer>("Customers/Any()"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.EnumerableCustomers.Any()), Filter.Deserialize <Customer>("EnumerableCustomers/Any()"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.ListCustomers.Any()), Filter.Deserialize <Customer>("ListCustomers/Any()"))); }
public void Cast() { // ReSharper disable once RedundantCast Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.Parent as Customer != null)), "cast(Parent, Sprint.Filter.OData.Test.Models.Customer) ne null"); // ReSharper disable once RedundantCast Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t as Customer != null)), "cast(Sprint.Filter.OData.Test.Models.Customer) ne null"); }
public void SingleOrDefault() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.SingleOrDefault().Id == 15), Filter.Deserialize <Customer>("Customers/SingleOrDefault()/Id eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.SingleOrDefault(c => c.Name == "test").Id == 15), Filter.Deserialize <Customer>("Customers/SingleOrDefault(c: c/Name eq 'test')/Id eq 15"))); }
public void ThenByDescending() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.OrderBy(x => x.Id).ThenByDescending(x => x.Name).Select(x => x.Id).First() == 15), Filter.Deserialize <Customer>("Customers/OrderBy(x: x/Id)/ThenByDescending(x: x/Name)/Select(x: x/Id)/First() eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Numbers.Distinct().OrderBy(x => x).ThenByDescending(x => x).First() == 15), Filter.Deserialize <Customer>("Numbers/Distinct()/OrderBy(x: x)/ThenByDescending(x: x)/First() eq 15"))); }
public void Distinct() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.Select(x => x.Id).Distinct().Count() == 15), Filter.Deserialize <Customer>("Customers/Select(x: x/Id)/Distinct()/Count() eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Numbers.Distinct().Count() == 15), Filter.Deserialize <Customer>("Numbers/Distinct()/Count() eq 15"))); }
public void Select() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.IntArray.Select(x => x).Count() == 15), Filter.Deserialize <Customer>("IntArray/Select(x: x)/Count() eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.Select(x => x.Id).Count() == 15), Filter.Deserialize <Customer>("Customers/Select(x: x/Id)/Count() eq 15"))); }
public void SelectMany() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.SelectMany(x => x.Items).Count() == 15), Filter.Deserialize <Customer>("Customers/SelectMany(x: x/Items)/Count() eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Items.SelectMany(x => x.Customers).Count() == 15), Filter.Deserialize <Customer>("Items/SelectMany(x: x/Customers)/Count() eq 15"))); }
public void All() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.All(x => true)), Filter.Deserialize <Customer>("Customers/All(x: true)"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.EnumerableCustomers.All(x => true)), Filter.Deserialize <Customer>("EnumerableCustomers/All(x: true)"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.ListCustomers.All(x => true)), Filter.Deserialize <Customer>("ListCustomers/All(x: true)"))); }
// [TestMethod] public void Modulo() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Salary % 5 == 0), Filter.Deserialize <Customer>("Salary mod 5 eq 0"))); // ReSharper disable once ConditionIsAlwaysTrueOrFalse Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Salary % 5 == null), Filter.Deserialize <Customer>("Salary mod 5 eq null"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.FreightDecimalNullable % 5 == 0), Filter.Deserialize <Customer>("FreightDecimalNullable mod 5 eq 0"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.FreightDecimalNullable % 5 == t.FreightDecimalNullable), Filter.Deserialize <Customer>("FreightDecimalNullable mod 5 eq FreightDecimalNullable"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.FreightDecimalNullable % 5 == null), Filter.Deserialize <Customer>("FreightDecimalNullable mod 5 eq null"))); }
public void Multiplication() { Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.NullableSbyte + t.NullableSbyte > 10)), "NullableSbyte add NullableSbyte gt 10"); Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.Sbyte + t.Sbyte > 10)), "Sbyte add Sbyte gt 10"); // ReSharper disable once ConditionIsAlwaysTrueOrFalse Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.Sbyte + t.Sbyte == null)), "Sbyte add Sbyte eq null"); Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.NullableSbyte + t.NullableSbyte == null)), "NullableSbyte add NullableSbyte eq null"); Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.NullableSbyte + t.Sbyte > 10)), "NullableSbyte add Sbyte gt 10"); }
public void Test() { var expr = Linq.Expr <Customer, bool>(t => t.Id == 15); var translator = new QueryTranslator(); var query = translator.Translate(expr); Assert.IsNotNull(query); }
public void DefaultIfEmpty() { // ReSharper disable once ReplaceWithSingleCallToCount Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.DefaultIfEmpty().Count() == 5), Filter.Deserialize <Customer>("Customers/DefaultIfEmpty()/Count() eq 5"))); // ReSharper disable once ReplaceWithSingleCallToCount Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Numbers.DefaultIfEmpty().Count() == 5), Filter.Deserialize <Customer>("Numbers/DefaultIfEmpty()/Count() eq 5"))); }
public void NotEqual() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Id != 15), Filter.Deserialize <Customer>("Id ne 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.FreightDoubleNullable != t.FreightDouble), Filter.Deserialize <Customer>("FreightDoubleNullable ne FreightDouble"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Sbyte != 15), Filter.Deserialize <Customer>("Sbyte ne 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Char != 15), Filter.Deserialize <Customer>("Char ne 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableSbyte != 15), Filter.Deserialize <Customer>("NullableSbyte ne 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.NullableChar != 15), Filter.Deserialize <Customer>("NullableChar ne 15"))); }
public void Isof() { // ReSharper disable once CSharpWarnings::CS0183 Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Parent is Customer), Filter.Deserialize <Customer>("isof(Parent, Sprint.Filter.OData.Test.Models.Customer)"))); // ReSharper disable once CSharpWarnings::CS0183 Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t is Customer), Filter.Deserialize <Customer>("isof(Sprint.Filter.OData.Test.Models.Customer)"))); }
public void Cast() { // ReSharper disable once RedundantCast Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Parent as Customer != null), Filter.Deserialize <Customer>("cast(Parent, Sprint.Filter.OData.Test.Models.Customer) ne null"))); // ReSharper disable once RedundantCast Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t as Customer != null), Filter.Deserialize <Customer>("cast(Sprint.Filter.OData.Test.Models.Customer) ne null"))); }
public void Modulo() { Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.Salary % 5 == 0)), "Salary mod 5m eq 0m"); // ReSharper disable once ConditionIsAlwaysTrueOrFalse Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.Salary % 5 == null)), "Salary mod 5m eq null"); Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.FreightDecimalNullable % 5 == 0)), "FreightDecimalNullable mod 5m eq 0m"); Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.FreightDecimalNullable % 5 == t.FreightDecimalNullable)), "FreightDecimalNullable mod 5m eq FreightDecimalNullable"); Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.FreightDecimalNullable % 5 == null)), "FreightDecimalNullable mod 5m eq null"); // ReSharper disable once ConditionIsAlwaysTrueOrFalse Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => t.FreightDouble % 5 == null)), "FreightDouble mod 5 eq null"); }
public void LongCount() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.IntArray.LongCount() == 15), Filter.Deserialize <Customer>("IntArray/LongCount() eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.LongCount() == 15), Filter.Deserialize <Customer>("Customers/LongCount() eq 15"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => t.Customers.LongCount(c => c.Name == "test") == 15), Filter.Deserialize <Customer>("Customers/LongCount(c: c/Name eq 'test') eq 15"))); }
public void EntityFramworkStringConvert() { Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => SqlFunctions.StringConvert(t.Price) == "1")), "StringConvert(Price) eq '1'"); Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => SqlFunctions.StringConvert(t.Price, 2) == "1")), "StringConvert(Price, 2) eq '1'"); Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => SqlFunctions.StringConvert(t.Price, 2, null) == "1")), "StringConvert(Price, 2, null) eq '1'"); Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => SqlFunctions.StringConvert(t.Price, null, null) == "1")), "StringConvert(Price, null, null) eq '1'"); Assert.AreEqual(Filter.Serialize(Linq.Expr <Customer, bool>(t => SqlFunctions.StringConvert(t.FreightDecimalNullable, null, null) == "1")), "StringConvert(FreightDecimalNullable, null, null) eq '1'"); }
public void EntityFramworkStringConvert() { Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => SqlFunctions.StringConvert(t.Price) == "1"), Filter.Deserialize <Customer>("StringConvert(Price) eq '1'"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => SqlFunctions.StringConvert(t.Price, 2) == "1"), Filter.Deserialize <Customer>("StringConvert(Price,2) eq '1'"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => SqlFunctions.StringConvert(t.Price, 2, null) == "1"), Filter.Deserialize <Customer>("StringConvert(Price,2,null) eq '1'"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => SqlFunctions.StringConvert(t.Price, null, null) == "1"), Filter.Deserialize <Customer>("StringConvert(Price,null,null) eq '1'"))); Assert.IsTrue(ExpressionEqualityComparer.Equals(Linq.Expr <Customer, bool>(t => SqlFunctions.StringConvert(t.FreightDecimalNullable, null, null) == "1"), Filter.Deserialize <Customer>("StringConvert(FreightDecimalNullable,null,null) eq '1'"))); }