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"); }
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); }
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); }
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); }