public void ExampleForStatistics()
        {
            var bpc = new BlogPostCriteria {
                UserId = 3
            };
            var queryCreator = new BlogPostQueryCreator(bpc);
            var ddq          = (DetachedDynQuery)queryCreator.GetStatistic("Category.Name");

            string expected = "select bp.Category.Name, count(*) from BlogPost bp where ((bp.State.ID = 1) and (bp.BlogUsuser.ID = :UserID)) group by bp.Category.Name order by bp.Category.Name";

            Assert.That(ddq.Hql, Is.EqualTo(expected));

            bpc          = new BlogPostCriteria();
            queryCreator = new BlogPostQueryCreator(bpc);
            ddq          = (DetachedDynQuery)queryCreator.GetStatistic("BlogUsuser.Name");

            expected = "select bp.BlogUsuser.Name, count(*) from BlogPost bp where ((bp.State.ID = 1)) group by bp.BlogUsuser.Name order by bp.BlogUsuser.Name";
            Assert.That(ddq.Hql, Is.EqualTo(expected));

            bpc = new BlogPostCriteria {
                CategoryId = 11
            };
            queryCreator = new BlogPostQueryCreator(bpc);
            ddq          = (DetachedDynQuery)queryCreator.GetStatistic("BlogUsuser.Name");

            expected = "select bp.BlogUsuser.Name, count(*) from BlogPost bp join bp.Category c where ((bp.State.ID = 1) and (c.ID = :CategoryID)) group by bp.BlogUsuser.Name order by bp.BlogUsuser.Name";
            Assert.That(ddq.Hql, Is.EqualTo(expected));
        }
        public void ExampleWithDetachedQuery()
        {
            var bpc = new BlogPostCriteria {
                BlogId = 1, CategoryId = 2, UserId = 3
            };
            var queryCreator = new BlogPostQueryCreator(bpc);

            var ddq = (DetachedDynQuery)queryCreator.GetSelection();

            const string expected = "from BlogPost bp join bp.Category c where ((bp.State.ID = 1) and (bp.Blog.ID = :BlogID) and (c.ID = :CategoryID) and (bp.BlogUsuser.ID = :UserID)) order by bp.ID desc";

            Assert.That(ddq.Hql, Is.EqualTo(expected));
        }
 public BlogPostQueryCreator(BlogPostCriteria criteria)
 {
     bpc = criteria;
 }