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");
        }
Beispiel #2
0
        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)");
 }
Beispiel #7
0
        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")));
        }
Beispiel #12
0
        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")));
        }
Beispiel #19
0
        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")));
        }
Beispiel #25
0
        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)")));
        }
Beispiel #26
0
        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'");
        }
Beispiel #30
0
        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'")));
        }