public void TestOr()
        {
            DetachedCriteria expected =
                DetachedCriteria.For <Person>()
                .Add(Restrictions.Or(
                         Restrictions.Eq("Name", "test"),
                         Restrictions.Gt("Age", 5)));

            DetachedCriteria actual =
                DetachedCriteria.For <Person>()
                .Add(Restrictions.Or(
                         SqlExpression.CriterionFor <Person>(p => p.Name == "test"),
                         SqlExpression.CriterionFor <Person>(p => p.Age > 5)));

            AssertCriteriaAreEqual(expected, actual);
        }
        public void TestAndUsingAlias()
        {
            DetachedCriteria expected =
                DetachedCriteria.For <Person>()
                .CreateAlias("Father", "fatherAlias")
                .Add(Restrictions.And(
                         Restrictions.Eq("Name", "test"),
                         Restrictions.Gt("fatherAlias.Age", 5)));

            Person           fatherAlias = null;
            DetachedCriteria actual      =
                DetachedCriteria.For <Person>()
                .CreateAlias <Person>(p => p.Father, () => fatherAlias)
                .Add(Restrictions.And(
                         SqlExpression.CriterionFor <Person>(p => p.Name == "test"),
                         SqlExpression.CriterionFor(() => fatherAlias.Age > 5)));

            AssertCriteriaAreEqual(expected, actual);
        }