Пример #1
0
        public void Queryable_Function_DayDiff()
        {
            var model = QueryItem.FromLinq("Part", q => q.Where(i => (i.ModifiedOn().AsDateTime(DateTime.MinValue) - i.CreatedOn().AsDateTime(DateTime.MinValue)).TotalDays > 4));

            Assert.IsTrue(model.Where is GreaterThanOperator op &&
                          op.Left is QueryModel.Functions.DiffDays diff &&
                          diff.StartExpression is PropertyReference prop &&
                          prop.Name == "created_on");
        }
Пример #2
0
        public void Queryable_Count()
        {
            var aml = QueryItem.FromLinq("Part", q => q.Where(i => i.Property("item_number").Value.StartsWith("905-")).Count()).ToAml();

            Assert.AreEqual("<Item type=\"Part\" action=\"get\" returnMode=\"countOnly\" select=\"id\" page=\"1\" pagesize=\"1\"><item_number condition=\"like\">905-*</item_number></Item>", aml);

            aml = QueryItem.FromLinq("Part", q => q.Count(i => i.Property("item_number").Value.StartsWith("905-"))).ToAml();
            Assert.AreEqual("<Item type=\"Part\" action=\"get\" returnMode=\"countOnly\" select=\"id\" page=\"1\" pagesize=\"1\"><item_number condition=\"like\">905-*</item_number></Item>", aml);

            var conn  = new TestConnection();
            var count = conn.Queryable("ItemType").Count(i => i.Property("name").Value == "Part");

            Assert.AreEqual(1, count);
        }
Пример #3
0
        public void Queryable_Function_Regex()
        {
            var model = QueryItem.FromLinq("Part", q => q.Where(i => System.Text.RegularExpressions.Regex.IsMatch(i.Property("item_number").Value, @"\d{3}-\d{4}")));

            Assert.IsTrue(model.Where is LikeOperator op && op.Right is PatternList);
        }
Пример #4
0
        public void Queryable_Function_Now()
        {
            var model = QueryItem.FromLinq("Part", q => q.Where(i => i.ModifiedOn().AsDateTime() > DateTime.Now));

            Assert.IsTrue(model.Where is GreaterThanOperator op && op.Right is QueryModel.Functions.CurrentDateTime);
        }