From: Paul H. <pha...@us...> - 2005-03-28 12:46:12
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate.Test/ExpressionTest In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6075/nhibernate/src/NHibernate.Test/ExpressionTest Added Files: QueryByExampleTest.cs Log Message: NH-112 - Query by Example --- NEW FILE: QueryByExampleTest.cs --- using System; using System.Collections; using NHibernate.DomainModel; using NHibernate.Expression; using NUnit.Framework; namespace NHibernate.Test.ExpressionTest { /// <summary> /// Summary description for QueryByExampleTest. /// </summary> [TestFixture] public class QueryByExampleTest : TestCase { public QueryByExampleTest() { // // TODO: Add constructor logic here // } [SetUp] public void SetUp() { ExportSchema( new string[] { "Componentizable.hbm.xml"}); initData(); } [Test] public void TestSimpleQBE() { ISession s = sessions.OpenSession(); ITransaction t = s.BeginTransaction(); Componentizable master = GetMaster("hibernate", null, "ope%"); ICriteria crit = s.CreateCriteria(typeof(Componentizable)); Example ex = Example.create(master).EnableLike(); crit.Add(ex); IList result = crit.List(); Assertion.AssertNotNull(result); Assertion.AssertEquals(1, result.Count); t.Commit(); s.Close(); } [Test] [Ignore("Test Fails with Exception - do to with Criteria parameter handling")] public void TestJunctionNotExpressionQBE() { ISession s = sessions.OpenSession(); ITransaction t = s.BeginTransaction(); Componentizable master = GetMaster("hibernate", null, "ope%"); ICriteria crit = s.CreateCriteria(typeof(Componentizable)); Example ex = Example.create(master).EnableLike(); crit.Add(Expression.Expression.Or(Expression.Expression.Not(ex), ex)); IList result = crit.List(); Assertion.AssertNotNull(result); // if (!(GetDialect() // instanceof HSQLDialect) ) // assertEquals(2, result.size()); t.Commit(); s.Close(); } [Test] public void TestExcludingQBE() { ISession s = sessions.OpenSession(); ITransaction t = s.BeginTransaction(); Componentizable master = GetMaster("hibernate", null, "ope%"); ICriteria crit = s.CreateCriteria(typeof(Componentizable)); Example ex = Example.create(master).EnableLike() .ExcludeProperty("Component.SubComponent"); crit.Add(ex); IList result = crit.List(); Assertion.AssertNotNull(result); Assertion.AssertEquals(3, result.Count); master = GetMaster("hibernate", "ORM tool", "fake stuff"); crit = s.CreateCriteria(typeof(Componentizable)); ex = Example.create(master).EnableLike() .ExcludeProperty("Component.SubComponent.SubName1"); crit.Add(ex); result = crit.List(); Assertion.AssertNotNull(result); Assertion.AssertEquals(1, result.Count); t.Commit(); s.Close(); } private void initData() { ISession s = sessions.OpenSession(); Componentizable master = GetMaster("hibernate", "ORM tool", "ORM tool1"); s.Save(master); s.Close(); s = sessions.OpenSession(); master = GetMaster("hibernate", "open source", "open source1"); s.Save(master); s.Close(); s = sessions.OpenSession(); master = GetMaster("hibernate", null, null); s.Save(master); s.Close(); } private void deleteData() { ISession s = sessions.OpenSession(); ITransaction t = s.BeginTransaction(); s.Delete("from Componentizable"); t.Commit(); s.Close(); } private Componentizable GetMaster(String name, String subName, String subName1) { Componentizable master = new Componentizable(); if (name != null) { Component masterComp = new Component(); masterComp.Name = name; if (subName != null || subName1 != null) { SubComponent subComponent = new SubComponent(); subComponent.SubName = subName; subComponent.SubName1 = subName1; masterComp.SubComponent = subComponent; } master.Component = masterComp; } return master; } } } |