public void TestCount()
        {
            const int resultRowCount = 77;
            //create root node
            var root = new JoinNode(typeof(Products));

            // add child node Categories with propertyName "Products".
            // Because Categories linked with Products by next property:
            // public EntitySet<Products> Products
            root.AddChildren(new JoinNode(typeof(Categories), "Category", "Products"));

            var queryDesinger = new QueryDesigner(context, root);
            var count = queryDesinger.Count();

            // check numbers of entity
            Assert.AreEqual(resultRowCount, count);
        }
        public void TestDataInNullableCondition()
        {
            var queryable = from order in context.Orders
                            where order.OrderDate < DateTime.Now
                            select order;
            var count = queryable.Count();

            var queryDesigner = new QueryDesigner(context, typeof(Order));
            var conditions = new ConditionList(new Condition("OrderDate", DateTime.Now, ConditionOperator.LessThan));
            queryDesigner = queryDesigner.Where(conditions);

            var resultCount = queryDesigner.Count();

            Assert.AreEqual(count, resultCount);
        }
        public void TestEnumInCondition()
        {
            var count = (from order in context.Orders
                         where order.OrderDate.Value.DayOfWeek == DayOfWeek.Monday
                         select order).Count();

            QueryDesigner queryDesigner = new QueryDesigner(context, typeof(Order));
            ConditionList conditions = new ConditionList(new Condition("OrderDate.Value.DayOfWeek", DayOfWeek.Monday));
            queryDesigner = queryDesigner.Where(conditions);

            var resultCount = queryDesigner.Count();

            Assert.AreEqual(count, resultCount);
        }
        public void TestNullInNullableCondition()
        {
            var queryable = from order in context.Orders
                            where order.OrderDate == null
                            select order;
            var count = queryable.Count();

            var queryDesigner = new QueryDesigner(context, typeof(Order));
            var conditions = new ConditionList(new Condition("OrderDate", null));
            queryDesigner = queryDesigner.Where(conditions);

            var resultCount = queryDesigner.Count();

            Assert.AreEqual(count, resultCount);
        }