|
From: <te...@us...> - 2009-02-12 14:53:45
|
Revision: 4084
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4084&view=rev
Author: tehlike
Date: 2009-02-12 14:53:40 +0000 (Thu, 12 Feb 2009)
Log Message:
-----------
Removing SessionFactoryTests since it is no longer necessary to serialize SessionFactory
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Removed Paths:
-------------
trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-12 07:05:27 UTC (rev 4083)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-12 14:53:40 UTC (rev 4084)
@@ -931,8 +931,6 @@
<Compile Include="QueryTest\PositionalParametersFixture.cs" />
<Compile Include="QueryTest\QueryParametersFixture.cs" />
<Compile Include="ReflectionOptimizerTest\LcgFixture.cs" />
- <Compile Include="SessionFactoryTest\Item.cs" />
- <Compile Include="SessionFactoryTest\SessionFactorySerializationFixture.cs" />
<Compile Include="SqlTest\Custom\CustomSQLSupportTest.cs" />
<Compile Include="SqlTest\Custom\CustomStoredProcSupportTest.cs" />
<Compile Include="SqlTest\Custom\MySQL\MySQLTest.cs" />
@@ -1669,7 +1667,6 @@
<EmbeddedResource Include="NHSpecificTest\NH1665\Mappings.hbm.xml" />
<EmbeddedResource Include="Generatedkeys\ByTrigger\MyEntity.hbm.xml" />
<EmbeddedResource Include="Generatedkeys\Identity\MyEntityIdentity.hbm.xml" />
- <EmbeddedResource Include="SessionFactoryTest\Item.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1289\Mappings.hbm.xml" />
<EmbeddedResource Include="TypesTest\TimeSpanClass.hbm.xml" />
<EmbeddedResource Include="TypesTest\TimeSpanInt64Class.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dar...@us...> - 2009-02-13 21:28:29
|
Revision: 4085
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4085&view=rev
Author: darioquintana
Date: 2009-02-13 21:28:04 +0000 (Fri, 13 Feb 2009)
Log Message:
-----------
tests for NH1679, not fixed yet
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/DomainClass.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Mappings.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/DomainClass.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/DomainClass.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/DomainClass.cs 2009-02-13 21:28:04 UTC (rev 4085)
@@ -0,0 +1,9 @@
+namespace NHibernate.Test.NHSpecificTest.NH1679
+{
+ public class DomainClass
+ {
+ public int Id { get; set; }
+
+ public bool BooleanData { get; set; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Fixture.cs 2009-02-13 21:28:04 UTC (rev 4085)
@@ -0,0 +1,59 @@
+using System.Collections;
+using NHibernate.Criterion;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1679
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ [Test]
+ public void UsingExpression()
+ {
+ TestAction(criteria => { criteria.Add(Expression.Eq("alias.BooleanData", true)); });
+ }
+
+ [Test,Ignore]
+ public void UsingExpressionProjection()
+ {
+ TestAction(criteria => { criteria.Add(Expression.Eq(Projections.Property("alias.BooleanData"), true)); });
+ }
+
+ protected override void OnSetUp()
+ {
+ base.OnSetUp();
+ using (ISession session = OpenSession())
+ {
+ var entity = new DomainClass();
+ entity.Id = 1;
+ entity.BooleanData = true;
+ session.Save(entity);
+ session.Flush();
+ }
+ }
+
+ protected override void OnTearDown()
+ {
+ base.OnTearDown();
+ using (ISession session = OpenSession())
+ {
+ string hql = "from System.Object";
+ session.Delete(hql);
+ session.Flush();
+ }
+ }
+
+ public void TestAction(System.Action<DetachedCriteria> action)
+ {
+ using (ISession session = OpenSession())
+ {
+ DetachedCriteria criteria = DetachedCriteria.For<DomainClass>("alias");
+
+ action.Invoke(criteria);
+
+ IList l = criteria.GetExecutableCriteria(session).List();
+ Assert.AreNotEqual(l, null);
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1679/Mappings.hbm.xml 2009-02-13 21:28:04 UTC (rev 4085)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1679"
+ default-lazy="false">
+ <class name="DomainClass">
+ <id name="Id">
+ <generator class="assigned" />
+ </id>
+ <property name="BooleanData" />
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-12 14:53:40 UTC (rev 4084)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-13 21:28:04 UTC (rev 4085)
@@ -627,6 +627,8 @@
<Compile Include="NHSpecificTest\NH1643\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1654\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1654\Employee.cs" />
+ <Compile Include="NHSpecificTest\NH1679\DomainClass.cs" />
+ <Compile Include="NHSpecificTest\NH1679\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Foo.cs" />
<Compile Include="NHSpecificTest\NH1018\Employee.cs" />
@@ -1657,6 +1659,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1679\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\Evicting\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1490\MappingsFilterAsBoolean.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1293\MappingsFilterAsBoolean.hbm.xml" />
@@ -1795,4 +1798,4 @@
if exist "$(ProjectDir)hibernate.cfg.xml" (copy "$(ProjectDir)hibernate.cfg.xml" "hibernate.cfg.xml")
copy /y "..\..\..\NHibernate.DomainModel\ABC.hbm.xml" "ABC.hbm.xml"</PostBuildEvent>
</PropertyGroup>
-</Project>
\ No newline at end of file
+</Project>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <te...@us...> - 2009-02-19 09:56:03
|
Revision: 4088
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4088&view=rev
Author: tehlike
Date: 2009-02-19 09:55:56 +0000 (Thu, 19 Feb 2009)
Log Message:
-----------
Adding Tests for NH-1677
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1677/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1677/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1677/Mappings.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1677/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1677/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1677/Fixture.cs 2009-02-19 09:55:56 UTC (rev 4088)
@@ -0,0 +1,85 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Data;
+using System.Text;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1677
+{
+ [TestFixture,Ignore]
+ public class EntityModeMapCriteria:BugTestCase
+ {
+ private const int NumberOfRecordPerEntity = 10;
+ private const string Entity1Name = "Entity1";
+ private const string Entity1Property = "Entity1Property";
+ private const string Entity2Name = "Entity2";
+ private const string Entity2Property = "Entity2Property";
+ private const string EntityPropertyPrefix = "Record";
+
+ protected override void Configure(NHibernate.Cfg.Configuration configuration)
+ {
+ base.Configure(configuration);
+ configuration.SetProperty("default_entity_mode",
+ EntityModeHelper.ToString(EntityMode.Map));
+ }
+
+ protected override void OnSetUp()
+ {
+ using (var s = OpenSession())
+ {
+ using (var tx = s.BeginTransaction(IsolationLevel.ReadCommitted))
+ {
+ for (int i = 0; i < NumberOfRecordPerEntity; i++)
+ {
+ var entity1 = new Hashtable();
+ entity1[Entity1Property] = EntityPropertyPrefix + i;
+ s.SaveOrUpdate(Entity1Name, entity1);
+ }
+
+ for (int i = 0; i < NumberOfRecordPerEntity; i++)
+ {
+ var entity2 = new Hashtable();
+ entity2[Entity2Property] = EntityPropertyPrefix + i;
+ s.SaveOrUpdate(Entity2Name, entity2);
+ }
+ tx.Commit();
+ }
+ }
+ }
+ protected override void OnTearDown()
+ {
+ using(var s=OpenSession())
+ {
+ using(var tx=s.BeginTransaction())
+ {
+ s.Delete(string.Format("from {0}", Entity1Name));
+ tx.Commit();
+ }
+
+ }
+ }
+ [Test]
+ public void EntityModeMapFailsWithCriteria()
+ {
+ using (var sf = cfg.BuildSessionFactory())
+ {
+
+ using (var s = sf.OpenSession())
+ {
+ var query = s.CreateQuery(string.Format("from {0}", Entity1Name));
+ var entity1List = query.List();
+ Assert.AreEqual(NumberOfRecordPerEntity, entity1List.Count); // OK, Count == 10
+ }
+
+ using (var s = sf.OpenSession())
+ {
+ var entity1Criteria = s.CreateCriteria(Entity1Name);
+ var entity1List = entity1Criteria.List();
+ Assert.AreEqual(NumberOfRecordPerEntity, entity1List.Count); // KO !!! Count == 20 !!!
+ }
+ }
+ }
+ }
+
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1677/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1677/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1677/Mappings.hbm.xml 2009-02-19 09:55:56 UTC (rev 4088)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<hibernate-mapping xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="urn:nhibernate-mapping-2.2">
+ <class entity-name="Entity1" table="Table1">
+ <id name="Id" column="Id" type="Int32">
+ <generator class="native"/>
+ </id>
+ <property name="Entity1Property" column="Table1Column" type="String"/>
+ </class>
+ <class entity-name="Entity2" table="Table2">
+ <id column="Id" type="Int32" name="Id">
+ <generator class="native"/>
+ </id>
+ <property name="Entity2Property" column="Table2Column" type="String"/>
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-16 22:14:57 UTC (rev 4087)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-19 09:55:56 UTC (rev 4088)
@@ -627,6 +627,7 @@
<Compile Include="NHSpecificTest\NH1643\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1654\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1654\Employee.cs" />
+ <Compile Include="NHSpecificTest\NH1677\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1679\DomainClass.cs" />
<Compile Include="NHSpecificTest\NH1679\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Fixture.cs" />
@@ -1659,6 +1660,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1677\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1679\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\Evicting\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1490\MappingsFilterAsBoolean.hbm.xml" />
@@ -1798,4 +1800,4 @@
if exist "$(ProjectDir)hibernate.cfg.xml" (copy "$(ProjectDir)hibernate.cfg.xml" "hibernate.cfg.xml")
copy /y "..\..\..\NHibernate.DomainModel\ABC.hbm.xml" "ABC.hbm.xml"</PostBuildEvent>
</PropertyGroup>
-</Project>
+</Project>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-02-21 04:12:51
|
Revision: 4095
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4095&view=rev
Author: fabiomaulo
Date: 2009-02-21 04:12:45 +0000 (Sat, 21 Feb 2009)
Log Message:
-----------
NH-1675 not an issue in trunk but probably a real bug with the old Dialect.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Person.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Fixture.cs 2009-02-21 04:12:45 UTC (rev 4095)
@@ -0,0 +1,37 @@
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.NHSpecificTest.NH1675
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ [Test]
+ public void ShouldWorkUsingDistinctAndLimits()
+ {
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ for (int i = 0; i < 5; i++)
+ {
+ s.Save(new Person {FirstName = "Name" + i});
+ }
+ tx.Commit();
+ }
+
+ using (ISession s = OpenSession())
+ {
+ var q =s.CreateQuery("select distinct p from Person p").SetFirstResult(0).SetMaxResults(10);
+ Assert.That(q.List().Count, Is.EqualTo(5));
+ }
+
+ // clean up
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Delete("from Person");
+ tx.Commit();
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Mappings.hbm.xml 2009-02-21 04:12:45 UTC (rev 4095)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ namespace="NHibernate.Test.NHSpecificTest.NH1675"
+ assembly="NHibernate.Test">
+
+ <class name="Person">
+ <id name="Id">
+ <generator class="native" />
+ </id>
+ <property name="FirstName"/>
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Person.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Person.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1675/Person.cs 2009-02-21 04:12:45 UTC (rev 4095)
@@ -0,0 +1,8 @@
+namespace NHibernate.Test.NHSpecificTest.NH1675
+{
+ public class Person
+ {
+ public virtual int Id { get; set; }
+ public virtual string FirstName { get; set; }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-21 03:59:26 UTC (rev 4094)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-21 04:12:45 UTC (rev 4095)
@@ -627,6 +627,8 @@
<Compile Include="NHSpecificTest\NH1643\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1654\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1654\Employee.cs" />
+ <Compile Include="NHSpecificTest\NH1675\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1675\Person.cs" />
<Compile Include="NHSpecificTest\NH1677\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1679\DomainClass.cs" />
<Compile Include="NHSpecificTest\NH1679\Fixture.cs" />
@@ -1660,6 +1662,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1675\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1677\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1679\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\Evicting\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-02-21 17:08:33
|
Revision: 4096
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4096&view=rev
Author: fabiomaulo
Date: 2009-02-21 17:08:24 +0000 (Sat, 21 Feb 2009)
Log Message:
-----------
Test for version generated
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/
trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/
trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/BinaryTimestamp.cs
trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/GeneratedBinaryVersionFixture.cs
trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/SimpleVersioned.cs
trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/SimpleVersioned.hbm.xml
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-21 04:12:45 UTC (rev 4095)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-21 17:08:24 UTC (rev 4096)
@@ -1105,6 +1105,9 @@
<Compile Include="UtilityTest\ThreadSafeDictionaryFixture.cs" />
<Compile Include="UtilityTest\TypeNameParserFixture.cs" />
<Compile Include="UtilityTest\WeakHashtableFixture.cs" />
+ <Compile Include="VersionTest\Db\MsSQL\BinaryTimestamp.cs" />
+ <Compile Include="VersionTest\Db\MsSQL\GeneratedBinaryVersionFixture.cs" />
+ <Compile Include="VersionTest\Db\MsSQL\SimpleVersioned.cs" />
<Compile Include="VersionTest\Person.cs" />
<Compile Include="VersionTest\Task.cs" />
<Compile Include="VersionTest\Thing.cs" />
@@ -1662,6 +1665,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="VersionTest\Db\MsSQL\SimpleVersioned.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1675\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1677\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1679\Mappings.hbm.xml" />
Added: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/BinaryTimestamp.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/BinaryTimestamp.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/BinaryTimestamp.cs 2009-02-21 17:08:24 UTC (rev 4096)
@@ -0,0 +1,105 @@
+using System.Data;
+using NHibernate.Engine;
+using NHibernate.SqlTypes;
+using NHibernate.UserTypes;
+
+namespace NHibernate.Test.VersionTest.Db.MsSQL
+{
+ public class BinaryTimestamp : IUserVersionType
+ {
+ #region IUserVersionType Members
+
+ public object Next(object current, ISessionImplementor session)
+ {
+ return current;
+ }
+
+ public object Seed(ISessionImplementor session)
+ {
+ return new byte[8];
+ }
+
+ public object Assemble(object cached, object owner)
+ {
+ return DeepCopy(cached);
+ }
+
+ public object DeepCopy(object value)
+ {
+ return value;
+ }
+
+ public object Disassemble(object value)
+ {
+ return DeepCopy(value);
+ }
+
+ public int GetHashCode(object x)
+ {
+ return x.GetHashCode();
+ }
+
+ public bool IsMutable
+ {
+ get { return false; }
+ }
+
+ public object NullSafeGet(IDataReader rs, string[] names, object owner)
+ {
+ return rs.GetValue(rs.GetOrdinal(names[0]));
+ }
+
+ public void NullSafeSet(IDbCommand cmd, object value, int index)
+ {
+ NHibernateUtil.Binary.NullSafeSet(cmd, value, index);
+ }
+
+ public object Replace(object original, object target, object owner)
+ {
+ return original;
+ }
+
+ public System.Type ReturnedType
+ {
+ get { return typeof (byte[]); }
+ }
+
+ public SqlType[] SqlTypes
+ {
+ get { return new[] {new SqlType(DbType.Binary, 8)}; }
+ }
+
+ public int Compare(object x, object y)
+ {
+ var xbytes = (byte[]) x;
+ var ybytes = (byte[]) y;
+ if (xbytes.Length < ybytes.Length)
+ {
+ return -1;
+ }
+ if (xbytes.Length > ybytes.Length)
+ {
+ return 1;
+ }
+ for (int i = 0; i < xbytes.Length; i++)
+ {
+ if (xbytes[i] < ybytes[i])
+ {
+ return -1;
+ }
+ if (xbytes[i] > ybytes[i])
+ {
+ return 1;
+ }
+ }
+ return 0;
+ }
+
+ bool IUserType.Equals(object x, object y)
+ {
+ return (x == y);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/GeneratedBinaryVersionFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/GeneratedBinaryVersionFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/GeneratedBinaryVersionFixture.cs 2009-02-21 17:08:24 UTC (rev 4096)
@@ -0,0 +1,46 @@
+using System.Collections;
+using NHibernate.Dialect;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.VersionTest.Db.MsSQL
+{
+ // related issues NH-1687, NH-1685
+
+ [TestFixture, Ignore("Not fixed yet.")]
+ public class GeneratedBinaryVersionFixture : TestCase
+ {
+ protected override IList Mappings
+ {
+ get { return new[] { "VersionTest.Db.MsSQL.SimpleVersioned.hbm.xml" }; }
+ }
+
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override bool AppliesTo(Dialect.Dialect dialect)
+ {
+ return dialect is MsSql2000Dialect;
+ }
+
+ [Test]
+ public void ShouldRetrieveVersionAfterFlush()
+ {
+ var e = new SimpleVersioned {Something = "something"};
+ using (ISession s = OpenSession())
+ {
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ Assert.That(e.LastModified, Is.Null);
+ s.Save(e);
+ s.Flush();
+ Assert.That(e.LastModified, Is.Not.Null);
+ s.Delete(e);
+ tx.Commit();
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/GeneratedBinaryVersionFixture.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Added: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/SimpleVersioned.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/SimpleVersioned.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/SimpleVersioned.cs 2009-02-21 17:08:24 UTC (rev 4096)
@@ -0,0 +1,9 @@
+namespace NHibernate.Test.VersionTest.Db.MsSQL
+{
+ public class SimpleVersioned
+ {
+ public virtual int Id { get; private set; }
+ public virtual byte[] LastModified { get; private set; }
+ public virtual string Something { get; set; }
+ }
+}
\ No newline at end of file
Property changes on: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/SimpleVersioned.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Added: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/SimpleVersioned.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/SimpleVersioned.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/SimpleVersioned.hbm.xml 2009-02-21 17:08:24 UTC (rev 4096)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.VersionTest.Db.MsSQL">
+
+ <typedef name="ByteTimestamp"
+ class="NHibernate.Test.VersionTest.Db.MsSQL.BinaryTimestamp, NHibernate.Test"/>
+
+ <class name="SimpleVersioned" table="GenVersion" optimistic-lock="version" >
+ <id name="Id" access="backfield">
+ <generator class="native" />
+ </id>
+ <version name="LastModified" type="ByteTimestamp" generated="always" unsaved-value="null" access="backfield">
+ <column name="LastModified" not-null="false" sql-type="timestamp"/>
+ </version>
+ <property name="Something"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Property changes on: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/SimpleVersioned.hbm.xml
___________________________________________________________________
Added: svn:mergeinfo
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-03-04 19:34:07
|
Revision: 4111
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4111&view=rev
Author: fabiomaulo
Date: 2009-03-04 19:34:04 +0000 (Wed, 04 Mar 2009)
Log Message:
-----------
User Example for NH-1685
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/BinaryTimestamp.cs
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexDomain.cs
trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexDomainFixture.cs
trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexVersioned.hbm.xml
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-04 18:47:03 UTC (rev 4110)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-04 19:34:04 UTC (rev 4111)
@@ -1113,6 +1113,8 @@
<Compile Include="UtilityTest\TypeNameParserFixture.cs" />
<Compile Include="UtilityTest\WeakHashtableFixture.cs" />
<Compile Include="VersionTest\Db\MsSQL\BinaryTimestamp.cs" />
+ <Compile Include="VersionTest\Db\MsSQL\ComplexDomain.cs" />
+ <Compile Include="VersionTest\Db\MsSQL\ComplexDomainFixture.cs" />
<Compile Include="VersionTest\Db\MsSQL\GeneratedBinaryVersionFixture.cs" />
<Compile Include="VersionTest\Db\MsSQL\SimpleVersioned.cs" />
<Compile Include="VersionTest\Person.cs" />
@@ -1672,6 +1674,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="VersionTest\Db\MsSQL\ComplexVersioned.hbm.xml" />
<EmbeddedResource Include="Tools\hbm2ddl\SchemaExportTests\WithColumnTag.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1691\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1689\Mappings.hbm.xml" />
Modified: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/BinaryTimestamp.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/BinaryTimestamp.cs 2009-03-04 18:47:03 UTC (rev 4110)
+++ trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/BinaryTimestamp.cs 2009-03-04 19:34:04 UTC (rev 4111)
@@ -73,21 +73,33 @@
{
var xbytes = (byte[]) x;
var ybytes = (byte[]) y;
- if (xbytes.Length < ybytes.Length)
+ return CompareValues(xbytes, ybytes);
+ }
+
+ bool IUserType.Equals(object x, object y)
+ {
+ return (x == y);
+ }
+
+ #endregion
+
+ private static int CompareValues(byte[] x, byte[] y)
+ {
+ if (x.Length < y.Length)
{
return -1;
}
- if (xbytes.Length > ybytes.Length)
+ if (x.Length > y.Length)
{
return 1;
}
- for (int i = 0; i < xbytes.Length; i++)
+ for (int i = 0; i < x.Length; i++)
{
- if (xbytes[i] < ybytes[i])
+ if (x[i] < y[i])
{
return -1;
}
- if (xbytes[i] > ybytes[i])
+ if (x[i] > y[i])
{
return 1;
}
@@ -95,11 +107,9 @@
return 0;
}
- bool IUserType.Equals(object x, object y)
+ public static bool Equals(byte[] x, byte[] y)
{
- return (x == y);
+ return CompareValues(x, y) == 0;
}
-
- #endregion
}
}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexDomain.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexDomain.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexDomain.cs 2009-03-04 19:34:04 UTC (rev 4111)
@@ -0,0 +1,30 @@
+using Iesi.Collections.Generic;
+
+namespace NHibernate.Test.VersionTest.Db.MsSQL
+{
+ public class Bar
+ {
+ public virtual int Id { get; set; }
+ public virtual byte[] Timestamp { get; private set; }
+ public virtual int AField { get; set; }
+ public virtual Foo Foo { get; set; }
+ }
+
+ public class Foo
+ {
+ public Foo()
+ {
+ Bars = new HashedSet<Bar>();
+ }
+ public virtual int Id { get; set; }
+ public virtual byte[] Timestamp { get; private set; }
+ public virtual int AField { get; set; }
+ public virtual ISet<Bar> Bars { get; set; }
+
+ public virtual void AddBar(Bar bar)
+ {
+ bar.Foo = this;
+ Bars.Add(bar);
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexDomainFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexDomainFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexDomainFixture.cs 2009-03-04 19:34:04 UTC (rev 4111)
@@ -0,0 +1,63 @@
+using System.Collections;
+using NHibernate.Dialect;
+using NUnit.Framework;
+
+namespace NHibernate.Test.VersionTest.Db.MsSQL
+{
+ [TestFixture]
+ public class ComplexDomainFixture : TestCase
+ {
+ protected override IList Mappings
+ {
+ get { return new[] { "VersionTest.Db.MsSQL.ComplexVersioned.hbm.xml" }; }
+ }
+
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override bool AppliesTo(Dialect.Dialect dialect)
+ {
+ return dialect is MsSql2000Dialect;
+ }
+
+ [Test]
+ public void NH1685()
+ {
+ using (ISession session = OpenSession())
+ {
+ var bar = new Bar {AField = 24};
+
+ var foo = new Foo {AField = 42};
+ foo.AddBar(bar);
+
+ session.Save(foo);
+ session.Flush();
+ session.Evict(bar);
+ session.Evict(foo);
+
+ var retrievedBar = session.Get<Bar>(bar.Id);
+
+ // At this point the assumption is that bar and retrievedBar should have
+ // identical values, but represent two different POCOs. The asserts below
+ // are intended to verify this. Currently this test fails on the comparison
+ // of the SQL Server timestamp (i.e. binary(8)) fields because
+ // NHibernate does not retrieve the new timestamp after the last update.
+
+ Assert.AreNotSame(bar, retrievedBar);
+ Assert.AreEqual(bar.Id, retrievedBar.Id);
+ Assert.AreEqual(bar.AField, retrievedBar.AField);
+ Assert.AreEqual(bar.Foo.Id, retrievedBar.Foo.Id);
+ Assert.IsTrue(BinaryTimestamp.Equals(bar.Timestamp, retrievedBar.Timestamp), "Timestamps are different!");
+ }
+
+ using (ISession session = OpenSession())
+ {
+ session.BeginTransaction();
+ session.Delete("from Bar");
+ session.Transaction.Commit();
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexVersioned.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexVersioned.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/VersionTest/Db/MsSQL/ComplexVersioned.hbm.xml 2009-03-04 19:34:04 UTC (rev 4111)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ default-cascade="save-update"
+ auto-import="true"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.VersionTest.Db.MsSQL">
+
+ <typedef name="ByteTimestamp"
+ class="NHibernate.Test.VersionTest.Db.MsSQL.BinaryTimestamp, NHibernate.Test"/>
+
+ <class name="Bar" table="Bar" optimistic-lock="version">
+ <id name="Id">
+ <generator class="identity" />
+ </id>
+ <version name="Timestamp" type="ByteTimestamp" generated="always" unsaved-value="null" access="backfield">
+ <column name="LastModified" not-null="false" sql-type="timestamp"/>
+ </version>
+ <property name="AField"/>
+ <many-to-one name="Foo" column="FooID" cascade="all" class="Foo" not-null="true" />
+ </class>
+
+ <class name="Foo" table="Foo" optimistic-lock="version">
+ <id name="Id">
+ <generator class="identity" />
+ </id>
+ <version name="Timestamp" type="ByteTimestamp" generated="always" unsaved-value="null" access="backfield">
+ <column name="LastModified" not-null="false" sql-type="timestamp"/>
+ </version>
+ <property name="AField"/>
+ <set name="Bars" cascade="all" access="backfield" inverse="true">
+ <key column="FooID" />
+ <one-to-many class="Bar" />
+ </set>
+ </class>
+</hibernate-mapping>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dav...@us...> - 2009-03-14 15:19:01
|
Revision: 4131
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4131&view=rev
Author: davybrion
Date: 2009-03-14 15:18:55 +0000 (Sat, 14 Mar 2009)
Log Message:
-----------
removing failing test which is no longer necessary after reverting NH-1698
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Removed Paths:
-------------
trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/NonClusteredPrimaryKeyFixture.cs
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-14 14:03:03 UTC (rev 4130)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-14 15:18:55 UTC (rev 4131)
@@ -948,7 +948,6 @@
<Compile Include="SqlTest\Custom\CustomStoredProcSupportTest.cs" />
<Compile Include="SqlTest\Custom\MySQL\MySQLTest.cs" />
<Compile Include="SqlTest\Custom\Oracle\OracleCustomSQLFixture.cs" />
- <Compile Include="Tools\hbm2ddl\SchemaExportTests\NonClusteredPrimaryKeyFixture.cs" />
<Compile Include="Tools\hbm2ddl\SchemaExportTests\WithColumnTag.cs" />
<Compile Include="Tools\hbm2ddl\SchemaExportTests\WithColumnTagFixture.cs" />
<Compile Include="Tools\hbm2ddl\SchemaUpdate\MigrationFixture.cs" />
Deleted: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/NonClusteredPrimaryKeyFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/NonClusteredPrimaryKeyFixture.cs 2009-03-14 14:03:03 UTC (rev 4130)
+++ trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaExportTests/NonClusteredPrimaryKeyFixture.cs 2009-03-14 15:18:55 UTC (rev 4131)
@@ -1,38 +0,0 @@
-using System.IO;
-using System.Reflection;
-using System.Text;
-
-using NHibernate.Cfg;
-using NHibernate.Dialect;
-using NHibernate.Tool.hbm2ddl;
-
-using NUnit.Framework;
-using NUnit.Framework.SyntaxHelpers;
-
-namespace NHibernate.Test.Tools.hbm2ddl.SchemaExportTests
-{
- [TestFixture]
- public class NonClusteredPrimaryKeyFixture
- {
- [Test]
- public void ShouldCreateSchemaWithNonClusterdPrimaryKeyForMsSql2005Dialect()
- {
- var script = new StringBuilder();
- const string mapping = "NHibernate.Test.Tools.hbm2ddl.SchemaExportTests.WithColumnTag.hbm.xml";
-
- Configuration cfg = TestConfigurationHelper.GetDefaultConfiguration();
-
- if (cfg.Properties[Environment.Dialect] != typeof(MsSql2005Dialect).FullName)
- {
- Assert.Ignore("this test only applies for MsSql2005Dialect");
- }
-
- using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(mapping))
- cfg.AddInputStream(stream);
- new SchemaExport(cfg).Execute(s => script.AppendLine(s), false, false, false);
-
- string wholeScript = script.ToString();
- Assert.That(wholeScript, Text.Contains("primary key nonclustered (id)"));
- }
- }
-}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-03-18 14:22:41
|
Revision: 4144
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4144&view=rev
Author: fabiomaulo
Date: 2009-03-18 13:30:33 +0000 (Wed, 18 Mar 2009)
Log Message:
-----------
Test to study the StatelessSession behavior in "more complicated" scenario.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/Stateless/Naturalness.cs
trunk/nhibernate/src/NHibernate.Test/Stateless/Naturalness.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessWithRelationsFixture.cs
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-17 19:16:01 UTC (rev 4143)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-18 13:30:33 UTC (rev 4144)
@@ -948,6 +948,8 @@
<Compile Include="SqlTest\Custom\CustomStoredProcSupportTest.cs" />
<Compile Include="SqlTest\Custom\MySQL\MySQLTest.cs" />
<Compile Include="SqlTest\Custom\Oracle\OracleCustomSQLFixture.cs" />
+ <Compile Include="Stateless\Naturalness.cs" />
+ <Compile Include="Stateless\StatelessWithRelationsFixture.cs" />
<Compile Include="Tools\hbm2ddl\SchemaExportTests\WithColumnTag.cs" />
<Compile Include="Tools\hbm2ddl\SchemaExportTests\WithColumnTagFixture.cs" />
<Compile Include="Tools\hbm2ddl\SchemaUpdate\MigrationFixture.cs" />
@@ -1681,6 +1683,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="Stateless\Naturalness.hbm.xml" />
<EmbeddedResource Include="TransformTests\Simple.hbm.xml" />
<EmbeddedResource Include="VersionTest\Db\MsSQL\ComplexVersioned.hbm.xml" />
<EmbeddedResource Include="Tools\hbm2ddl\SchemaExportTests\WithColumnTag.hbm.xml" />
Added: trunk/nhibernate/src/NHibernate.Test/Stateless/Naturalness.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Stateless/Naturalness.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Stateless/Naturalness.cs 2009-03-18 13:30:33 UTC (rev 4144)
@@ -0,0 +1,37 @@
+using System;
+using Iesi.Collections.Generic;
+
+namespace NHibernate.Test.Stateless
+{
+ public abstract class Animal
+ {
+ public virtual int Id { get; private set; }
+ public virtual string Description { get; set; }
+ }
+
+ public class Reptile: Animal
+ {
+ public virtual float BodyTemperature { get; set; }
+ }
+
+ public class Human : Animal
+ {
+ public virtual string Name { get; set; }
+ public virtual string NickName { get; set; }
+ public virtual DateTime Birthdate { get; set; }
+ }
+
+ public class Family<T> where T: Animal
+ {
+ private ISet<T> childs;
+
+ public virtual int Id { get; private set; }
+ public virtual T Father { get; set; }
+ public virtual T Mother { get; set; }
+ public virtual ISet<T> Childs
+ {
+ get { return childs; }
+ set { childs = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Stateless/Naturalness.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Stateless/Naturalness.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Stateless/Naturalness.hbm.xml 2009-03-18 13:30:33 UTC (rev 4144)
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.Stateless"
+ default-access="backfield"
+ default-lazy="false">
+
+ <class name="Animal" abstract="true">
+ <id name="Id">
+ <generator class="hilo"/>
+ </id>
+ <discriminator column="kind"/>
+ <property name="Description"/>
+
+ <subclass name="Reptile">
+ <property name="BodyTemperature"/>
+ </subclass>
+
+ <subclass name="Human">
+ <property name="Name"/>
+ <property name="NickName"/>
+ <property name="Birthdate" type="Date"/>
+ </subclass>
+ </class>
+
+ <class name="Family`1[[Reptile]]" entity-name="ReptilesFamily"
+ table="Families" discriminator-value="Reptile" where="familyKind = 'Reptile'">
+ <id name="Id">
+ <generator class="hilo"/>
+ </id>
+ <discriminator column="familyKind"/>
+ <many-to-one name="Father" class="Reptile" cascade="all"/>
+ <many-to-one name="Mother" class="Reptile" cascade="all"/>
+ <set name="Childs" cascade="all" access="property">
+ <key column="familyId"/>
+ <one-to-many class="Reptile"/>
+ </set>
+ </class>
+
+ <class name="Family`1[[Human]]" entity-name="HumanFamily"
+ table="Families" discriminator-value="Human" where="familyKind = 'Human'">
+ <id name="Id">
+ <generator class="hilo"/>
+ </id>
+ <discriminator column="familyKind"/>
+ <many-to-one name="Father" class="Human" cascade="all"/>
+ <many-to-one name="Mother" class="Human" cascade="all"/>
+ <set name="Childs" cascade="all" access="property">
+ <key column="familyId"/>
+ <one-to-many class="Human"/>
+ </set>
+ </class>
+</hibernate-mapping>
Added: trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessWithRelationsFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessWithRelationsFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessWithRelationsFixture.cs 2009-03-18 13:30:33 UTC (rev 4144)
@@ -0,0 +1,91 @@
+using System.Collections;
+using Iesi.Collections.Generic;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+using System.Collections.Generic;
+
+namespace NHibernate.Test.Stateless
+{
+ [TestFixture]
+ public class StatelessWithRelationsFixture : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get { return new[] { "Stateless.Naturalness.hbm.xml" }; }
+ }
+
+ [Test]
+ public void ShouldWorkLoadingComplexEntities()
+ {
+ const string crocodileFather = "Crocodile father";
+ const string crocodileMother = "Crocodile mother";
+
+ using (ISession s = sessions.OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ var rf = new Reptile { Description = crocodileFather };
+ var rm = new Reptile { Description = crocodileMother };
+ var rc1 = new Reptile { Description = "Crocodile" };
+ var rc2 = new Reptile { Description = "Crocodile" };
+ var rfamily = new Family<Reptile>
+ {
+ Father = rf,
+ Mother = rm,
+ Childs = new HashedSet<Reptile> { rc1, rc2 }
+ };
+ s.Save("ReptilesFamily", rfamily);
+ tx.Commit();
+ }
+
+ const string humanFather = "Fred";
+ const string humanMother = "Wilma";
+ using (ISession s = sessions.OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ var hf = new Human { Description = "Flinstone", Name = humanFather };
+ var hm = new Human { Description = "Flinstone", Name = humanMother };
+ var hc1 = new Human { Description = "Flinstone", Name = "Pebbles" };
+ var hfamily = new Family<Human>
+ {
+ Father = hf,
+ Mother = hm,
+ Childs = new HashedSet<Human> { hc1 }
+ };
+ s.Save("HumanFamily", hfamily);
+ tx.Commit();
+ }
+
+ using (IStatelessSession s = sessions.OpenStatelessSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ IList<Family<Human>> hf = s.CreateQuery("from HumanFamily").List<Family<Human>>();
+ Assert.That(hf.Count, Is.EqualTo(1));
+ Assert.That(hf[0].Father.Name, Is.EqualTo(humanFather));
+ Assert.That(hf[0].Mother.Name, Is.EqualTo(humanMother));
+ Assert.That(hf[0].Childs, Is.Null, "Collections should be ignored by stateless session.");
+
+ IList<Family<Reptile>> rf = s.CreateQuery("from ReptilesFamily").List<Family<Reptile>>();
+ Assert.That(rf.Count, Is.EqualTo(1));
+ Assert.That(rf[0].Father.Description, Is.EqualTo(crocodileFather));
+ Assert.That(rf[0].Mother.Description, Is.EqualTo(crocodileMother));
+ Assert.That(rf[0].Childs, Is.Null, "Collections should be ignored by stateless session.");
+
+ tx.Commit();
+ }
+
+ using (ISession s = sessions.OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Delete("from HumanFamily");
+ s.Delete("from ReptilesFamily");
+ tx.Commit();
+ }
+ }
+
+ }
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <aye...@us...> - 2009-03-22 17:56:22
|
Revision: 4150
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4150&view=rev
Author: ayenderahien
Date: 2009-03-22 17:56:16 +0000 (Sun, 22 Mar 2009)
Log Message:
-----------
Renaming file to match class name.
Adding ignored failing test
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs
Removed Paths:
-------------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/FutureCriteriaFixture.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs 2009-03-22 17:56:16 UTC (rev 4150)
@@ -0,0 +1,119 @@
+using System;
+using System.Data;
+using System.Data.SqlClient;
+using System.Threading;
+using System.Transactions;
+using NHibernate.Criterion;
+using NHibernate.Dialect;
+using NHibernate.Exceptions;
+using NHibernate.Impl;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.DtcFailures
+{
+ using System.Collections;
+
+ [TestFixture]
+ public class DtcFailuresFixture : TestCase
+ {
+
+ protected override IList Mappings
+ {
+ get { return new string[] { "NHSpecificTest.DtcFailures.Mappings.hbm.xml" }; }
+ }
+
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ [Test]
+ public void WillNotCrashOnDtcPrepareFailure()
+ {
+ var tx = new TransactionScope();
+ using (var s = sessions.OpenSession())
+ {
+ s.Save(new Person
+ {
+ CreatedAt = DateTime.MinValue // will cause SQL date failure
+ });
+ }
+
+ new ForceEscalationToDistributedTx();
+
+ tx.Complete();
+ try
+ {
+ tx.Dispose();
+ Assert.Fail("Expected failure");
+ }
+ catch (AssertionException)
+ {
+ throw;
+ }
+ catch (Exception)
+ {
+ }
+ }
+
+ [Test]
+ public void CanDeleteItemInDtc()
+ {
+ object id;
+ using (var tx = new TransactionScope())
+ using (var s = sessions.OpenSession())
+ {
+ id = s.Save(new Person
+ {
+ CreatedAt = DateTime.Today
+ });
+
+ new ForceEscalationToDistributedTx();
+
+ tx.Complete();
+ }
+
+ using (var tx = new TransactionScope())
+ using (var s = sessions.OpenSession())
+ {
+ new ForceEscalationToDistributedTx();
+
+ s.Delete(s.Get<Person>(id));
+
+ tx.Complete();
+ }
+
+ }
+
+ public class ForceEscalationToDistributedTx : IEnlistmentNotification
+ {
+ private readonly int thread;
+ public ForceEscalationToDistributedTx()
+ {
+ thread = Thread.CurrentThread.ManagedThreadId;
+ System.Transactions.Transaction.Current.EnlistDurable(Guid.NewGuid(), this, EnlistmentOptions.None);
+ }
+
+ public void Prepare(PreparingEnlistment preparingEnlistment)
+ {
+ Assert.AreNotEqual(thread, Thread.CurrentThread.ManagedThreadId);
+ preparingEnlistment.Prepared();
+ }
+
+ public void Commit(Enlistment enlistment)
+ {
+ enlistment.Done();
+ }
+
+ public void Rollback(Enlistment enlistment)
+ {
+ enlistment.Done();
+ }
+
+ public void InDoubt(Enlistment enlistment)
+ {
+ enlistment.Done();
+ }
+ }
+ }
+}
Deleted: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/FutureCriteriaFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/FutureCriteriaFixture.cs 2009-03-22 14:21:03 UTC (rev 4149)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/FutureCriteriaFixture.cs 2009-03-22 17:56:16 UTC (rev 4150)
@@ -1,90 +0,0 @@
-using System;
-using System.Data;
-using System.Data.SqlClient;
-using System.Threading;
-using System.Transactions;
-using NHibernate.Criterion;
-using NHibernate.Dialect;
-using NHibernate.Exceptions;
-using NHibernate.Impl;
-using NUnit.Framework;
-
-namespace NHibernate.Test.NHSpecificTest.DtcFailures
-{
- using System.Collections;
-
- [TestFixture]
- public class DtcFailuresFixture : TestCase
- {
-
- protected override IList Mappings
- {
- get { return new string[] { "NHSpecificTest.DtcFailures.Mappings.hbm.xml" }; }
- }
-
- protected override string MappingsAssembly
- {
- get { return "NHibernate.Test"; }
- }
-
- [Test]
- public void WillNotCrashOnDtcPrepareFailure()
- {
- var tx = new TransactionScope();
- using (var s = sessions.OpenSession())
- {
- s.Save(new Person
- {
- CreatedAt = DateTime.MinValue // will cause SQL date failure
- });
- }
-
- new ForceEscalationToDistributedTx();
-
- tx.Complete();
- try
- {
- tx.Dispose();
- Assert.Fail("Expected failure");
- }
- catch (AssertionException)
- {
- throw;
- }
- catch (Exception)
- {
- }
- }
-
- public class ForceEscalationToDistributedTx : IEnlistmentNotification
- {
- private readonly int thread;
- public ForceEscalationToDistributedTx()
- {
- thread = Thread.CurrentThread.ManagedThreadId;
- System.Transactions.Transaction.Current.EnlistDurable(Guid.NewGuid(), this, EnlistmentOptions.None);
- }
-
- public void Prepare(PreparingEnlistment preparingEnlistment)
- {
- Assert.AreNotEqual(thread, Thread.CurrentThread.ManagedThreadId);
- preparingEnlistment.Prepared();
- }
-
- public void Commit(Enlistment enlistment)
- {
- enlistment.Done();
- }
-
- public void Rollback(Enlistment enlistment)
- {
- enlistment.Done();
- }
-
- public void InDoubt(Enlistment enlistment)
- {
- enlistment.Done();
- }
- }
- }
-}
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-22 14:21:03 UTC (rev 4149)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-22 17:56:16 UTC (rev 4150)
@@ -292,7 +292,7 @@
<Compile Include="GenericTest\SetGeneric\SetGenericFixture.cs" />
<Compile Include="HQL\Animal.cs" />
<Compile Include="HQL\BaseFunctionFixture.cs" />
- <Compile Include="NHSpecificTest\DtcFailures\FutureCriteriaFixture.cs" />
+ <Compile Include="NHSpecificTest\DtcFailures\DtcFailuresFixture.cs" />
<Compile Include="NHSpecificTest\DtcFailures\Person.cs" />
<Compile Include="NHSpecificTest\NH1694\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1706\Domain.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <aye...@us...> - 2009-03-24 11:56:33
|
Revision: 4153
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4153&view=rev
Author: ayenderahien
Date: 2009-03-24 11:56:15 +0000 (Tue, 24 Mar 2009)
Log Message:
-----------
enhancing test case error reporting
adding passing test for NH-1709, but I don't think it reproduces the error well
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs
trunk/nhibernate/src/NHibernate.Test/TestCase.cs
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs 2009-03-24 11:27:18 UTC (rev 4152)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs 2009-03-24 11:56:15 UTC (rev 4153)
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Threading;
@@ -57,6 +58,31 @@
}
[Test]
+ public void Can_roll_back_transaction()
+ {
+ var tx = new TransactionScope();
+ using (var s = sessions.OpenSession())
+ {
+ new ForceEscalationToDistributedTx(true);//will rollback tx
+ s.Save(new Person
+ {
+ CreatedAt = DateTime.Today
+ });
+
+ tx.Complete();
+ }
+ try
+ {
+ tx.Dispose();
+ Assert.Fail("Expected tx abort");
+ }
+ catch (TransactionAbortedException)
+ {
+ //expected
+ }
+ }
+
+ [Test]
public void CanDeleteItemInDtc()
{
object id;
@@ -87,17 +113,28 @@
public class ForceEscalationToDistributedTx : IEnlistmentNotification
{
+ private readonly bool shouldRollBack;
private readonly int thread;
- public ForceEscalationToDistributedTx()
+
+ public ForceEscalationToDistributedTx(bool shouldRollBack)
{
+ this.shouldRollBack = shouldRollBack;
thread = Thread.CurrentThread.ManagedThreadId;
System.Transactions.Transaction.Current.EnlistDurable(Guid.NewGuid(), this, EnlistmentOptions.None);
}
+ public ForceEscalationToDistributedTx():this(false)
+ {
+
+ }
+
public void Prepare(PreparingEnlistment preparingEnlistment)
{
Assert.AreNotEqual(thread, Thread.CurrentThread.ManagedThreadId);
- preparingEnlistment.Prepared();
+ if (shouldRollBack)
+ preparingEnlistment.ForceRollback();
+ else
+ preparingEnlistment.Prepared();
}
public void Commit(Enlistment enlistment)
Modified: trunk/nhibernate/src/NHibernate.Test/TestCase.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/TestCase.cs 2009-03-24 11:27:18 UTC (rev 4152)
+++ trunk/nhibernate/src/NHibernate.Test/TestCase.cs 2009-03-24 11:56:15 UTC (rev 4153)
@@ -123,7 +123,8 @@
if (fail)
{
- Assert.Fail("Test didn't clean up after itself");
+ Assert.Fail("Test didn't clean up after itself. session closed: " + wasClosed + " database cleaned: "+ wasCleaned
+ + " connection closed: " + wereConnectionsClosed);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-03-28 22:24:43
|
Revision: 4161
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4161&view=rev
Author: fabiomaulo
Date: 2009-03-28 22:24:39 +0000 (Sat, 28 Mar 2009)
Log Message:
-----------
The NH-1688 was fixed in some moment in the trunk.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/DomainClass.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/Mappings.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/DomainClass.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/DomainClass.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/DomainClass.cs 2009-03-28 22:24:39 UTC (rev 4161)
@@ -0,0 +1,9 @@
+namespace NHibernate.Test.NHSpecificTest.NH1688
+{
+ public class DomainClass
+ {
+ public int Id { get; set; }
+
+ public bool BooleanData { get; set; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/Fixture.cs 2009-03-28 22:24:39 UTC (rev 4161)
@@ -0,0 +1,68 @@
+using System.Collections;
+using NHibernate.Criterion;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1688
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ [Test]
+ public void UsingExpression()
+ {
+ TestAction(criteria => criteria.Add(Restrictions.Eq("alias.BooleanData", true)));
+ }
+
+ [Test]
+ public void UsingExpressionProjection()
+ {
+ TestAction(criteria => criteria.Add(Restrictions.Eq(Projections.Property("alias.BooleanData"), true)));
+ }
+
+ [Test]
+ public void UsingExpressionFunctionProjection()
+ {
+ TestAction(criteria => criteria.Add(Restrictions.Eq(
+ Projections.Conditional(
+ Restrictions.Eq(Projections.Property("alias.BooleanData"), true),
+ Projections.Property("alias.BooleanData"),
+ Projections.Constant(false)),
+ false)
+ ));
+ }
+
+ protected override void OnSetUp()
+ {
+ base.OnSetUp();
+ using (ISession session = OpenSession())
+ {
+ var entity = new DomainClass {Id = 1, BooleanData = true};
+ session.Save(entity);
+ session.Flush();
+ }
+ }
+
+ protected override void OnTearDown()
+ {
+ base.OnTearDown();
+ using (ISession session = OpenSession())
+ {
+ session.Delete("from DomainClass");
+ session.Flush();
+ }
+ }
+
+ public void TestAction(System.Action<DetachedCriteria> action)
+ {
+ using (ISession session = OpenSession())
+ {
+ DetachedCriteria criteria = DetachedCriteria.For<NH1679.DomainClass>("alias");
+
+ action.Invoke(criteria);
+
+ IList l = criteria.GetExecutableCriteria(session).List();
+ Assert.AreNotEqual(l, null);
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1688/Mappings.hbm.xml 2009-03-28 22:24:39 UTC (rev 4161)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1688"
+ default-lazy="false">
+
+ <class name="DomainClass">
+ <id name="Id">
+ <generator class="assigned" />
+ </id>
+ <property name="BooleanData" />
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-28 22:10:37 UTC (rev 4160)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-28 22:24:39 UTC (rev 4161)
@@ -294,6 +294,8 @@
<Compile Include="HQL\BaseFunctionFixture.cs" />
<Compile Include="NHSpecificTest\DtcFailures\DtcFailuresFixture.cs" />
<Compile Include="NHSpecificTest\DtcFailures\Person.cs" />
+ <Compile Include="NHSpecificTest\NH1688\DomainClass.cs" />
+ <Compile Include="NHSpecificTest\NH1688\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1693\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1693\Model.cs" />
<Compile Include="NHSpecificTest\NH1694\Fixture.cs" />
@@ -1700,6 +1702,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1688\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1700\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1693\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1710\WithColumnNode.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dar...@us...> - 2009-03-29 16:21:55
|
Revision: 4169
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4169&view=rev
Author: darioquintana
Date: 2009-03-29 16:21:04 +0000 (Sun, 29 Mar 2009)
Log Message:
-----------
passed test to verify NH-1716.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/ClassA.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/Mappings.hbm.xml
Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/ClassA.cs (from rev 4166, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1715/ClassA.cs)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/ClassA.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/ClassA.cs 2009-03-29 16:21:04 UTC (rev 4169)
@@ -0,0 +1,10 @@
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.NH1716
+{
+ public class ClassA
+ {
+ public virtual int Id { get; set; }
+ public virtual TimeSpan Time { get; set; }
+ }
+}
\ No newline at end of file
Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/Fixture.cs (from rev 4166, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1715/Fixture.cs)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/Fixture.cs 2009-03-29 16:21:04 UTC (rev 4169)
@@ -0,0 +1,91 @@
+using System;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1716
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ protected override void OnTearDown()
+ {
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Delete("from ClassA");
+ tx.Commit();
+ }
+ }
+
+ [Test]
+ public void TimeSpanLargerThan24h()
+ {
+ var time = new TimeSpan(2, 2, 1, 0);
+ var entity = new ClassA {Time = time};
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Save(entity);
+ tx.Commit();
+ }
+
+ using (ISession s = OpenSession())
+ {
+ Assert.AreEqual(time, s.Get<ClassA>(entity.Id).Time);
+ }
+ }
+
+ [Test]
+ public void TimeSpanLargerThan2h()
+ {
+ var time = new TimeSpan(0, 2, 1, 0);
+ var entity = new ClassA {Time = time};
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Save(entity);
+ tx.Commit();
+ }
+
+ using (ISession s = OpenSession())
+ {
+ Assert.AreEqual(time, s.Get<ClassA>(entity.Id).Time);
+ }
+ }
+
+ [Test]
+ public void TimeSpanNegative()
+ {
+ TimeSpan time = TimeSpan.FromDays(-1);
+ var entity = new ClassA {Time = time};
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Save(entity);
+ tx.Commit();
+ }
+
+ using (ISession s = OpenSession())
+ {
+ Assert.AreEqual(time, s.Get<ClassA>(entity.Id).Time);
+ }
+ }
+
+ [Test]
+ public void VerifyDaysShouldBeZeroInSmallTimeSpan()
+ {
+ var time = new TimeSpan(1, 0, 0);
+ var entity = new ClassA {Time = time};
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Save(entity);
+ tx.Commit();
+ }
+
+ using (ISession s = OpenSession())
+ {
+ Assert.AreEqual(0, s.Get<ClassA>(entity.Id).Time.Days);
+ }
+ }
+ }
+}
\ No newline at end of file
Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/Mappings.hbm.xml (from rev 4167, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1715/Mappings.hbm.xml)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1716/Mappings.hbm.xml 2009-03-29 16:21:04 UTC (rev 4169)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" ?>
+
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ namespace="NHibernate.Test.NHSpecificTest.NH1716"
+ assembly="NHibernate.Test">
+
+ <class name="ClassA">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+ <property name="Time"/> <!-- as default this should be mapped to TimeSpan -->
+ </class>
+
+</hibernate-mapping>
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-29 16:08:46 UTC (rev 4168)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-29 16:21:04 UTC (rev 4169)
@@ -316,6 +316,8 @@
</Compile>
<Compile Include="NHSpecificTest\NH1715\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1715\ClassA.cs" />
+ <Compile Include="NHSpecificTest\NH1716\ClassA.cs" />
+ <Compile Include="NHSpecificTest\NH1716\Fixture.cs" />
<Compile Include="NHSpecificTest\NH645\HQLFunctionFixture.cs" />
<Compile Include="HQL\HQLFunctions.cs" />
<Compile Include="HQL\Human.cs" />
@@ -1708,6 +1710,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1716\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\Dates\Mappings\TimeAsTimeSpan.hbm.xml" />
<EmbeddedResource Include="TypesTest\CurrencyClass.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1635\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-04-02 04:26:40
|
Revision: 4173
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4173&view=rev
Author: fabiomaulo
Date: 2009-04-02 04:26:33 +0000 (Thu, 02 Apr 2009)
Log Message:
-----------
Additional tests about QueryCache
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/AnotherItem.cs
trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/Item.hbm.xml
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/QueryCacheFixture.cs
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-04-01 19:02:59 UTC (rev 4172)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-04-02 04:26:33 UTC (rev 4173)
@@ -969,6 +969,7 @@
<Compile Include="QueryTest\PositionalParametersFixture.cs" />
<Compile Include="QueryTest\QueryParametersFixture.cs" />
<Compile Include="ReflectionOptimizerTest\LcgFixture.cs" />
+ <Compile Include="SecondLevelCacheTest\QueryCacheFixture.cs" />
<Compile Include="SqlTest\Custom\CustomSQLSupportTest.cs" />
<Compile Include="SqlTest\Custom\CustomStoredProcSupportTest.cs" />
<Compile Include="SqlTest\Custom\MySQL\MySQLTest.cs" />
Modified: trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/AnotherItem.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/AnotherItem.cs 2009-04-01 19:02:59 UTC (rev 4172)
+++ trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/AnotherItem.cs 2009-04-02 04:26:33 UTC (rev 4173)
@@ -4,6 +4,7 @@
{
private int id;
private string name;
+ private string description= string.Empty;
public AnotherItem()
{
@@ -26,5 +27,11 @@
get { return name; }
set { name = value; }
}
+
+ public virtual string Description
+ {
+ get { return description; }
+ set { description = value; }
+ }
}
}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/Item.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/Item.hbm.xml 2009-04-01 19:02:59 UTC (rev 4172)
+++ trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/Item.hbm.xml 2009-04-02 04:26:33 UTC (rev 4173)
@@ -24,5 +24,10 @@
<generator class="assigned"/>
</id>
<property name="Name"/>
+ <property name="Description"/>
</class>
+
+ <query name="Stat" cacheable="true" read-only ="true" cache-region="Statistics">
+ select ai.Name, count(*) from AnotherItem ai group by ai.Name
+ </query>
</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/QueryCacheFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/QueryCacheFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/SecondLevelCacheTest/QueryCacheFixture.cs 2009-04-02 04:26:33 UTC (rev 4173)
@@ -0,0 +1,318 @@
+using System;
+using System.Collections;
+using System.Threading;
+using NHibernate.Stat;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+using NHibernate.Transform;
+
+namespace NHibernate.Test.SecondLevelCacheTests
+{
+ [TestFixture]
+ public class ScalarQueryFixture : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get { return new[] { "SecondLevelCacheTest.Item.hbm.xml" }; }
+ }
+
+ protected override void Configure(Cfg.Configuration configuration)
+ {
+ configuration.SetProperty(Cfg.Environment.GenerateStatistics, "true");
+ }
+
+ public void FillDb(int startId)
+ {
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ for (int i = startId; i < startId + 10; i++)
+ {
+ s.Save(new AnotherItem { Id = i, Name = (i / 2).ToString() });
+ }
+ tx.Commit();
+ }
+ }
+
+ public void CleanUp()
+ {
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Delete("from AnotherItem");
+ tx.Commit();
+ }
+ }
+
+ [Test]
+ public void ShouldHitCacheUsingNamedQueryWithProjection()
+ {
+ FillDb(1);
+ sessions.Statistics.Clear();
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.GetNamedQuery("Stat").List();
+ tx.Commit();
+ }
+
+ Assert.That(sessions.Statistics.QueryExecutionCount, Is.EqualTo(1));
+ Assert.That(sessions.Statistics.QueryCachePutCount, Is.EqualTo(1));
+ Assert.That(sessions.Statistics.QueryCacheHitCount, Is.EqualTo(0));
+
+ sessions.Statistics.Clear();
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.GetNamedQuery("Stat").List();
+ tx.Commit();
+ }
+
+ Assert.That(sessions.Statistics.QueryExecutionCount, Is.EqualTo(0));
+ Assert.That(sessions.Statistics.QueryCacheHitCount, Is.EqualTo(1));
+
+ sessions.Statistics.LogSummary();
+ CleanUp();
+ }
+
+ [Test]
+ public void ShouldHitCacheUsingQueryWithProjection()
+ {
+ FillDb(1);
+ sessions.Statistics.Clear();
+
+ int resultCount;
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ resultCount =
+ s.CreateQuery("select ai.Name, count(*) from AnotherItem ai group by ai.Name").SetCacheable(true).SetCacheRegion(
+ "Statistics").List().Count;
+ tx.Commit();
+ }
+
+ Assert.That(sessions.Statistics.QueryExecutionCount, Is.EqualTo(1));
+ Assert.That(sessions.Statistics.QueryCachePutCount, Is.EqualTo(1));
+ Assert.That(sessions.Statistics.QueryCacheHitCount, Is.EqualTo(0));
+
+ sessions.Statistics.Clear();
+
+ int secondResultCount;
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ secondResultCount = s.CreateQuery("select ai.Name, count(*) from AnotherItem ai group by ai.Name")
+ .SetCacheable(true).SetCacheRegion("Statistics").List().Count;
+ tx.Commit();
+ }
+
+ Assert.That(sessions.Statistics.QueryExecutionCount, Is.EqualTo(0));
+ Assert.That(sessions.Statistics.QueryCacheHitCount, Is.EqualTo(1));
+ Assert.That(secondResultCount, Is.EqualTo(resultCount));
+
+ sessions.Statistics.LogSummary();
+ CleanUp();
+ }
+
+ [Test]
+ public void QueryCacheInvalidation()
+ {
+ sessions.EvictQueries();
+ sessions.Statistics.Clear();
+
+ const string queryString = "from Item i where i.Name='widget'";
+
+ object savedId = CreateItem(queryString);
+
+ QueryStatistics qs = sessions.Statistics.GetQueryStatistics(queryString);
+ EntityStatistics es = sessions.Statistics.GetEntityStatistics(typeof(Item).FullName);
+
+ Thread.Sleep(200);
+
+ IList result;
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ result = s.CreateQuery(queryString).SetCacheable(true).List();
+ Assert.That(result.Count, Is.EqualTo(1));
+ tx.Commit();
+ }
+
+ Assert.That(qs.CacheHitCount, Is.EqualTo(0));
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ result = s.CreateQuery(queryString).SetCacheable(true).List();
+ Assert.That(result.Count, Is.EqualTo(1));
+ tx.Commit();
+ }
+
+ Assert.That(qs.CacheHitCount, Is.EqualTo(1));
+ Assert.That(es.FetchCount, Is.EqualTo(0));
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ result = s.CreateQuery(queryString).SetCacheable(true).List();
+ Assert.That(result.Count, Is.EqualTo(1));
+ Assert.That(NHibernateUtil.IsInitialized(result[0]));
+ var i = (Item)result[0];
+ i.Name = "Widget";
+ tx.Commit();
+ }
+
+ Assert.That(qs.CacheHitCount, Is.EqualTo(2));
+ Assert.That(qs.CacheMissCount, Is.EqualTo(2));
+ Assert.That(es.FetchCount, Is.EqualTo(0));
+
+ Thread.Sleep(200);
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.CreateQuery(queryString).SetCacheable(true).List();
+
+ var i = s.Get<Item>(savedId);
+ Assert.That(i.Name, Is.EqualTo("Widget"));
+
+ s.Delete(i);
+ tx.Commit();
+ }
+
+ Assert.That(qs.CacheHitCount, Is.EqualTo(2));
+ Assert.That(qs.CacheMissCount, Is.EqualTo(3));
+ Assert.That(qs.CachePutCount, Is.EqualTo(3));
+ Assert.That(qs.ExecutionCount, Is.EqualTo(3));
+ Assert.That(es.FetchCount, Is.EqualTo(0)); //check that it was being cached
+ }
+
+ private object CreateItem(string queryString)
+ {
+ object savedId;
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.CreateQuery(queryString).SetCacheable(true).List();
+ var i = new Item { Name = "widget" };
+ savedId = s.Save(i);
+ tx.Commit();
+ }
+ return savedId;
+ }
+
+ [Test]
+ public void SimpleProjections()
+ {
+ var transformer = new CustomTrasformer();
+ sessions.EvictQueries();
+ sessions.Statistics.Clear();
+
+ const string queryString = "select i.Name, i.Description from AnotherItem i where i.Name='widget'";
+
+ object savedId;
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.CreateQuery(queryString).SetCacheable(true).List();
+ var i = new AnotherItem { Name = "widget" };
+ savedId = s.Save(i);
+ tx.Commit();
+ }
+
+ QueryStatistics qs = sessions.Statistics.GetQueryStatistics(queryString);
+ EntityStatistics es = sessions.Statistics.GetEntityStatistics(typeof(AnotherItem).FullName);
+
+ Thread.Sleep(200);
+
+ IList result;
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.CreateQuery(queryString).SetCacheable(true).List();
+ tx.Commit();
+ }
+
+ Assert.That(qs.CacheHitCount, Is.EqualTo(0));
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.CreateQuery(queryString).SetCacheable(true).List();
+ tx.Commit();
+ }
+
+ Assert.That(qs.CacheHitCount, Is.EqualTo(1));
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.CreateQuery(queryString).SetCacheable(true).SetResultTransformer(transformer).List();
+ tx.Commit();
+ }
+
+ Assert.That(qs.CacheHitCount, Is.EqualTo(1), "hit count should not go up since we are adding a resulttransformer");
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.CreateQuery(queryString).SetCacheable(true).SetResultTransformer(transformer).List();
+ tx.Commit();
+ }
+
+ Assert.That(qs.CacheHitCount, Is.EqualTo(2), "hit count should go up since we are using the same resulttransformer");
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ result = s.CreateQuery(queryString).SetCacheable(true).List();
+ Assert.That(result.Count, Is.EqualTo(1));
+ var i = s.Get<AnotherItem>(savedId);
+ i.Name = "Widget";
+ tx.Commit();
+ }
+
+ Assert.That(qs.CacheHitCount, Is.EqualTo(3));
+ Assert.That(qs.CacheMissCount, Is.EqualTo(3));
+
+ Thread.Sleep(200);
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.CreateQuery(queryString).SetCacheable(true).List();
+
+ var i = s.Get<AnotherItem>(savedId);
+ Assert.That(i.Name, Is.EqualTo("Widget"));
+
+ s.Delete(i);
+ tx.Commit();
+ }
+
+ Assert.That(qs.CacheHitCount, Is.EqualTo(3));
+ Assert.That(qs.CacheMissCount, Is.EqualTo(4));
+ Assert.That(qs.CachePutCount, Is.EqualTo(4));
+ Assert.That(qs.ExecutionCount, Is.EqualTo(4));
+ Assert.That(es.FetchCount, Is.EqualTo(0)); //check that it was being cached
+ }
+
+ public class CustomTrasformer: IResultTransformer
+ {
+ public object TransformTuple(object[] tuple, string[] aliases)
+ {
+ return new AnotherItem {Name = tuple[0].ToString(), Description = tuple[1].ToString()};
+ }
+
+ public IList TransformList(IList collection)
+ {
+ return collection;
+ }
+ }
+ }
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-04-22 22:56:26
|
Revision: 4201
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4201&view=rev
Author: fabiomaulo
Date: 2009-04-22 22:56:16 +0000 (Wed, 22 Apr 2009)
Log Message:
-----------
Minor
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs
trunk/nhibernate/src/NHibernate.Test/QueryTest/NamedParametersFixture.cs
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs 2009-04-22 22:12:41 UTC (rev 4200)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs 2009-04-22 22:56:16 UTC (rev 4201)
@@ -661,7 +661,7 @@
hql = "select cast(7+123.3-1*a.BodyWeight as int) from Animal a group by cast(7+123.3-1*a.BodyWeight as int) having cast(7+123.3-1*a.BodyWeight as int)>0";
l = s.CreateQuery(hql).List();
Assert.AreEqual(1, l.Count);
- Assert.AreEqual(129, l[0]);
+ Assert.AreEqual((int)(7 + 123.3 - 1 * 1.3d), l[0]);
// Rendered in HAVING using a property and named param (NOT SUPPORTED)
try
Modified: trunk/nhibernate/src/NHibernate.Test/QueryTest/NamedParametersFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/QueryTest/NamedParametersFixture.cs 2009-04-22 22:12:41 UTC (rev 4200)
+++ trunk/nhibernate/src/NHibernate.Test/QueryTest/NamedParametersFixture.cs 2009-04-22 22:56:16 UTC (rev 4201)
@@ -1,6 +1,7 @@
using System;
using System.Collections;
using NUnit.Framework;
+using NHibernate.Hql.Ast.ANTLR;
namespace NHibernate.Test.QueryTest
{
@@ -41,16 +42,22 @@
/// Verifying that a <see langword="null" /> value passed into SetParameter(name, val) throws
/// an exception
/// </summary>
- [Test, ExpectedException(typeof(ArgumentNullException))]
+ [Test]
public void TestNullNamedParameter()
{
+ if (sessions.Settings.QueryTranslatorFactory is ASTQueryTranslatorFactory)
+ {
+ Assert.Ignore("Not supported; The AST parser can guess the type.");
+ }
ISession s = OpenSession();
try
{
- IQuery q = s.CreateQuery("from Simple as s where s.Name=:Name");
- q.SetParameter("Name", null);
+ IQuery q = s.CreateQuery("from Simple as s where s.Name=:pName");
+ q.SetParameter("pName", null);
+ Assert.Fail("should throw if can't guess the type of parameter");
}
+ catch (ArgumentNullException) {}
finally
{
s.Close();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-04-24 06:17:32
|
Revision: 4209
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4209&view=rev
Author: fabiomaulo
Date: 2009-04-24 06:17:30 +0000 (Fri, 24 Apr 2009)
Log Message:
-----------
- Minor (reformatting)
- Added methods to apply a test for a specific QueryTranslator
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs
trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs
trunk/nhibernate/src/NHibernate.Test/TestCase.cs
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs 2009-04-23 20:31:58 UTC (rev 4208)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs 2009-04-24 06:17:30 UTC (rev 4209)
@@ -2,7 +2,6 @@
using NHibernate.Hql.Ast.ANTLR;
using System.Collections.Generic;
using NHibernate.Util;
-using NUnit.Framework;
namespace NHibernate.Test.HQL.Ast
{
@@ -10,12 +9,9 @@
{
private readonly IDictionary<string, IFilter> emptyfilters = new CollectionHelper.EmptyMapClass<string, IFilter>();
- protected override void OnSetUp()
+ protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- if (!(sessions.Settings.QueryTranslatorFactory is ASTQueryTranslatorFactory))
- {
- Assert.Ignore("ASTQueryTranslator specific test");
- }
+ return sessions.Settings.QueryTranslatorFactory is ASTQueryTranslatorFactory;
}
#region Overrides of TestCase
Modified: trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs 2009-04-23 20:31:58 UTC (rev 4208)
+++ trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs 2009-04-24 06:17:30 UTC (rev 4209)
@@ -514,19 +514,20 @@
{
if (!(Dialect is FirebirdDialect))
{
- if (IsClassicParser)
- {
- list =
- s.CreateQuery("from foo in class NHibernate.DomainModel.Foo where ? = some foo.Component.ImportantDates.elements")
- .SetDateTime(0, DateTime.Today).List();
-
- }
- else
- {
- list =
- s.CreateQuery("from foo in class NHibernate.DomainModel.Foo where ? = some elements(foo.Component.ImportantDates)")
- .SetDateTime(0, DateTime.Today).List();
- }
+ if (IsClassicParser)
+ {
+ list =
+ s.CreateQuery("from foo in class NHibernate.DomainModel.Foo where ? = some foo.Component.ImportantDates.elements")
+ .SetDateTime(0, DateTime.Today).List();
+
+ }
+ else
+ {
+ list =
+ s.CreateQuery(
+ "from foo in class NHibernate.DomainModel.Foo where ? = some elements(foo.Component.ImportantDates)").
+ SetDateTime(0, DateTime.Today).List();
+ }
Assert.AreEqual(2, list.Count, "component query");
}
@@ -601,18 +602,19 @@
IsEmpty(s.CreateQuery("from bar in class Bar where bar.String='a string' or bar.String='a string'").Enumerable()
));
- if (IsClassicParser)
- {
- enumerable = s.CreateQuery(
- "select foo.Component.Name, foo.Component.ImportantDates.elements from foo in class Foo where foo.TheFoo.id=?"
- ).SetString(0, foo.TheFoo.Key).Enumerable();
- }
- else
- {
- enumerable = s.CreateQuery(
- "select foo.Component.Name, elements(foo.Component.ImportantDates) from foo in class Foo where foo.TheFoo.id=?"
- ).SetString(0, foo.TheFoo.Key).Enumerable();
- }
+ if (IsClassicParser)
+ {
+ enumerable = s.CreateQuery(
+ "select foo.Component.Name, foo.Component.ImportantDates.elements from foo in class Foo where foo.TheFoo.id=?"
+ ).SetString(0, foo.TheFoo.Key).Enumerable();
+ }
+ else
+ {
+ enumerable =
+ s.CreateQuery(
+ "select foo.Component.Name, elements(foo.Component.ImportantDates) from foo in class Foo where foo.TheFoo.id=?").
+ SetString(0, foo.TheFoo.Key).Enumerable();
+ }
int i = 0;
foreach (object[] row in enumerable)
@@ -623,18 +625,18 @@
}
Assert.AreEqual(3, i); //WAS: 4
- if (IsClassicParser)
- {
- enumerable = s.CreateQuery(
- "select max(foo.Component.ImportantDates.elements) from foo in class Foo group by foo.id"
- ).Enumerable();
- }
- else
- {
- enumerable = s.CreateQuery(
- "select max(elements(foo.Component.ImportantDates)) from foo in class Foo group by foo.id"
- ).Enumerable();
- }
+ if (IsClassicParser)
+ {
+ enumerable = s.CreateQuery(
+ "select max(foo.Component.ImportantDates.elements) from foo in class Foo group by foo.id"
+ ).Enumerable();
+ }
+ else
+ {
+ enumerable =
+ s.CreateQuery("select max(elements(foo.Component.ImportantDates)) from foo in class Foo group by foo.id").
+ Enumerable();
+ }
IEnumerator enumerator = enumerable.GetEnumerator();
Assert.IsTrue(enumerator.MoveNext());
@@ -838,18 +840,18 @@
"from Baz baz where 'a' in elements(baz.CollectionComponent.Nested.Foos) and 1.0 in elements(baz.CollectionComponent.Nested.Floats)")
.List();
- if (IsClassicParser)
- {
- s.CreateQuery(
- "from Baz baz where 'b' in baz.CollectionComponent.Nested.Foos.elements and 1.0 in baz.CollectionComponent.Nested.Floats.elements")
- .List();
- }
- else
- {
- s.CreateQuery(
- "from Baz baz where 'b' in elements(baz.CollectionComponent.Nested.Foos) and 1.0 in elements(baz.CollectionComponent.Nested.Floats)")
- .List();
- }
+ if (IsClassicParser)
+ {
+ s.CreateQuery(
+ "from Baz baz where 'b' in baz.CollectionComponent.Nested.Foos.elements and 1.0 in baz.CollectionComponent.Nested.Floats.elements")
+ .List();
+ }
+ else
+ {
+ s.CreateQuery(
+ "from Baz baz where 'b' in elements(baz.CollectionComponent.Nested.Foos) and 1.0 in elements(baz.CollectionComponent.Nested.Floats)")
+ .List();
+ }
}
s.CreateQuery("from Foo foo join foo.TheFoo where foo.TheFoo in ('1','2','3')").List();
@@ -2441,16 +2443,10 @@
s.CreateQuery(hql).List();
}
- if (IsClassicParser)
- {
- hql = "select fum1.Friends.elements from fum1 in class Fum";
- }
- else
- {
- hql = "select elements(fum1.Friends) from fum1 in class Fum";
- }
- s.CreateQuery(hql).List();
+ hql = IsClassicParser ? "select fum1.Friends.elements from fum1 in class Fum" : "select elements(fum1.Friends) from fum1 in class Fum";
+ s.CreateQuery(hql).List();
+
hql = "from fum1 in class Fum, fr in elements( fum1.Friends )";
s.CreateQuery(hql).List();
@@ -2579,14 +2575,14 @@
Assert.AreEqual(1, s.CreateQuery("from Bar bar join bar.Baz.FooArray foo").List().Count);
- if (IsClassicParser)
- {
- Assert.AreEqual(0, s.CreateQuery("from bar in class Bar, foo in bar.Baz.FooSet.elements").List().Count);
- }
- else
- {
- Assert.AreEqual(0, s.CreateQuery("from bar in class Bar, foo in elements(bar.Baz.FooSet)").List().Count);
- }
+ if (IsClassicParser)
+ {
+ Assert.AreEqual(0, s.CreateQuery("from bar in class Bar, foo in bar.Baz.FooSet.elements").List().Count);
+ }
+ else
+ {
+ Assert.AreEqual(0, s.CreateQuery("from bar in class Bar, foo in elements(bar.Baz.FooSet)").List().Count);
+ }
Assert.AreEqual(1, s.CreateQuery("from bar in class Bar, foo in elements( bar.Baz.FooArray )").List().Count);
@@ -2615,14 +2611,10 @@
Assert.IsTrue(enumer.MoveNext());
Assert.AreSame(baz, enumer.Current);
- if (IsClassicParser)
- {
- enumer = s.CreateQuery("select baz.StringArray.elements from baz in class Baz").Enumerable().GetEnumerator();
- }
- else
- {
- enumer = s.CreateQuery("select elements(baz.StringArray) from baz in class Baz").Enumerable().GetEnumerator();
- }
+ enumer = IsClassicParser
+ ? s.CreateQuery("select baz.StringArray.elements from baz in class Baz").Enumerable().GetEnumerator()
+ : s.CreateQuery("select elements(baz.StringArray) from baz in class Baz").Enumerable().GetEnumerator();
+
bool found = false;
while (enumer.MoveNext())
{
@@ -2635,28 +2627,21 @@
baz.StringArray = null;
s.CreateQuery("from baz in class Baz").Enumerable(); // no flush
- if (IsClassicParser)
- {
- enumer = s.CreateQuery("select baz.StringArray.elements from baz in class Baz").Enumerable().GetEnumerator();
- }
- else
- {
- enumer = s.CreateQuery("select elements(baz.StringArray) from baz in class Baz").Enumerable().GetEnumerator();
- }
+
+ enumer = IsClassicParser
+ ? s.CreateQuery("select baz.StringArray.elements from baz in class Baz").Enumerable().GetEnumerator()
+ : s.CreateQuery("select elements(baz.StringArray) from baz in class Baz").Enumerable().GetEnumerator();
+
Assert.IsFalse(enumer.MoveNext());
baz.StringList.Add("1E1");
enumer = s.CreateQuery("from foo in class Foo").Enumerable().GetEnumerator(); // no flush
Assert.IsFalse(enumer.MoveNext());
- if (IsClassicParser)
- {
- enumer = s.CreateQuery("select baz.StringList.elements from baz in class Baz").Enumerable().GetEnumerator();
- }
- else
- {
- enumer = s.CreateQuery("select elements(baz.StringList) from baz in class Baz").Enumerable().GetEnumerator();
- }
+ enumer = IsClassicParser
+ ? s.CreateQuery("select baz.StringList.elements from baz in class Baz").Enumerable().GetEnumerator()
+ : s.CreateQuery("select elements(baz.StringList) from baz in class Baz").Enumerable().GetEnumerator();
+
found = false;
while (enumer.MoveNext())
{
@@ -2668,23 +2653,19 @@
Assert.IsTrue(found);
baz.StringList.Remove("1E1");
- if (IsClassicParser)
- {
- s.CreateQuery("select baz.StringArray.elements from baz in class Baz").Enumerable(); //no flush
- }
- else
- {
- s.CreateQuery("select elements(baz.StringArray) from baz in class Baz").Enumerable(); //no flush
- }
+ if (IsClassicParser)
+ {
+ s.CreateQuery("select baz.StringArray.elements from baz in class Baz").Enumerable(); //no flush
+ }
+ else
+ {
+ s.CreateQuery("select elements(baz.StringArray) from baz in class Baz").Enumerable(); //no flush
+ }
- if (IsClassicParser)
- {
- enumer = s.CreateQuery("select baz.StringList.elements from baz in class Baz").Enumerable().GetEnumerator();
- }
- else
- {
- enumer = s.CreateQuery("select elements(baz.StringList) from baz in class Baz").Enumerable().GetEnumerator();
- }
+ enumer = IsClassicParser
+ ? s.CreateQuery("select baz.StringList.elements from baz in class Baz").Enumerable().GetEnumerator()
+ : s.CreateQuery("select elements(baz.StringList) from baz in class Baz").Enumerable().GetEnumerator();
+
found = false;
while (enumer.MoveNext())
{
@@ -2702,14 +2683,11 @@
s.CreateQuery("from foo in class Foo").Enumerable().GetEnumerator(); //no flush
baz.StringList = null;
- if (IsClassicParser)
- {
- enumer = s.CreateQuery("select baz.StringList.elements from baz in class Baz").Enumerable().GetEnumerator();
- }
- else
- {
- enumer = s.CreateQuery("select elements(baz.StringList) from baz in class Baz").Enumerable().GetEnumerator();
- }
+
+ enumer = IsClassicParser
+ ? s.CreateQuery("select baz.StringList.elements from baz in class Baz").Enumerable().GetEnumerator()
+ : s.CreateQuery("select elements(baz.StringList) from baz in class Baz").Enumerable().GetEnumerator();
+
Assert.IsFalse(enumer.MoveNext());
s.Delete(baz);
@@ -2764,20 +2742,20 @@
// disable this for dbs with no subselects
if (Dialect.SupportsSubSelects)
{
- if (IsClassicParser)
- {
- list =
- s.CreateQuery(
- "select foo from foo in class NHibernate.DomainModel.Foo, baz in class NHibernate.DomainModel.Baz where foo in baz.FooArray.elements and 3 = some baz.IntArray.elements and 4 > all baz.IntArray.indices")
- .List();
- }
- else
- {
- list =
- s.CreateQuery(
- "select foo from foo in class NHibernate.DomainModel.Foo, baz in class NHibernate.DomainModel.Baz where foo in elements(baz.FooArray) and 3 = some elements(baz.IntArray) and 4 > all indices(baz.IntArray)")
- .List();
- }
+ if (IsClassicParser)
+ {
+ list =
+ s.CreateQuery(
+ "select foo from foo in class NHibernate.DomainModel.Foo, baz in class NHibernate.DomainModel.Baz where foo in baz.FooArray.elements and 3 = some baz.IntArray.elements and 4 > all baz.IntArray.indices")
+ .List();
+ }
+ else
+ {
+ list =
+ s.CreateQuery(
+ "select foo from foo in class NHibernate.DomainModel.Foo, baz in class NHibernate.DomainModel.Baz where foo in elements(baz.FooArray) and 3 = some elements(baz.IntArray) and 4 > all indices(baz.IntArray)")
+ .List();
+ }
Assert.AreEqual(2, list.Count, "collection.elements find");
}
@@ -2785,29 +2763,25 @@
// sapdb doesn't like distinct with binary type
//if( !(dialect is Dialect.SAPDBDialect) )
//{
- if (IsClassicParser)
- {
- list =
- s.CreateQuery("select distinct foo from baz in class NHibernate.DomainModel.Baz, foo in baz.FooArray.elements").List
- ();
- }
- else
- {
- list =
- s.CreateQuery("select distinct foo from baz in class NHibernate.DomainModel.Baz, foo in elements(baz.FooArray)").List
- ();
- }
+ if (IsClassicParser)
+ {
+ list =
+ s.CreateQuery("select distinct foo from baz in class NHibernate.DomainModel.Baz, foo in baz.FooArray.elements").List
+ ();
+ }
+ else
+ {
+ list =
+ s.CreateQuery("select distinct foo from baz in class NHibernate.DomainModel.Baz, foo in elements(baz.FooArray)").
+ List();
+ }
Assert.AreEqual(2, list.Count, "collection.elements find");
//}
- if (IsClassicParser)
- {
- list = s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in baz.FooSet.elements").List();
- }
- else
- {
- list = s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in elements(baz.FooSet)").List();
- }
+ list = IsClassicParser
+ ? s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in baz.FooSet.elements").List()
+ : s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in elements(baz.FooSet)").List();
+
Assert.AreEqual(1, list.Count, "association.elements find");
txn.Commit();
@@ -5022,20 +4996,20 @@
baz = (Baz) s.Load(typeof(Baz), baz.Code);
baz.StringArray[0] = "bark";
- IEnumerator e;
+ IEnumerator e;
- if (IsClassicParser)
- {
- e = s.CreateQuery("select baz.StringArray.elements from baz in class NHibernate.DomainModel.Baz")
- .Enumerable()
- .GetEnumerator();
- }
- else
- {
- e = s.CreateQuery("select elements(baz.StringArray) from baz in class NHibernate.DomainModel.Baz")
- .Enumerable()
- .GetEnumerator();
- }
+ if (IsClassicParser)
+ {
+ e =
+ s.CreateQuery("select baz.StringArray.elements from baz in class NHibernate.DomainModel.Baz").Enumerable().
+ GetEnumerator();
+ }
+ else
+ {
+ e =
+ s.CreateQuery("select elements(baz.StringArray) from baz in class NHibernate.DomainModel.Baz").Enumerable().
+ GetEnumerator();
+ }
bool found = false;
while (e.MoveNext())
@@ -5048,33 +5022,33 @@
Assert.IsTrue(found);
baz.StringArray = null;
- if (IsClassicParser)
- {
- e = s.CreateQuery("select distinct baz.StringArray.elements from baz in class NHibernate.DomainModel.Baz")
- .Enumerable()
- .GetEnumerator();
- }
- else
- {
- e = s.CreateQuery("select distinct elements(baz.StringArray) from baz in class NHibernate.DomainModel.Baz")
- .Enumerable()
- .GetEnumerator();
- }
+ if (IsClassicParser)
+ {
+ e = s.CreateQuery("select distinct baz.StringArray.elements from baz in class NHibernate.DomainModel.Baz")
+ .Enumerable()
+ .GetEnumerator();
+ }
+ else
+ {
+ e =
+ s.CreateQuery("select distinct elements(baz.StringArray) from baz in class NHibernate.DomainModel.Baz").Enumerable()
+ .GetEnumerator();
+ }
Assert.IsFalse(e.MoveNext());
baz.StringArray = new string[] {"foo", "bar"};
- if (IsClassicParser)
- {
- e = s.CreateQuery("select baz.StringArray.elements from baz in class NHibernate.DomainModel.Baz")
- .Enumerable()
- .GetEnumerator();
- }
- else
- {
- e = s.CreateQuery("select elements(baz.StringArray) from baz in class NHibernate.DomainModel.Baz")
- .Enumerable()
- .GetEnumerator();
- }
+ if (IsClassicParser)
+ {
+ e = s.CreateQuery("select baz.StringArray.elements from baz in class NHibernate.DomainModel.Baz")
+ .Enumerable()
+ .GetEnumerator();
+ }
+ else
+ {
+ e =
+ s.CreateQuery("select elements(baz.StringArray) from baz in class NHibernate.DomainModel.Baz").Enumerable().
+ GetEnumerator();
+ }
Assert.IsTrue(e.MoveNext());
Foo foo = new Foo();
@@ -5082,18 +5056,18 @@
s.Flush();
baz.FooArray = new Foo[] {foo};
- if (IsClassicParser)
- {
- e = s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in baz.FooArray.elements")
- .Enumerable()
- .GetEnumerator();
- }
- else
- {
- e = s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in elements(baz.FooArray)")
- .Enumerable()
- .GetEnumerator();
- }
+ if (IsClassicParser)
+ {
+ e = s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in baz.FooArray.elements")
+ .Enumerable()
+ .GetEnumerator();
+ }
+ else
+ {
+ e =
+ s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in elements(baz.FooArray)").Enumerable()
+ .GetEnumerator();
+ }
found = false;
while (e.MoveNext())
{
@@ -5106,61 +5080,66 @@
baz.FooArray[0] = null;
- if (IsClassicParser)
- {
- e = s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in baz.FooArray.elements")
- .Enumerable()
- .GetEnumerator();
- }
- else
- {
- e = s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in elements(baz.FooArray)")
- .Enumerable()
- .GetEnumerator();
- }
+ if (IsClassicParser)
+ {
+ e = s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in baz.FooArray.elements")
+ .Enumerable()
+ .GetEnumerator();
+ }
+ else
+ {
+ e =
+ s.CreateQuery("select foo from baz in class NHibernate.DomainModel.Baz, foo in elements(baz.FooArray)").Enumerable()
+ .GetEnumerator();
+ }
Assert.IsFalse(e.MoveNext());
baz.FooArray[0] = foo;
- if (IsClassicParser)
- {
- e = s.CreateQuery("select baz.FooArray.elements from baz in class NHibernate.DomainModel.Baz")
- .Enumerable()
- .GetEnumerator();
- }
- else
- {
- e = s.CreateQuery("select elements(baz.FooArray) from baz in class NHibernate.DomainModel.Baz")
- .Enumerable()
- .GetEnumerator();
- }
+ if (IsClassicParser)
+ {
+ e = s.CreateQuery("select baz.FooArray.elements from baz in class NHibernate.DomainModel.Baz")
+ .Enumerable()
+ .GetEnumerator();
+ }
+ else
+ {
+ e =
+ s.CreateQuery("select elements(baz.FooArray) from baz in class NHibernate.DomainModel.Baz").Enumerable().
+ GetEnumerator();
+ }
Assert.IsTrue(e.MoveNext());
if (Dialect.SupportsSubSelects && !(Dialect is FirebirdDialect))
{
baz.FooArray[0] = null;
- if (IsClassicParser)
- {
- e = s.CreateQuery("from baz in class NHibernate.DomainModel.Baz where ? in baz.FooArray.elements")
- .SetEntity(0, foo).Enumerable().GetEnumerator();
- }
- else
- {
- e = s.CreateQuery("from baz in class NHibernate.DomainModel.Baz where ? in elements(baz.FooArray)")
- .SetEntity(0, foo).Enumerable().GetEnumerator();
- }
+ if (IsClassicParser)
+ {
+ e = s.CreateQuery("from baz in class NHibernate.DomainModel.Baz where ? in baz.FooArray.elements")
+ .SetEntity(0, foo).Enumerable().GetEnumerator();
+ }
+ else
+ {
+ e =
+ s.CreateQuery("from baz in class NHibernate.DomainModel.Baz where ? in elements(baz.FooArray)").SetEntity(0, foo).
+ Enumerable().GetEnumerator();
+ }
Assert.IsFalse(e.MoveNext());
baz.FooArray[0] = foo;
- if (IsClassicParser)
- {
- e = s.CreateQuery("select foo from foo in class NHibernate.DomainModel.Foo where foo in "
- + "(select elt from baz in class NHibernate.DomainModel.Baz, elt in baz.FooArray.elements)").Enumerable().GetEnumerator();
- }
- else
- {
- e = s.CreateQuery("select foo from foo in class NHibernate.DomainModel.Foo where foo in "
- + "(select elt from baz in class NHibernate.DomainModel.Baz, elt in elements(baz.FooArray))").Enumerable().GetEnumerator();
- }
+ if (IsClassicParser)
+ {
+ e =
+ s.CreateQuery("select foo from foo in class NHibernate.DomainModel.Foo where foo in "
+ + "(select elt from baz in class NHibernate.DomainModel.Baz, elt in baz.FooArray.elements)").
+ Enumerable().GetEnumerator();
+ }
+ else
+ {
+ e =
+ s.CreateQuery("select foo from foo in class NHibernate.DomainModel.Foo where foo in "
+ + "(select elt from baz in class NHibernate.DomainModel.Baz, elt in elements(baz.FooArray))").
+ Enumerable().GetEnumerator();
+ }
Assert.IsTrue(e.MoveNext());
}
s.Delete(foo);
Modified: trunk/nhibernate/src/NHibernate.Test/TestCase.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/TestCase.cs 2009-04-23 20:31:58 UTC (rev 4208)
+++ trunk/nhibernate/src/NHibernate.Test/TestCase.cs 2009-04-24 06:17:30 UTC (rev 4209)
@@ -11,6 +11,8 @@
using NHibernate.Tool.hbm2ddl;
using NHibernate.Type;
using NUnit.Framework;
+using NHibernate.Hql.Classic;
+using NHibernate.Hql.Ast.ANTLR;
namespace NHibernate.Test
{
@@ -27,15 +29,28 @@
get { return NHibernate.Dialect.Dialect.GetDialect(cfg.Properties); }
}
- protected bool IsClassicParser
- {
- get
- {
- return cfg.Properties[Cfg.Environment.QueryTranslator] ==
- typeof(NHibernate.Hql.Classic.ClassicQueryTranslatorFactory).FullName;
- }
- }
+ /// <summary>
+ /// To use in in-line test
+ /// </summary>
+ protected bool IsClassicParser
+ {
+ get
+ {
+ return sessions.Settings.QueryTranslatorFactory is ClassicQueryTranslatorFactory;
+ }
+ }
+ /// <summary>
+ /// To use in in-line test
+ /// </summary>
+ protected bool IsAntlrParser
+ {
+ get
+ {
+ return sessions.Settings.QueryTranslatorFactory is ASTQueryTranslatorFactory;
+ }
+ }
+
protected ISession lastOpenedSession;
private DebugConnectionProvider connectionProvider;
@@ -74,6 +89,12 @@
CreateSchema();
BuildSessionFactory();
+ if (!AppliesTo(sessions))
+ {
+ DropSchema();
+ Cleanup();
+ Assert.Ignore(GetType() + " does not apply with the current session-factory configuration");
+ }
}
catch (Exception e)
{
@@ -223,7 +244,10 @@
private void Cleanup()
{
- sessions.Close();
+ if (sessions != null)
+ {
+ sessions.Close();
+ }
sessions = null;
connectionProvider = null;
lastOpenedSession = null;
@@ -318,6 +342,11 @@
return true;
}
+ protected virtual bool AppliesTo(ISessionFactoryImplementor factory)
+ {
+ return true;
+ }
+
protected virtual void Configure(Configuration configuration)
{
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-04-24 06:46:42
|
Revision: 4211
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4211&view=rev
Author: fabiomaulo
Date: 2009-04-24 06:46:40 +0000 (Fri, 24 Apr 2009)
Log Message:
-----------
Fix with the same fix of NH-1742
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Model.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Fixture.cs 2009-04-24 06:46:40 UTC (rev 4211)
@@ -0,0 +1,76 @@
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1727
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ /* To the commiter
+ * I'm using sql2005dialect
+ * From what I've read there's been some diffucalties with this
+ * dialect before when used parameter queries.
+ * The first test (xxx_DoesNotWorkToday) passed in NH 2.0
+ * The second test passes where I've just switched the order in the where clause
+ */
+
+
+ [Test]
+ public void VerifyFilterAndInAndProperty_DoesNotWorkToday()
+ {
+ const string hql = @"select a from ClassA a
+ where a.Value in (:aValues)
+ and a.Name=:name";
+ ClassB b = new ClassB();
+ using (ISession s = OpenSession())
+ using (ITransaction t = s.BeginTransaction())
+ {
+ s.Save(b);
+ t.Commit();
+ }
+ using (ISession s = OpenSession())
+ {
+ s.EnableFilter("bEquals").SetParameter("b", b.Id);
+ s.CreateQuery(hql)
+ .SetString("name", "Sweden")
+ .SetParameterList("aValues", new[] { 1, 3, 4 })
+ .List<ClassA>();
+ }
+ }
+
+
+ [Test]
+ public void VerifyFilterAndInAndProperty_WorksToday()
+ {
+ const string hql = @"select a from ClassA a
+ where a.Name=:name
+ and a.Value in (:aValues)";
+ ClassB b = new ClassB();
+ using(ISession s = OpenSession())
+ using (ITransaction t = s.BeginTransaction())
+ {
+ s.Save(b);
+ t.Commit();
+ }
+ using(ISession s = OpenSession())
+ {
+ s.EnableFilter("bEquals").SetParameter("b", b.Id);
+ s.CreateQuery(hql)
+ .SetString("name", "Sweden")
+ .SetParameterList("aValues", new []{1,3,4})
+ .List<ClassA>();
+ }
+ }
+
+ protected override void OnTearDown()
+ {
+ using(ISession s = OpenSession())
+ using(ITransaction t = s.BeginTransaction())
+ {
+ s.Delete("from ClassB");
+ s.Delete("from ClassA");
+ t.Commit();
+ }
+ }
+
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Mappings.hbm.xml 2009-04-24 06:46:40 UTC (rev 4211)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ namespace="NHibernate.Test.NHSpecificTest.NH1727"
+ assembly="NHibernate.Test">
+ <class name="ClassA">
+ <id name="Id">
+ <generator class="guid.comb"/>
+ </id>
+ <bag name="BCollection">
+ <key column="classA"/>
+ <one-to-many class="ClassB"/>
+ </bag>
+ <many-to-one name="B"
+ class="ClassB"/>
+
+ <property name="Name"/>
+ <property name="Value" />
+
+ <filter name="bEquals"
+ condition=":b = B"/>
+ </class>
+
+ <class name="ClassB">
+ <id name="Id">
+ <generator class="guid.comb"/>
+ </id>
+ </class>
+
+ <filter-def name="bEquals">
+ <filter-param name="b"
+ type="guid"/>
+ </filter-def>
+</hibernate-mapping>
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Model.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Model.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1727/Model.cs 2009-04-24 06:46:40 UTC (rev 4211)
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.NH1727
+{
+ public class ClassA
+ {
+ public virtual Guid Id { get; set; }
+ public virtual IList<ClassB> BCollection { get; set; }
+ public virtual string Name { get; set; }
+ public virtual int Value { get; set; }
+ public virtual ClassB B {get;set;}
+ }
+
+ public class ClassB
+ {
+ public virtual Guid Id { get; set; }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-04-24 06:40:17 UTC (rev 4210)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-04-24 06:46:40 UTC (rev 4211)
@@ -324,6 +324,8 @@
<Compile Include="NHSpecificTest\NH1715\ClassA.cs" />
<Compile Include="NHSpecificTest\NH1716\ClassA.cs" />
<Compile Include="NHSpecificTest\NH1716\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1727\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1727\Model.cs" />
<Compile Include="NHSpecificTest\NH1741\Domain.cs" />
<Compile Include="NHSpecificTest\NH1741\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1742\DomainClass.cs" />
@@ -1721,6 +1723,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1727\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1742\Mappings.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\SimpleClass.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\TestQueries.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-05-03 14:22:26
|
Revision: 4227
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4227&view=rev
Author: fabiomaulo
Date: 2009-05-03 13:43:03 +0000 (Sun, 03 May 2009)
Log Message:
-----------
Starting port of AST tests (at least for BulkUpdates)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BooleanLiteralEntity.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/KeyManyToOneEntity.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Multi.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/SimpleEntityWithAssociation.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Vehicle.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Versions.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.HQL.Ast"
+ default-access="field">
+
+ <class name="Animal">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <property name="description"/>
+ <property name="bodyWeight" column="body_weight"/>
+ <many-to-one name="mother" column="mother_id"/>
+ <many-to-one name="father" column="father_id"/>
+ <many-to-one name="zoo" column="zoo_id"/>
+ <property name="serialNumber"/>
+ <set name="offspring" order-by="father_id">
+ <key column="mother_id"/>
+ <one-to-many class="Animal"/>
+ </set>
+ <joined-subclass name="Reptile">
+ <key column="animal"/>
+ <property name="bodyTemperature"/>
+ <joined-subclass name="Lizard">
+ <key column="reptile"/>
+ </joined-subclass>
+ </joined-subclass>
+ <joined-subclass name="Mammal">
+ <key column="animal"/>
+ <property name="pregnant"/>
+ <property name="birthdate" type="date"/>
+ <joined-subclass name="DomesticAnimal">
+ <key column="mammal"/>
+ <many-to-one name="owner"/>
+ <joined-subclass name="Cat">
+ <key column="mammal"/>
+ </joined-subclass>
+ <joined-subclass name="Dog">
+ <key column="mammal"/>
+ </joined-subclass>
+ </joined-subclass>
+ <joined-subclass name="Human">
+ <key column="mammal"/>
+ <component name="name">
+ <property name="first" column="name_first"/>
+ <property name="initial" column="name_initial"/>
+ <property name="last" column="name_last"/>
+ </component>
+ <property name="nickName"/>
+ <property name="height"/>
+
+ <property name="intValue"/>
+ <property name="floatValue"/>
+ <property name="bigDecimalValue"/>
+ <property name="bigIntegerValue"/>
+
+ <bag name="friends">
+ <key column="human1"/>
+ <many-to-many column="human2" class="Human"/>
+ </bag>
+ <map name="family">
+ <key column="human1"/>
+ <map-key column="relationship" type="string"/>
+ <many-to-many column="human2" class="Human"/>
+ </map>
+ <bag name="pets" inverse="true">
+ <key column="owner"/>
+ <one-to-many class="DomesticAnimal"/>
+ </bag>
+ <set name="nickNames" lazy="false" table="human_nick_names" sort="natural">
+ <key column="human"/>
+ <element column="nick_name" type="string" not-null="true"/>
+ </set>
+ <map name="addresses" table="addresses">
+ <key column="human"/>
+ <map-key type="string" column="type"/>
+ <composite-element class="Address">
+ <property name="street"/>
+ <property name="city"/>
+ <property name="postalCode"/>
+ <property name="country"/>
+ <many-to-one name="stateProvince" column="state_prov_id" class="StateProvince"/>
+ </composite-element>
+ </map>
+ </joined-subclass>
+ </joined-subclass>
+ </class>
+
+ <class name="User" table="`User`">
+ <id name="id">
+ <generator class="foreign">
+ <param name="property">human</param>
+ </generator>
+ </id>
+ <property name="userName"/>
+ <one-to-one name="human" constrained="true"/>
+ <list name="permissions">
+ <key column="userId"/>
+ <list-index column="permissionId"/>
+ <element type="string" column="permissionName"/>
+ </list>
+ </class>
+
+ <class name="Zoo" discriminator-value="Z">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <discriminator column="zooType" type="character"/>
+ <property name="name" type="string"/>
+ <property name="classification" type="org.hibernate.test.hql.ClassificationType"/>
+ <map name="mammals">
+ <key column="mammalZoo_id"/>
+ <index type="string" column="name"/>
+ <one-to-many class="Mammal"/>
+ </map>
+ <map name="animals" inverse="true">
+ <key column="zoo_id"/>
+ <index type="string" column="serialNumber"/>
+ <one-to-many class="Animal"/>
+ </map>
+ <component name="address" class="Address">
+ <property name="street"/>
+ <property name="city"/>
+ <property name="postalCode"/>
+ <property name="country"/>
+ <many-to-one name="stateProvince" column="state_prov_id" class="StateProvince"/>
+ </component>
+ <subclass name="PettingZoo" discriminator-value="P"/>
+ </class>
+
+ <class name="StateProvince">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <property name="name"/>
+ <property name="isoCode"/>
+ </class>
+
+ <class name="Joiner">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <property name="name"/>
+ <join table="JOINED">
+ <key column="ID"/>
+ <property name="joinedName"/>
+ </join>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs 2009-05-03 12:37:55 UTC (rev 4226)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BaseFixture.cs 2009-05-03 13:43:03 UTC (rev 4227)
@@ -2,6 +2,7 @@
using NHibernate.Hql.Ast.ANTLR;
using System.Collections.Generic;
using NHibernate.Util;
+using NHibernate.Hql.Classic;
namespace NHibernate.Test.HQL.Ast
{
@@ -11,7 +12,7 @@
protected override bool AppliesTo(Engine.ISessionFactoryImplementor factory)
{
- return sessions.Settings.QueryTranslatorFactory is ASTQueryTranslatorFactory;
+ return !(sessions.Settings.QueryTranslatorFactory is ClassicQueryTranslatorFactory);
}
#region Overrides of TestCase
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BooleanLiteralEntity.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BooleanLiteralEntity.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BooleanLiteralEntity.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.HQL.Ast">
+
+ <class name="BooleanLiteralEntity">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+ <property name="YesNoBoolean" column="Y_N_BOOL" type="yes_no"/>
+ <property name="TrueFalseBoolean" column="T_F_BOOL" type="true_false"/>
+ <property name="ZeroOneBoolean" column="NUM_BOOL" type="boolean"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-03 13:43:03 UTC (rev 4227)
@@ -0,0 +1,15 @@
+namespace NHibernate.Test.HQL.Ast
+{
+ public class BulkManipulation: BaseFixture
+ {
+ // "hql/Animal.hbm.xml",
+ // "hql/Vehicle.hbm.xml",
+ // "hql/KeyManyToOneEntity.hbm.xml",
+ // "hql/Versions.hbm.xml",
+ //"hql/FooBarCopy.hbm.xml",
+ //"legacy/Multi.hbm.xml",
+ //"hql/EntityWithCrazyCompositeKey.hbm.xml",
+ //"hql/SimpleEntityWithAssociation.hbm.xml",
+ //"hql/BooleanLiteralEntity.hbm.xml"
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.HQL.Ast">
+
+ <class name="EntityWithCrazyCompositeKey">
+ <composite-id name="Id" class="CrazyCompositeKey">
+ <key-property name="Id" column="id"/>
+ <key-property name="OtherId" column="other_id"/>
+ </composite-id>
+ <property name="Name"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.HQL.Ast"
+ default-lazy="false">
+
+ <!-- a slightly modified copy of FooBar.hbm.xml from the legacy test package -->
+
+ <class
+ name="Foo"
+ table="`foos`"
+ proxy="FooProxy"
+ discriminator-value="F"
+ batch-size="4"
+ dynamic-insert="true"
+ dynamic-update="true"
+ select-before-update="true">
+
+ <id name="key" type="string">
+ <column name="`foo_idcolumnname123`" length="36"/>
+ <generator class="uuid.hex">
+ <param name="seperator">:</param>
+ </generator>
+ </id>
+
+ <discriminator column="`foo_subclass_1234`" type="character" force="true"/>
+ <version name="version"/>
+
+ <many-to-one name="foo" class="Foo">
+ <column name="foo" length="36" index="fbmtoidx"/>
+ </many-to-one>
+
+ <property name="long">
+ <column name="long_" index="fbmtoidx" unique-key="abc" not-null="true"/>
+ </property>
+ <property name="integer">
+ <column name="`integer__`" unique-key="abc" not-null="true"/>
+ </property>
+ <property name="float">
+ <column name="float_" unique-key="abc" not-null="true" check="float_ > 0.0"/>
+ </property>
+ <property name="x"/>
+ <property name="double" column="double_"/>
+
+ <primitive-array name="bytes" table="foobytes">
+ <key column="id"/>
+ <index column="i"/>
+ <element column="byte_" type="byte"/>
+ </primitive-array>
+
+ <property name="date" type="date" column="date_"/>
+ <property name="timestamp" type="timestamp" column="timestamp_"/>
+ <property name="boolean" column="boolean_"/>
+ <property name="bool" column="bool_"/>
+ <property name="null" column="null_"/>
+ <property name="short" column="short_"/>
+ <property name="char" column="char_"/>
+ <property name="zero" column="zero_"/>
+ <property name="int" column="int_"/>
+ <property name="string">
+ <column name="string_" length="48" index="fbstridx"/>
+ </property>
+ <property name="byte" column="byte_"/>
+ <property name="yesno" type="yes_no"/>
+ <property name="blob" type="org.hibernate.test.legacy.Foo$Struct" column="blobb_"/>
+ <property name="nullBlob" type="serializable"/>
+ <property name="binary" column="bin_"/>
+ <property name="theLocale" access="field" column="`localeayzabc123`"/>
+
+ <property name="formula" formula="int_/2"/>
+
+ <property name="custom" type="org.hibernate.test.legacy.DoubleStringType" access="field">
+ <column name="first_name" length="66"/>
+ <column name="surname" length="66"/>
+ </property>
+ <component name="nullComponent">
+ <property name="name" column="null_cmpnt_"/>
+ </component>
+
+ <join table="jointable">
+ <key column="fooid" on-delete="cascade"/>
+ <property name="joinedProp"/>
+ </join>
+
+ <subclass
+ name="Trivial"
+ proxy="FooProxy"
+ discriminator-value="T"/>
+
+ <subclass
+ name="Abstract"
+ proxy="AbstractProxy"
+ discriminator-value="null">
+ <set name="abstracts" batch-size="2">
+ <key column="abstract_id"/>
+ <one-to-many class="Abstract"/>
+ </set>
+ <property name="time" column="the_time"/>
+
+ <subclass
+ name="Bar"
+ proxy="BarProxy"
+ discriminator-value="B">
+ <property name="barString">
+ <column name="bar_string" length="24"/>
+ </property>
+ <any name="object" meta-type="character" id-type="long" cascade="all">
+ <meta-value value="O" class="One"/>
+ <meta-value value="M" class="Many"/>
+ <column name="clazz" length="100"/>
+ <column name="gen_id"/>
+ </any>
+ <join table="bar_join_table">
+ <key column="bar_id"/>
+ <property name="name" column="name_name"/>
+ </join>
+ </subclass>
+ </subclass>
+ </class>
+
+ <class name="One" table="one">
+ <id name="key" column="one_key">
+ <generator class="native" />
+ </id>
+ <property name="x"/>
+ <property column="one_value" name="value"/>
+ </class>
+
+ <class name="Many" table="many">
+ <id name="key" column="many_key">
+ <generator class="native" />
+ </id>
+ <property name="x"/>
+ </class>
+
+</hibernate-mapping>
+
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/KeyManyToOneEntity.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/KeyManyToOneEntity.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/KeyManyToOneEntity.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.HQL.Ast">
+
+ <class name="KeyManyToOneKeyEntity">
+ <id name="id" type="long" access="field" >
+ <generator class="native"/>
+ </id>
+ <property name="Name" type="string"/>
+ </class>
+
+ <class name="KeyManyToOneEntity">
+ <composite-id name="id" access="field" class="KeyManyToOneEntity$Id" unsaved-value="undefined" >
+ <key-many-to-one name="key1" class="KeyManyToOneKeyEntity" />
+ <key-property name="key2" type="string"/>
+ </composite-id>
+ <property name="Name" type="string"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Multi.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Multi.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Multi.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.HQL.Ast"
+ default-lazy="false">
+
+ <class
+ name="org.hibernate.test.legacy.Top"
+ table="rootclass"
+ dynamic-insert="true"
+ dynamic-update="true"
+ select-before-update="true"
+ where="id1_ is not null">
+ <!--cache-->
+ <id name="id" type="long" column="id1_" unsaved-value="0">
+ <generator class="native"/>
+ </id>
+ <version name="count" column="count_"/>
+ <property name="name"/>
+ <property name="address"/>
+ <property name="date" column="date_"/>
+ <many-to-one name="top" access="field" column="top_"/>
+
+ <joined-subclass name="org.hibernate.test.legacy.TrivialClass">
+ <key column="tcid"/>
+ </joined-subclass>
+
+ <joined-subclass
+ name="org.hibernate.test.legacy.Lower"
+ table="leafsubclass"
+ dynamic-insert="true"
+ dynamic-update="true">
+ <key column="id__"/>
+ <property name="intprop" not-null="true"/>
+ <one-to-one name="other" class="org.hibernate.test.legacy.Lower"/>
+ <many-to-one name="another" column="other1" class="org.hibernate.test.legacy.Top"/>
+ <many-to-one name="yetanother" column="other3" class="org.hibernate.test.legacy.Lower"/>
+ <property name="foo"/>
+ <set name="set" lazy="false">
+ <key column="parent"/>
+ <one-to-many class="org.hibernate.test.legacy.Top"/>
+ </set>
+ <bag name="bag" lazy="true" table="simple_simple">
+ <key column="simple1"/>
+ <many-to-many column="simple2" class="org.hibernate.test.legacy.Top"/>
+ </bag>
+ <one-to-one name="mypo"/>
+ </joined-subclass>
+
+ <joined-subclass name="org.hibernate.test.legacy.Multi" table="nonleafsubclass">
+ <key column="sid" on-delete="cascade"/>
+ <property name="extraProp" column="dupe"/>
+ <many-to-one name="other" column="other2" class="org.hibernate.test.legacy.Multi" />
+ <many-to-one name="po"/>
+ <property name="derived" formula="upper(dupe)"/>
+
+ <component name="comp" class="org.hibernate.test.legacy.Multi$Component">
+ <property name="cal"/>
+ <property name="floaty"/>
+ </component>
+
+ <joined-subclass name="org.hibernate.test.legacy.SubMulti" table="leafsubsubclass">
+ <key column="sid"/>
+ <property name="amount" column="dupe"/>
+ <bag name="children" lazy="true" inverse="true">
+ <key column="parent"/>
+ <one-to-many class="org.hibernate.test.legacy.SubMulti"/>
+ </bag>
+ <many-to-one name="parent"/>
+ <list name="moreChildren" lazy="true">
+ <key column="another_parent"/>
+ <index column="list_ind"/>
+ <one-to-many class="org.hibernate.test.legacy.SubMulti"/>
+ </list>
+ </joined-subclass>
+
+ </joined-subclass>
+
+ </class>
+
+ <class
+ name="org.hibernate.test.legacy.Po"
+ dynamic-insert="true">
+ <id type="long" column="id_">
+ <generator class="native"/>
+ </id>
+ <property name="value" column="value_"/>
+ <list name="list" cascade="all">
+ <key column="list_po"/>
+ <index column="i"/>
+ <one-to-many class="org.hibernate.test.legacy.SubMulti"/>
+ </list>
+ <set name="set" inverse="true" cascade="all">
+ <key column="po"/>
+ <one-to-many class="org.hibernate.test.legacy.Multi"/>
+ </set>
+ <many-to-one name="top" column="tl" insert="false" update="false"/>
+ <many-to-one name="lower" column="tl"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/SimpleEntityWithAssociation.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/SimpleEntityWithAssociation.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/SimpleEntityWithAssociation.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.HQL.Ast">
+
+ <!-- *Very* important for the test cases that these entities have identically named columns! -->
+
+ <class name="SimpleEntityWithAssociation" table="SIMPLE_1">
+ <id name="Id" column="ID" type="long">
+ <generator class="native"/>
+ </id>
+ <property name="Name" column="NAME" type="string"/>
+ <set name="AssociatedEntities" cascade="all" inverse="true" lazy="true">
+ <key column="SIMPLE_1_ID"/>
+ <one-to-many class="SimpleAssociatedEntity"/>
+ </set>
+ <set name="ManyToManyAssociatedEntities" cascade="save-update" inverse="false" lazy="true" table="MANY_TO_MANY">
+ <key column="IN_ID"/>
+ <many-to-many class="SimpleEntityWithAssociation" column="OUT_ID"/>
+ </set>
+ </class>
+
+ <class name="SimpleAssociatedEntity" table="SIMPLE_2">
+ <id name="Id" column="ID" type="long">
+ <generator class="native"/>
+ </id>
+ <property name="Name" column="NAME" type="string" />
+ <many-to-one name="Owner" class="SimpleEntityWithAssociation" column="SIMPLE_1_ID"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Vehicle.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Vehicle.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Vehicle.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.HQL.Ast">
+
+ <!-- Vehicle represents an abstract root of a union-subclass hierarchy -->
+ <class name="Vehicle" abstract="true">
+ <id name="id" access="field" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="Vin" type="string"/>
+ <property name="Owner" type="string"/>
+
+ <!-- Car represents a concrete leaf of a union-subclass hierarchy with no concrete super -->
+ <union-subclass name="Car"/>
+
+ <!-- Truck represents a concrete subclass in a union-subclass hierarchy with concrete subclasses and no concrete super -->
+ <union-subclass name="Truck">
+ <!-- Both SUV and Pickup represent concrete leaf of a union-subclass hierarchy (like Car), but with a concrete super -->
+ <union-subclass name="SUV"/>
+ <union-subclass name="Pickup"/>
+ </union-subclass>
+ </class>
+
+ <sql-query name="native-delete-car">
+ <synchronize table="Car"/>
+ delete from CAR where owner = ?
+ </sql-query>
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Versions.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Versions.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Versions.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.HQL.Ast"
+ default-access="field">
+
+ <class name="IntegerVersioned">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <version name="version" column="vers"/>
+ <property name="name"/>
+ </class>
+
+ <class name="TimestampVersioned">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <timestamp name="version" column="vers"/>
+ <property name="name"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-03 12:37:55 UTC (rev 4226)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-03 13:43:03 UTC (rev 4227)
@@ -293,6 +293,7 @@
<Compile Include="GenericTest\SetGeneric\SetGenericFixture.cs" />
<Compile Include="HQL\Animal.cs" />
<Compile Include="HQL\Ast\BaseFixture.cs" />
+ <Compile Include="HQL\Ast\BulkManipulation.cs" />
<Compile Include="HQL\Ast\ParsingFixture.cs" />
<Compile Include="HQL\Ast\SimpleClass.cs" />
<Compile Include="HQL\Ast\SqlTranslationFixture.cs" />
@@ -1724,6 +1725,15 @@
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <Content Include="HQL\Ast\Animal.hbm.xml" />
+ <Content Include="HQL\Ast\BooleanLiteralEntity.hbm.xml" />
+ <Content Include="HQL\Ast\EntityWithCrazyCompositeKey.hbm.xml" />
+ <Content Include="HQL\Ast\FooBarCopy.hbm.xml" />
+ <Content Include="HQL\Ast\KeyManyToOneEntity.hbm.xml" />
+ <Content Include="HQL\Ast\Multi.hbm.xml" />
+ <Content Include="HQL\Ast\SimpleEntityWithAssociation.hbm.xml" />
+ <Content Include="HQL\Ast\Vehicle.hbm.xml" />
+ <Content Include="HQL\Ast\Versions.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1727\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1742\Mappings.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\SimpleClass.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-05-03 22:24:56
|
Revision: 4228
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4228&view=rev
Author: fabiomaulo
Date: 2009-05-03 22:24:46 +0000 (Sun, 03 May 2009)
Log Message:
-----------
Port of classes and mappings for AST tests (at least for BulkUpdates)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/KeyManyToOneEntity.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Multi.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/SimpleEntityWithAssociation.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Vehicle.hbm.xml
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Versions.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Address.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BooleanLiteralEntity.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Classification.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/CrazyCompositeKey.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/DomesticAnimal.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Human.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/IntegerVersioned.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Joiner.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/KeyManyToOneEntity.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/KeyManyToOneKeyEntity.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Mammal.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Name.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Reptile.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/SimpleAssociatedEntity.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/SimpleEntityWithAssociation.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/StateProvince.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/TimestampVersioned.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/User.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Vehicles.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Zoo.cs
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Address.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Address.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Address.cs 2009-05-03 22:24:46 UTC (rev 4228)
@@ -0,0 +1,41 @@
+namespace NHibernate.Test.HQL.Ast
+{
+ public class Address
+ {
+ private string street;
+ private string city;
+ private string postalCode;
+ private string country;
+ private StateProvince stateProvince;
+
+ public string Street
+ {
+ get { return street; }
+ set { street = value; }
+ }
+
+ public string City
+ {
+ get { return city; }
+ set { city = value; }
+ }
+
+ public string PostalCode
+ {
+ get { return postalCode; }
+ set { postalCode = value; }
+ }
+
+ public string Country
+ {
+ get { return country; }
+ set { country = value; }
+ }
+
+ public StateProvince StateProvince
+ {
+ get { return stateProvince; }
+ set { stateProvince = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.cs 2009-05-03 22:24:46 UTC (rev 4228)
@@ -0,0 +1,64 @@
+using Iesi.Collections;
+
+namespace NHibernate.Test.HQL.Ast
+{
+ public class Animal
+ {
+ private long id;
+ private float bodyWeight;
+ private ISet offspring;
+ private Animal mother;
+ private Animal father;
+ private string description;
+ private Zoo zoo;
+ private string serialNumber;
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual float BodyWeight
+ {
+ get { return bodyWeight; }
+ set { bodyWeight = value; }
+ }
+
+ public virtual ISet Offspring
+ {
+ get { return offspring; }
+ set { offspring = value; }
+ }
+
+ public virtual Animal Mother
+ {
+ get { return mother; }
+ set { mother = value; }
+ }
+
+ public virtual Animal Father
+ {
+ get { return father; }
+ set { father = value; }
+ }
+
+ public virtual string Description
+ {
+ get { return description; }
+ set { description = value; }
+ }
+
+ public virtual Zoo Zoo
+ {
+ get { return zoo; }
+ set { zoo = value; }
+ }
+
+ public virtual string SerialNumber
+ {
+ get { return serialNumber; }
+ set { serialNumber = value; }
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Animal.hbm.xml 2009-05-03 22:24:46 UTC (rev 4228)
@@ -3,148 +3,148 @@
assembly="NHibernate.Test"
namespace="NHibernate.Test.HQL.Ast"
default-access="field">
-
- <class name="Animal">
- <id name="id">
- <generator class="native"/>
- </id>
- <property name="description"/>
- <property name="bodyWeight" column="body_weight"/>
- <many-to-one name="mother" column="mother_id"/>
- <many-to-one name="father" column="father_id"/>
- <many-to-one name="zoo" column="zoo_id"/>
- <property name="serialNumber"/>
- <set name="offspring" order-by="father_id">
- <key column="mother_id"/>
- <one-to-many class="Animal"/>
- </set>
- <joined-subclass name="Reptile">
- <key column="animal"/>
- <property name="bodyTemperature"/>
- <joined-subclass name="Lizard">
- <key column="reptile"/>
- </joined-subclass>
- </joined-subclass>
- <joined-subclass name="Mammal">
- <key column="animal"/>
- <property name="pregnant"/>
- <property name="birthdate" type="date"/>
- <joined-subclass name="DomesticAnimal">
- <key column="mammal"/>
- <many-to-one name="owner"/>
- <joined-subclass name="Cat">
- <key column="mammal"/>
- </joined-subclass>
- <joined-subclass name="Dog">
- <key column="mammal"/>
- </joined-subclass>
- </joined-subclass>
- <joined-subclass name="Human">
- <key column="mammal"/>
- <component name="name">
- <property name="first" column="name_first"/>
- <property name="initial" column="name_initial"/>
- <property name="last" column="name_last"/>
- </component>
- <property name="nickName"/>
- <property name="height"/>
-
- <property name="intValue"/>
- <property name="floatValue"/>
- <property name="bigDecimalValue"/>
- <property name="bigIntegerValue"/>
-
- <bag name="friends">
- <key column="human1"/>
- <many-to-many column="human2" class="Human"/>
- </bag>
- <map name="family">
- <key column="human1"/>
- <map-key column="relationship" type="string"/>
- <many-to-many column="human2" class="Human"/>
- </map>
- <bag name="pets" inverse="true">
- <key column="owner"/>
- <one-to-many class="DomesticAnimal"/>
- </bag>
- <set name="nickNames" lazy="false" table="human_nick_names" sort="natural">
- <key column="human"/>
- <element column="nick_name" type="string" not-null="true"/>
- </set>
- <map name="addresses" table="addresses">
- <key column="human"/>
- <map-key type="string" column="type"/>
- <composite-element class="Address">
- <property name="street"/>
- <property name="city"/>
- <property name="postalCode"/>
- <property name="country"/>
- <many-to-one name="stateProvince" column="state_prov_id" class="StateProvince"/>
- </composite-element>
- </map>
- </joined-subclass>
- </joined-subclass>
- </class>
-
- <class name="User" table="`User`">
- <id name="id">
- <generator class="foreign">
- <param name="property">human</param>
- </generator>
- </id>
- <property name="userName"/>
- <one-to-one name="human" constrained="true"/>
- <list name="permissions">
- <key column="userId"/>
- <list-index column="permissionId"/>
- <element type="string" column="permissionName"/>
- </list>
- </class>
-
- <class name="Zoo" discriminator-value="Z">
- <id name="id">
- <generator class="native"/>
- </id>
- <discriminator column="zooType" type="character"/>
- <property name="name" type="string"/>
- <property name="classification" type="org.hibernate.test.hql.ClassificationType"/>
- <map name="mammals">
- <key column="mammalZoo_id"/>
- <index type="string" column="name"/>
- <one-to-many class="Mammal"/>
- </map>
- <map name="animals" inverse="true">
- <key column="zoo_id"/>
- <index type="string" column="serialNumber"/>
- <one-to-many class="Animal"/>
- </map>
- <component name="address" class="Address">
- <property name="street"/>
- <property name="city"/>
- <property name="postalCode"/>
- <property name="country"/>
- <many-to-one name="stateProvince" column="state_prov_id" class="StateProvince"/>
- </component>
- <subclass name="PettingZoo" discriminator-value="P"/>
- </class>
-
- <class name="StateProvince">
- <id name="id">
- <generator class="native"/>
- </id>
- <property name="name"/>
- <property name="isoCode"/>
- </class>
-
- <class name="Joiner">
- <id name="id">
- <generator class="native"/>
- </id>
- <property name="name"/>
- <join table="JOINED">
- <key column="ID"/>
- <property name="joinedName"/>
- </join>
- </class>
-
+
+ <class name="Animal">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <property name="description"/>
+ <property name="bodyWeight" column="body_weight"/>
+ <many-to-one name="mother" column="mother_id"/>
+ <many-to-one name="father" column="father_id"/>
+ <many-to-one name="zoo" column="zoo_id"/>
+ <property name="serialNumber"/>
+ <set name="offspring" order-by="father_id">
+ <key column="mother_id"/>
+ <one-to-many class="Animal"/>
+ </set>
+ <joined-subclass name="Reptile">
+ <key column="animal"/>
+ <property name="bodyTemperature"/>
+ <joined-subclass name="Lizard">
+ <key column="reptile"/>
+ </joined-subclass>
+ </joined-subclass>
+ <joined-subclass name="Mammal">
+ <key column="animal"/>
+ <property name="pregnant"/>
+ <property name="birthdate" type="date"/>
+ <joined-subclass name="DomesticAnimal">
+ <key column="mammal"/>
+ <many-to-one name="owner"/>
+ <joined-subclass name="Cat">
+ <key column="mammal"/>
+ </joined-subclass>
+ <joined-subclass name="Dog">
+ <key column="mammal"/>
+ </joined-subclass>
+ </joined-subclass>
+ <joined-subclass name="Human">
+ <key column="mammal"/>
+ <component name="name">
+ <property name="first" column="name_first"/>
+ <property name="initial" column="name_initial"/>
+ <property name="last" column="name_last"/>
+ </component>
+ <property name="nickName"/>
+ <property name="height"/>
+
+ <property name="intValue"/>
+ <property name="floatValue"/>
+ <property name="bigDecimalValue"/>
+ <property name="bigIntegerValue"/>
+
+ <bag name="friends">
+ <key column="human1"/>
+ <many-to-many column="human2" class="Human"/>
+ </bag>
+ <map name="family">
+ <key column="human1"/>
+ <map-key column="relationship" type="string"/>
+ <many-to-many column="human2" class="Human"/>
+ </map>
+ <bag name="pets" inverse="true">
+ <key column="owner"/>
+ <one-to-many class="DomesticAnimal"/>
+ </bag>
+ <set name="nickNames" lazy="false" table="human_nick_names" sort="natural">
+ <key column="human"/>
+ <element column="nick_name" type="string" not-null="true"/>
+ </set>
+ <map name="addresses" table="addresses">
+ <key column="human"/>
+ <map-key type="string" column="type"/>
+ <composite-element class="Address">
+ <property name="street"/>
+ <property name="city"/>
+ <property name="postalCode"/>
+ <property name="country"/>
+ <many-to-one name="stateProvince" column="state_prov_id" class="StateProvince"/>
+ </composite-element>
+ </map>
+ </joined-subclass>
+ </joined-subclass>
+ </class>
+
+ <class name="User" table="`User`">
+ <id name="id">
+ <generator class="foreign">
+ <param name="property">human</param>
+ </generator>
+ </id>
+ <property name="userName"/>
+ <one-to-one name="human" constrained="true"/>
+ <list name="permissions">
+ <key column="userId"/>
+ <list-index column="permissionId"/>
+ <element type="string" column="permissionName"/>
+ </list>
+ </class>
+
+ <class name="Zoo" discriminator-value="Z">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <discriminator column="zooType" type="character"/>
+ <property name="name" type="string"/>
+ <property name="classification"/>
+ <map name="mammals">
+ <key column="mammalZoo_id"/>
+ <index type="string" column="name"/>
+ <one-to-many class="Mammal"/>
+ </map>
+ <map name="animals" inverse="true">
+ <key column="zoo_id"/>
+ <index type="string" column="serialNumber"/>
+ <one-to-many class="Animal"/>
+ </map>
+ <component name="address" class="Address">
+ <property name="street"/>
+ <property name="city"/>
+ <property name="postalCode"/>
+ <property name="country"/>
+ <many-to-one name="stateProvince" column="state_prov_id" class="StateProvince"/>
+ </component>
+ <subclass name="PettingZoo" discriminator-value="P"/>
+ </class>
+
+ <class name="StateProvince">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <property name="name"/>
+ <property name="isoCode"/>
+ </class>
+
+ <class name="Joiner">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <property name="name"/>
+ <join table="JOINED">
+ <key column="ID"/>
+ <property name="joinedName"/>
+ </join>
+ </class>
+
</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BooleanLiteralEntity.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BooleanLiteralEntity.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BooleanLiteralEntity.cs 2009-05-03 22:24:46 UTC (rev 4228)
@@ -0,0 +1,10 @@
+namespace NHibernate.Test.HQL.Ast
+{
+ public class BooleanLiteralEntity
+ {
+ public virtual long Id { get; set; }
+ public virtual bool YesNoBoolean { get; set; }
+ public virtual bool TrueFalseBoolean { get; set; }
+ public virtual bool ZeroOneBoolean { get; set; }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-03 13:43:03 UTC (rev 4227)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-03 22:24:46 UTC (rev 4228)
@@ -1,15 +1,31 @@
+using NUnit.Framework;
+using NHibernate.Hql.Ast.ANTLR;
+
namespace NHibernate.Test.HQL.Ast
{
+ [TestFixture]
public class BulkManipulation: BaseFixture
{
- // "hql/Animal.hbm.xml",
- // "hql/Vehicle.hbm.xml",
- // "hql/KeyManyToOneEntity.hbm.xml",
- // "hql/Versions.hbm.xml",
- //"hql/FooBarCopy.hbm.xml",
- //"legacy/Multi.hbm.xml",
- //"hql/EntityWithCrazyCompositeKey.hbm.xml",
- //"hql/SimpleEntityWithAssociation.hbm.xml",
- //"hql/BooleanLiteralEntity.hbm.xml"
+ #region Non-exists
+
+ [Test]
+ public void DeleteNonExistentEntity()
+ {
+ using (ISession s = OpenSession())
+ {
+ Assert.Throws<QuerySyntaxException>(() => s.CreateQuery("delete NonExistentEntity").ExecuteUpdate());
+ }
+ }
+
+ [Test]
+ public void UpdateNonExistentEntity()
+ {
+ using (ISession s = OpenSession())
+ {
+ Assert.Throws<QuerySyntaxException>(() => s.CreateQuery("update NonExistentEntity e set e.someProp = ?").ExecuteUpdate());
+ }
+ }
+
+ #endregion
}
}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Classification.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Classification.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Classification.cs 2009-05-03 22:24:46 UTC (rev 4228)
@@ -0,0 +1,8 @@
+namespace NHibernate.Test.HQL.Ast
+{
+ public enum Classification
+ {
+ Cool = 0,
+ Lame = 1
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/CrazyCompositeKey.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/CrazyCompositeKey.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/CrazyCompositeKey.cs 2009-05-03 22:24:46 UTC (rev 4228)
@@ -0,0 +1,51 @@
+namespace NHibernate.Test.HQL.Ast
+{
+ public class CrazyCompositeKey
+ {
+ private long id;
+ private long otherId;
+ private int? requestedHash;
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual long OtherId
+ {
+ get { return otherId; }
+ set { otherId = value; }
+ }
+
+ public override bool Equals(object obj)
+ {
+ return Equals(obj as CrazyCompositeKey);
+ }
+
+ public virtual bool Equals(CrazyCompositeKey other)
+ {
+ if (ReferenceEquals(null, other))
+ {
+ return false;
+ }
+ if (ReferenceEquals(this, other))
+ {
+ return true;
+ }
+ return other.id == id && other.otherId == otherId;
+ }
+
+ public override int GetHashCode()
+ {
+ if (!requestedHash.HasValue)
+ {
+ unchecked
+ {
+ requestedHash = (id.GetHashCode() * 397) ^ otherId.GetHashCode();
+ }
+ }
+ return requestedHash.Value;
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/DomesticAnimal.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/DomesticAnimal.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/DomesticAnimal.cs 2009-05-03 22:24:46 UTC (rev 4228)
@@ -0,0 +1,16 @@
+namespace NHibernate.Test.HQL.Ast
+{
+ public class DomesticAnimal: Mammal
+ {
+ private Human owner;
+
+ public virtual Human Owner
+ {
+ get { return owner; }
+ set { owner = value; }
+ }
+ }
+
+ public class Cat : DomesticAnimal { }
+ public class Dog : DomesticAnimal { }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.cs 2009-05-03 22:24:46 UTC (rev 4228)
@@ -0,0 +1,20 @@
+namespace NHibernate.Test.HQL.Ast
+{
+ public class EntityWithCrazyCompositeKey
+ {
+ private CrazyCompositeKey id;
+ private string name;
+
+ public virtual CrazyCompositeKey Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/EntityWithCrazyCompositeKey.hbm.xml 2009-05-03 22:24:46 UTC (rev 4228)
@@ -3,12 +3,12 @@
assembly="NHibernate.Test"
namespace="NHibernate.Test.HQL.Ast">
- <class name="EntityWithCrazyCompositeKey">
- <composite-id name="Id" class="CrazyCompositeKey">
- <key-property name="Id" column="id"/>
- <key-property name="OtherId" column="other_id"/>
- </composite-id>
- <property name="Name"/>
- </class>
-
+ <class name="EntityWithCrazyCompositeKey">
+ <composite-id name="Id" class="CrazyCompositeKey">
+ <key-property name="Id" column="id"/>
+ <key-property name="OtherId" column="other_id"/>
+ </composite-id>
+ <property name="Name"/>
+ </class>
+
</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml 2009-05-03 13:43:03 UTC (rev 4227)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml 2009-05-03 22:24:46 UTC (rev 4228)
@@ -1,137 +1,140 @@
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
- assembly="NHibernate.Test"
- namespace="NHibernate.Test.HQL.Ast"
- default-lazy="false">
-
- <!-- a slightly modified copy of FooBar.hbm.xml from the legacy test package -->
-
- <class
- name="Foo"
- table="`foos`"
- proxy="FooProxy"
- discriminator-value="F"
- batch-size="4"
- dynamic-insert="true"
- dynamic-update="true"
- select-before-update="true">
-
- <id name="key" type="string">
- <column name="`foo_idcolumnname123`" length="36"/>
- <generator class="uuid.hex">
- <param name="seperator">:</param>
- </generator>
- </id>
-
- <discriminator column="`foo_subclass_1234`" type="character" force="true"/>
- <version name="version"/>
-
- <many-to-one name="foo" class="Foo">
- <column name="foo" length="36" index="fbmtoidx"/>
- </many-to-one>
-
- <property name="long">
- <column name="long_" index="fbmtoidx" unique-key="abc" not-null="true"/>
- </property>
- <property name="integer">
- <column name="`integer__`" unique-key="abc" not-null="true"/>
- </property>
- <property name="float">
- <column name="float_" unique-key="abc" not-null="true" check="float_ > 0.0"/>
- </property>
- <property name="x"/>
- <property name="double" column="double_"/>
-
- <primitive-array name="bytes" table="foobytes">
- <key column="id"/>
- <index column="i"/>
- <element column="byte_" type="byte"/>
- </primitive-array>
-
- <property name="date" type="date" column="date_"/>
- <property name="timestamp" type="timestamp" column="timestamp_"/>
- <property name="boolean" column="boolean_"/>
- <property name="bool" column="bool_"/>
- <property name="null" column="null_"/>
- <property name="short" column="short_"/>
- <property name="char" column="char_"/>
- <property name="zero" column="zero_"/>
- <property name="int" column="int_"/>
- <property name="string">
- <column name="string_" length="48" index="fbstridx"/>
- </property>
- <property name="byte" column="byte_"/>
- <property name="yesno" type="yes_no"/>
- <property name="blob" type="org.hibernate.test.legacy.Foo$Struct" column="blobb_"/>
- <property name="nullBlob" type="serializable"/>
- <property name="binary" column="bin_"/>
- <property name="theLocale" access="field" column="`localeayzabc123`"/>
-
- <property name="formula" formula="int_/2"/>
-
- <property name="custom" type="org.hibernate.test.legacy.DoubleStringType" access="field">
- <column name="first_name" length="66"/>
- <column name="surname" length="66"/>
- </property>
- <component name="nullComponent">
- <property name="name" column="null_cmpnt_"/>
- </component>
-
- <join table="jointable">
- <key column="fooid" on-delete="cascade"/>
- <property name="joinedProp"/>
- </join>
-
- <subclass
- name="Trivial"
- proxy="FooProxy"
- discriminator-value="T"/>
-
- <subclass
- name="Abstract"
- proxy="AbstractProxy"
- discriminator-value="null">
- <set name="abstracts" batch-size="2">
- <key column="abstract_id"/>
- <one-to-many class="Abstract"/>
- </set>
- <property name="time" column="the_time"/>
-
- <subclass
- name="Bar"
- proxy="BarProxy"
- discriminator-value="B">
- <property name="barString">
- <column name="bar_string" length="24"/>
- </property>
- <any name="object" meta-type="character" id-type="long" cascade="all">
- <meta-value value="O" class="One"/>
- <meta-value value="M" class="Many"/>
- <column name="clazz" length="100"/>
- <column name="gen_id"/>
- </any>
- <join table="bar_join_table">
- <key column="bar_id"/>
- <property name="name" column="name_name"/>
- </join>
- </subclass>
- </subclass>
- </class>
-
- <class name="One" table="one">
- <id name="key" column="one_key">
- <generator class="native" />
- </id>
- <property name="x"/>
- <property column="one_value" name="value"/>
- </class>
-
- <class name="Many" table="many">
- <id name="key" column="many_key">
- <generator class="native" />
- </id>
- <property name="x"/>
- </class>
-
-</hibernate-mapping>
-
+ assembly="NHibernate.DomainModel"
+ namespace="NHibernate.DomainModel"
+ default-lazy="false">
+
+ <!-- a slightly modified copy of FooBar.hbm.xml from the legacy test package -->
+
+ <class
+ name="Foo"
+ table="`foos`"
+ proxy="FooProxy"
+ discriminator-value="F"
+ batch-size="4"
+ dynamic-insert="true"
+ dynamic-update="true"
+ select-before-update="true">
+
+ <id name="key" type="string">
+ <column name="`foo_idcolumnname123`" length="36"/>
+ <generator class="uuid.hex">
+ <param name="seperator">:</param>
+ </generator>
+ </id>
+
+ <discriminator column="`foo_subclass_1234`" type="character" force="true"/>
+ <version name="version"/>
+
+ <many-to-one name="foo" class="Foo">
+ <column name="foo" length="36" index="fbmtoidx"/>
+ </many-to-one>
+
+ <property name="Long">
+ <column name="long_" index="fbmtoidx" unique-key="abc" not-null="true"/>
+ </property>
+ <property name="Integer">
+ <column name="`integer__`" unique-key="abc" not-null="true"/>
+ </property>
+ <property name="Float">
+ <column name="float_" unique-key="abc" not-null="true" check="float_ > 0.0"/>
+ </property>
+ <property name="x"/>
+ <property name="Double" column="double_"/>
+
+ <primitive-array name="bytes" table="foobytes">
+ <key column="id"/>
+ <index column="i"/>
+ <element column="byte_" type="byte"/>
+ </primitive-array>
+
+ <property name="Date" type="date" column="date_"/>
+ <property name="Timestamp" type="timestamp" column="timestamp_"/>
+ <property name="Boolean" column="boolean_"/>
+ <property name="Bool" column="bool_"/>
+ <property name="Null" column="null_"/>
+ <property name="Short" column="short_"/>
+ <property name="Char" column="char_"/>
+ <property name="Zero" column="zero_"/>
+ <property name="Int" column="int_"/>
+ <property name="String">
+ <column name="string_" length="48" index="fbstridx"/>
+ </property>
+ <property name="Byte" column="byte_"/>
+ <property name="YesNo" type="yes_no"/>
+ <!--
+ <property name="blob" type="org.hibernate.test.legacy.Foo$Struct" column="blobb_"/>
+ <property name="nullBlob" type="serializable"/>
+ <property name="binary" column="bin_"/>
+ -->
+ <property name="Locale" column="`localeayzabc123`" access="field.camelcase-underscore" type="locale"/>
+
+ <property name="formula" formula="int_*2"/>
+
+ <property name="Custom" type="NHibernate.DomainModel.DoubleStringType, NHibernate.DomainModel" access="field.camelcase">
+ <column name="first_name" length="66"/>
+ <column name="surname" length="66"/>
+ </property>
+
+ <component name="nullComponent">
+ <property name="name" column="null_cmpnt_"/>
+ </component>
+
+ <join table="jointable">
+ <key column="fooid" on-delete="cascade"/>
+ <property name="joinedProp"/>
+ </join>
+
+ <subclass
+ name="Trivial"
+ proxy="FooProxy"
+ discriminator-value="T"/>
+
+ <subclass
+ name="Abstract"
+ proxy="AbstractProxy"
+ discriminator-value="null">
+ <set name="abstracts" batch-size="2">
+ <key column="abstract_id"/>
+ <one-to-many class="Abstract"/>
+ </set>
+ <property name="time" column="the_time"/>
+
+ <subclass
+ name="Bar"
+ proxy="BarProxy"
+ discriminator-value="B">
+ <property name="barString">
+ <column name="bar_string" length="24"/>
+ </property>
+ <any name="object" meta-type="character" id-type="long" cascade="all">
+ <meta-value value="O" class="One"/>
+ <meta-value value="M" class="Many"/>
+ <column name="clazz" length="100"/>
+ <column name="gen_id"/>
+ </any>
+ <join table="bar_join_table">
+ <key column="bar_id"/>
+ <property name="name" column="name_name"/>
+ </join>
+ </subclass>
+ </subclass>
+ </class>
+
+ <class name="One" table="one">
+ <id name="key" column="one_key">
+ <generator class="native" />
+ </id>
+ <property name="x"/>
+ <property column="one_value" name="value"/>
+ </class>
+
+ <class name="Many" table="many">
+ <id name="key" column="many_key">
+ <generator class="native" />
+ </id>
+ <property name="x"/>
+ </class>
+
+</hibernate-mapping>
+
Added: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Human.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Human.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/Human.cs 2009-05-03 22:24:46 UTC (rev 4228)
@@ -0,0 +1,95 @@
+using System.Collections;
+using Iesi.Collections;
+
+namespace NHibernate.Test.HQL.Ast
+{
+ public class Human: Mammal
+ {
+ private Name name;
+ private string nickName;
+ private ICollection friends;
+ private ICollection pets;
+ private IDictionary family;
+ private double height;
+
+ private long bigIntegerValue;
+ private decimal bigDecim...
[truncated message content] |
|
From: <fab...@us...> - 2009-05-04 05:09:46
|
Revision: 4229
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4229&view=rev
Author: fabiomaulo
Date: 2009-05-04 05:09:41 +0000 (Mon, 04 May 2009)
Log Message:
-----------
Some more tests about delete
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/BulkManipulation/HQLBulkOperations.cs
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs
Modified: trunk/nhibernate/src/NHibernate.Test/BulkManipulation/HQLBulkOperations.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/BulkManipulation/HQLBulkOperations.cs 2009-05-03 22:24:46 UTC (rev 4228)
+++ trunk/nhibernate/src/NHibernate.Test/BulkManipulation/HQLBulkOperations.cs 2009-05-04 05:09:41 UTC (rev 4229)
@@ -19,14 +19,17 @@
using (var s = OpenSession())
using (var tx = s.BeginTransaction())
{
- s.CreateQuery("delete from SimpleClass").ExecuteUpdate();
+ Assert.That(s.CreateQuery("delete from SimpleClass where Description = 'simple2'").ExecuteUpdate(),
+ Is.EqualTo(1));
tx.Commit();
}
using (var s = OpenSession())
+ using (var tx = s.BeginTransaction())
{
- var l = s.CreateQuery("from SimpleClass").List();
- Assert.That(l.Count, Is.EqualTo(0));
+ Assert.That(s.CreateQuery("delete from SimpleClass").ExecuteUpdate(),
+ Is.EqualTo(1));
+ tx.Commit();
}
}
}
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-03 22:24:46 UTC (rev 4228)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-04 05:09:41 UTC (rev 4229)
@@ -6,6 +6,11 @@
[TestFixture]
public class BulkManipulation: BaseFixture
{
+ public ISession OpenNewSession()
+ {
+ return OpenSession();
+ }
+
#region Non-exists
[Test]
@@ -27,5 +32,136 @@
}
#endregion
+
+ [Test, Ignore("Not supported")]
+ public void DeleteRestrictedOnManyToOne()
+ {
+ var data = new TestData(this);
+ data.Prepare();
+
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+
+ int count = s.CreateQuery("delete Animal where mother = :mother")
+ .SetEntity("mother", data.Butterfly)
+ .ExecuteUpdate();
+ Assert.That(count, Is.EqualTo(1));
+
+ t.Commit();
+ s.Close();
+
+ data.Cleanup();
+ }
+
+ [Test]
+ public void DeleteSyntaxWithCompositeId()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+
+ s.CreateQuery("delete EntityWithCrazyCompositeKey where Id.Id = 1 and Id.OtherId = 2").ExecuteUpdate();
+ s.CreateQuery("delete from EntityWithCrazyCompositeKey where Id.Id = 1 and Id.OtherId = 2").ExecuteUpdate();
+ s.CreateQuery("delete from EntityWithCrazyCompositeKey e where e.Id.Id = 1 and e.Id.OtherId = 2").ExecuteUpdate();
+
+ t.Commit();
+ s.Close();
+ }
+
+ private class TestData
+ {
+ private readonly BulkManipulation tc;
+ public Animal Polliwog;
+ public Animal Catepillar;
+ public Animal Frog;
+ public Animal Butterfly;
+
+ public Zoo Zoo;
+ public Zoo PettingZoo;
+
+ public TestData(BulkManipulation tc)
+ {
+ this.tc = tc;
+ }
+
+ public void Prepare()
+ {
+ ISession s = tc.OpenNewSession();
+ ITransaction txn = s.BeginTransaction();
+
+ Polliwog = new Animal { BodyWeight = 12, Description = "Polliwog" };
+
+ Catepillar = new Animal { BodyWeight = 10, Description = "Catepillar" };
+
+ Frog = new Animal { BodyWeight = 34, Description = "Frog" };
+
+ Polliwog.Father = Frog;
+ Frog.Offspring.Add(Polliwog);
+
+ Butterfly = new Animal { BodyWeight = 9, Description = "Butterfly" };
+
+ Catepillar.Mother = Butterfly;
+ Butterfly.Offspring.Add(Catepillar);
+
+ s.Save(Frog);
+ s.Save(Polliwog);
+ s.Save(Butterfly);
+ s.Save(Catepillar);
+
+ var dog = new Dog { BodyWeight = 200, Description = "dog" };
+ s.Save(dog);
+
+ var cat = new Cat { BodyWeight = 100, Description = "cat" };
+ s.Save(cat);
+
+ Zoo = new Zoo { Name = "Zoo" };
+ var add = new Address { City = "MEL", Country = "AU", Street = "Main st", PostalCode = "3000" };
+ Zoo.Address = add;
+
+ PettingZoo = new PettingZoo { Name = "Petting Zoo" };
+ var addr = new Address { City = "Sydney", Country = "AU", Street = "High st", PostalCode = "2000" };
+ PettingZoo.Address = addr;
+
+ s.Save(Zoo);
+ s.Save(PettingZoo);
+
+ var joiner = new Joiner { JoinedName = "joined-name", Name = "name" };
+ s.Save(joiner);
+
+ var car = new Car { Vin = "123c", Owner = "Kirsten" };
+ s.Save(car);
+
+ var truck = new Truck { Vin = "123t", Owner = "Steve" };
+ s.Save(truck);
+
+ var suv = new SUV { Vin = "123s", Owner = "Joe" };
+ s.Save(suv);
+
+ var pickup = new Pickup { Vin = "123p", Owner = "Cecelia" };
+ s.Save(pickup);
+
+ var b = new BooleanLiteralEntity();
+ s.Save(b);
+
+ txn.Commit();
+ s.Close();
+ }
+
+ public void Cleanup()
+ {
+ ISession s = tc.OpenNewSession();
+ ITransaction txn = s.BeginTransaction();
+
+ // workaround awesome HSQLDB "feature"
+ s.CreateQuery("delete from Animal where mother is not null or father is not null").ExecuteUpdate();
+ s.CreateQuery("delete from Animal").ExecuteUpdate();
+ s.CreateQuery("delete from Zoo").ExecuteUpdate();
+ s.CreateQuery("delete from Joiner").ExecuteUpdate();
+ s.CreateQuery("delete from Vehicle").ExecuteUpdate();
+ s.CreateQuery("delete from BooleanLiteralEntity").ExecuteUpdate();
+
+ txn.Commit();
+ s.Close();
+ }
+ }
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-05-07 05:02:58
|
Revision: 4258
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4258&view=rev
Author: fabiomaulo
Date: 2009-05-07 05:02:56 +0000 (Thu, 07 May 2009)
Log Message:
-----------
- CR-LF in BulkManipulation
- moved test to Ast
- ReturnMetadata now is working
- NH-322 was fixed with the new parser
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs
Removed Paths:
-------------
trunk/nhibernate/src/NHibernate.Test/HQL/HqlFixture.cs
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-07 03:34:37 UTC (rev 4257)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-07 05:02:56 UTC (rev 4258)
@@ -228,17 +228,17 @@
[Test]
public void UpdateOnManyToOne()
- {
+ {
ISession s = OpenSession();
ITransaction t = s.BeginTransaction();
-
- s.CreateQuery("update Animal a set a.mother = null where a.id = 2").ExecuteUpdate();
+
+ s.CreateQuery("update Animal a set a.mother = null where a.id = 2").ExecuteUpdate();
if (! (Dialect is MySQLDialect))
- {
- // MySQL does not support (even un-correlated) subqueries against the update-mutating table
- s.CreateQuery("update Animal a set a.mother = (from Animal where id = 1) where a.id = 2").ExecuteUpdate();
- }
-
+ {
+ // MySQL does not support (even un-correlated) subqueries against the update-mutating table
+ s.CreateQuery("update Animal a set a.mother = (from Animal where id = 1) where a.id = 2").ExecuteUpdate();
+ }
+
t.Commit();
s.Close();
}
@@ -310,70 +310,70 @@
s.Close();
data.Cleanup();
- }
+ }
[Test]
public void UpdateOnAnimal()
- {
+ {
var data = new TestData(this);
data.Prepare();
ISession s = OpenSession();
ITransaction t = s.BeginTransaction();
int count =
- s.CreateQuery("update Animal set description = description where description = :desc")
- .SetString("desc", data.Frog.Description)
+ s.CreateQuery("update Animal set description = description where description = :desc")
+ .SetString("desc", data.Frog.Description)
.ExecuteUpdate();
Assert.That(count, Is.EqualTo(1), "Incorrect entity-updated count");
-
+
count =
- s.CreateQuery("update Animal set description = :newDesc where description = :desc")
- .SetString("desc",data.Polliwog.Description)
- .SetString("newDesc", "Tadpole")
+ s.CreateQuery("update Animal set description = :newDesc where description = :desc")
+ .SetString("desc",data.Polliwog.Description)
+ .SetString("newDesc", "Tadpole")
.ExecuteUpdate();
Assert.That(count, Is.EqualTo(1), "Incorrect entity-updated count");
-
+
var tadpole = s.Load<Animal>(data.Polliwog.Id);
Assert.That(tadpole.Description, Is.EqualTo("Tadpole"), "Update did not take effect");
-
+
count =
s.CreateQuery("update Animal set bodyWeight = bodyWeight + :w1 + :w2")
.SetDouble("w1", 1)
- .SetDouble("w2", 2)
+ .SetDouble("w2", 2)
.ExecuteUpdate();
Assert.That(count, Is.EqualTo(6), "incorrect count on 'complex' update assignment");
-
+
if (! (Dialect is MySQLDialect))
- {
- // MySQL does not support (even un-correlated) subqueries against the update-mutating table
- s.CreateQuery("update Animal set bodyWeight = ( select max(bodyWeight) from Animal )").ExecuteUpdate();
+ {
+ // MySQL does not support (even un-correlated) subqueries against the update-mutating table
+ s.CreateQuery("update Animal set bodyWeight = ( select max(bodyWeight) from Animal )").ExecuteUpdate();
}
t.Commit();
s.Close();
data.Cleanup();
- }
+ }
[Test]
public void UpdateOnMammal()
- {
+ {
var data = new TestData(this);
data.Prepare();
ISession s = OpenSession();
ITransaction t = s.BeginTransaction();
-
+
int count = s.CreateQuery("update Mammal set description = description").ExecuteUpdate();
Assert.That(count, Is.EqualTo(2), "incorrect update count against 'middle' of joined-subclass hierarchy");
-
+
count = s.CreateQuery("update Mammal set bodyWeight = 25").ExecuteUpdate();
Assert.That(count, Is.EqualTo(2), "incorrect update count against 'middle' of joined-subclass hierarchy");
-
+
if (! (Dialect is MySQLDialect))
{
- // MySQL does not support (even un-correlated) subqueries against the update-mutating table
+ // MySQL does not support (even un-correlated) subqueries against the update-mutating table
count = s.CreateQuery("update Mammal set bodyWeight = ( select max(bodyWeight) from Animal )").ExecuteUpdate();
Assert.That(count, Is.EqualTo(2), "incorrect update count against 'middle' of joined-subclass hierarchy");
}
@@ -462,7 +462,7 @@
s.Close();
data.Cleanup();
- }
+ }
#endregion
Copied: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs (from rev 4248, trunk/nhibernate/src/NHibernate.Test/HQL/HqlFixture.cs)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/HqlFixture.cs 2009-05-07 05:02:56 UTC (rev 4258)
@@ -0,0 +1,95 @@
+using System.Collections;
+using NHibernate.Engine.Query;
+using NHibernate.Util;
+using NUnit.Framework;
+
+namespace NHibernate.Test.HQL.Ast
+{
+ [TestFixture]
+ public class HqlFixture : BaseFixture
+ {
+ protected HQLQueryPlan CreateQueryPlan(string hql, bool scalar)
+ {
+ return new HQLQueryPlan(hql, scalar, new CollectionHelper.EmptyMapClass<string, IFilter>(), sessions);
+ }
+
+ protected HQLQueryPlan CreateQueryPlan(string hql)
+ {
+ return CreateQueryPlan(hql, false);
+ }
+
+ private static void Check(ReturnMetadata returnMetadata, bool expectingEmptyTypes, bool expectingEmptyAliases)
+ {
+ Assert.IsNotNull(returnMetadata, "null return metadata");
+ Assert.IsNotNull(returnMetadata, "null return metadata - types");
+ Assert.AreEqual(1, returnMetadata.ReturnTypes.Length, "unexpected return size");
+
+ if (expectingEmptyTypes)
+ {
+ Assert.IsNull(returnMetadata.ReturnTypes[0], "non-empty types");
+ }
+ else
+ {
+ Assert.IsNotNull(returnMetadata.ReturnTypes[0], "empty types");
+ }
+
+ if (expectingEmptyAliases)
+ {
+ Assert.IsNull(returnMetadata.ReturnAliases, "non-empty aliases");
+ }
+ else
+ {
+ Assert.IsNotNull(returnMetadata.ReturnAliases, "empty aliases");
+ Assert.IsNotNull(returnMetadata.ReturnAliases[0], "empty aliases");
+ }
+ }
+
+ [Test]
+ public void ReturnMetadata()
+ {
+ HQLQueryPlan plan;
+ plan = CreateQueryPlan("from Animal a");
+ Check(plan.ReturnMetadata, false, true);
+
+ plan = CreateQueryPlan("select a as animal from Animal a");
+ Check(plan.ReturnMetadata, false, false);
+
+ plan = CreateQueryPlan("from System.Object");
+ Check(plan.ReturnMetadata, true, true);
+
+ plan = CreateQueryPlan("select o as entity from System.Object o");
+ Check(plan.ReturnMetadata, true, false);
+ }
+
+ [Test]
+ public void CaseClauseInSelect()
+ {
+ // NH-322
+ using (ISession s = OpenSession())
+ using (s.BeginTransaction())
+ {
+ s.Save(new Animal {BodyWeight = 12, Description = "Polliwog"});
+ s.Transaction.Commit();
+ }
+
+ using (ISession s = OpenSession())
+ {
+ var l = s.CreateQuery("select a.id, case when a.description = 'Polliwog' then 2 else 0 end from Animal a").List();
+ var element = (IList)l[0];
+ Assert.That(element[1], Is.EqualTo(2));
+
+ // work with alias
+ l = s.CreateQuery("select a.id, case when a.description = 'Polliwog' then 2 else 0 end as value from Animal a").List();
+ element = (IList)l[0];
+ Assert.That(element[1], Is.EqualTo(2));
+ }
+
+ using (ISession s = OpenSession())
+ using (s.BeginTransaction())
+ {
+ s.CreateQuery("delete from Animal").ExecuteUpdate();
+ s.Transaction.Commit();
+ }
+ }
+ }
+}
\ No newline at end of file
Deleted: trunk/nhibernate/src/NHibernate.Test/HQL/HqlFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/HqlFixture.cs 2009-05-07 03:34:37 UTC (rev 4257)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/HqlFixture.cs 2009-05-07 05:02:56 UTC (rev 4258)
@@ -1,74 +0,0 @@
-using System.Collections;
-using NHibernate.Engine.Query;
-using NHibernate.Util;
-using NUnit.Framework;
-
-namespace NHibernate.Test.Hql
-{
- [TestFixture, Ignore("Not supported yet.")]
- public class HqlFixture : TestCase
- {
- protected override string MappingsAssembly
- {
- get { return "NHibernate.Test"; }
- }
-
- protected override IList Mappings
- {
- get { return new[] {"HQL.Animal.hbm.xml"}; }
- }
-
- protected HQLQueryPlan CreateQueryPlan(string hql, bool scalar)
- {
- return new HQLQueryPlan(hql, scalar, new CollectionHelper.EmptyMapClass<string, IFilter>(), sessions);
- }
-
- protected HQLQueryPlan CreateQueryPlan(string hql)
- {
- return CreateQueryPlan(hql, false);
- }
-
- private static void Check(ReturnMetadata returnMetadata, bool expectingEmptyTypes, bool expectingEmptyAliases)
- {
- Assert.IsNotNull(returnMetadata, "null return metadata");
- Assert.IsNotNull(returnMetadata, "null return metadata - types");
- Assert.AreEqual(1, returnMetadata.ReturnTypes.Length, "unexpected return size");
-
- if (expectingEmptyTypes)
- {
- Assert.IsNull(returnMetadata.ReturnTypes[0], "non-empty types");
- }
- else
- {
- Assert.IsNotNull(returnMetadata.ReturnTypes[0], "empty types");
- }
-
- if (expectingEmptyAliases)
- {
- Assert.IsNull(returnMetadata.ReturnAliases, "non-empty aliases");
- }
- else
- {
- Assert.IsNotNull(returnMetadata.ReturnAliases, "empty aliases");
- Assert.IsNotNull(returnMetadata.ReturnAliases[0], "empty aliases");
- }
- }
-
- [Test]
- public void ReturnMetadata()
- {
- HQLQueryPlan plan;
- plan = CreateQueryPlan("from Animal a");
- Check(plan.ReturnMetadata, false, true);
-
- plan = CreateQueryPlan("select a as animal from Animal a");
- Check(plan.ReturnMetadata, false, false);
-
- plan = CreateQueryPlan("from java.lang.Object");
- Check(plan.ReturnMetadata, true, true);
-
- plan = CreateQueryPlan("select o as entity from java.lang.Object o");
- Check(plan.ReturnMetadata, true, false);
- }
- }
-}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-07 03:34:37 UTC (rev 4257)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-07 05:02:56 UTC (rev 4258)
@@ -364,7 +364,7 @@
<Compile Include="HQL\SQLFunctionTemplateTest.cs" />
<Compile Include="BulkManipulation\NativeSQLBulkOperations.cs" />
<Compile Include="BulkManipulation\Vehicles.cs" />
- <Compile Include="HQL\HqlFixture.cs" />
+ <Compile Include="HQL\Ast\HqlFixture.cs" />
<Compile Include="IdGen\Enhanced\SequenceStyleConfigUnitFixture.cs" />
<Compile Include="IdGen\NativeGuid\NativeGuidFixture.cs" />
<Compile Include="IdGen\NativeGuid\NativeGuidGeneratorFixture.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-05-07 15:04:39
|
Revision: 4261
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4261&view=rev
Author: fabiomaulo
Date: 2009-05-07 15:04:34 +0000 (Thu, 07 May 2009)
Log Message:
-----------
End porting tests for INSERT executable HQL
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Removed Paths:
-------------
trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml
Modified: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-07 10:40:59 UTC (rev 4260)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/BulkManipulation.cs 2009-05-07 15:04:34 UTC (rev 4261)
@@ -3,6 +3,8 @@
using System.Threading;
using NHibernate.Dialect;
using NHibernate.Hql.Ast.ANTLR;
+using NHibernate.Id;
+using NHibernate.Persister.Entity;
using NUnit.Framework;
namespace NHibernate.Test.HQL.Ast
@@ -39,6 +41,7 @@
#endregion
#region INSERTS
+
[Test]
public void SimpleInsert()
{
@@ -61,6 +64,255 @@
data.Cleanup();
}
+ [Test]
+ public void InsertWithManyToOne()
+ {
+ var data = new TestData(this);
+ data.Prepare();
+
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+
+ s.CreateQuery(
+ "insert into Animal (description, bodyWeight, mother) select description, bodyWeight, mother from Human").
+ ExecuteUpdate();
+
+ t.Commit();
+ t = s.BeginTransaction();
+
+ t.Commit();
+ s.Close();
+
+ data.Cleanup();
+ }
+
+ [Test]
+ public void InsertWithMismatchedTypes()
+ {
+ var data = new TestData(this);
+ data.Prepare();
+
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ Assert.Throws<QueryException>(
+ () => s.CreateQuery("insert into Pickup (Owner, Vin, id) select id, Vin, Owner from Car").ExecuteUpdate(),
+ "mismatched types did not error");
+
+ t.Commit();
+ t = s.BeginTransaction();
+
+ s.CreateQuery("delete Vehicle").ExecuteUpdate();
+
+ t.Commit();
+ s.Close();
+
+ data.Cleanup();
+ }
+
+ [Test]
+ public void InsertIntoSuperclassPropertiesFails()
+ {
+ var data = new TestData(this);
+ data.Prepare();
+
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+
+ Assert.Throws<QueryException>(
+ () => s.CreateQuery("insert into Human (id, bodyWeight) select id, bodyWeight from Lizard").ExecuteUpdate(),
+ "superclass prop insertion did not error");
+
+ t.Commit();
+ t = s.BeginTransaction();
+
+ s.CreateQuery("delete Animal where mother is not null").ExecuteUpdate();
+ s.CreateQuery("delete Animal where father is not null").ExecuteUpdate();
+ s.CreateQuery("delete Animal").ExecuteUpdate();
+
+ t.Commit();
+ s.Close();
+
+ data.Cleanup();
+ }
+
+ [Test]
+ public void InsertAcrossMappedJoinFails()
+ {
+ var data = new TestData(this);
+ data.Prepare();
+
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+
+ Assert.Throws<QueryException>(
+ () => s.CreateQuery("insert into Joiner (name, joinedName) select vin, owner from Car").ExecuteUpdate(),
+ "mapped-join insertion did not error");
+
+ t.Commit();
+ t = s.BeginTransaction();
+
+ s.CreateQuery("delete Joiner").ExecuteUpdate();
+ s.CreateQuery("delete Vehicle").ExecuteUpdate();
+
+ t.Commit();
+ s.Close();
+
+ data.Cleanup();
+ }
+
+ public void InsertWithGeneratedId()
+ {
+ // Make sure the env supports bulk inserts with generated ids...
+ IEntityPersister persister = sessions.GetEntityPersister(typeof (PettingZoo).FullName);
+ IIdentifierGenerator generator = persister.IdentifierGenerator;
+ if (!HqlSqlWalker.SupportsIdGenWithBulkInsertion(generator))
+ {
+ return;
+ }
+
+ // create a Zoo
+ var zoo = new Zoo {Name = "zoo"};
+
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ s.Save(zoo);
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ int count = s.CreateQuery("insert into PettingZoo (name) select name from Zoo").ExecuteUpdate();
+ t.Commit();
+ s.Close();
+ Assert.That(count, Is.EqualTo(1), "unexpected insertion count");
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ var pz = (PettingZoo) s.CreateQuery("from PettingZoo").UniqueResult();
+ t.Commit();
+ s.Close();
+
+ Assert.That(zoo.Name, Is.EqualTo(pz.Name));
+ Assert.That(zoo.Id != pz.Id);
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ s.CreateQuery("delete Zoo").ExecuteUpdate();
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void InsertWithGeneratedVersionAndId()
+ {
+ // Make sure the env supports bulk inserts with generated ids...
+ IEntityPersister persister = sessions.GetEntityPersister(typeof (IntegerVersioned).FullName);
+ IIdentifierGenerator generator = persister.IdentifierGenerator;
+ if (!HqlSqlWalker.SupportsIdGenWithBulkInsertion(generator))
+ {
+ return;
+ }
+
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+
+ var entity = new IntegerVersioned {Name = "int-vers"};
+ s.Save(entity);
+ s.CreateQuery("select id, name, version from IntegerVersioned").List();
+ t.Commit();
+ s.Close();
+
+ long initialId = entity.Id;
+ int initialVersion = entity.Version;
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ int count = s.CreateQuery("insert into IntegerVersioned ( name ) select name from IntegerVersioned").ExecuteUpdate();
+ t.Commit();
+ s.Close();
+
+ Assert.That(count, Is.EqualTo(1), "unexpected insertion count");
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ var created =
+ (IntegerVersioned)
+ s.CreateQuery("from IntegerVersioned where id <> :initialId").SetInt64("initialId", initialId).UniqueResult();
+ t.Commit();
+ s.Close();
+
+ Assert.That(created.Version, Is.EqualTo(initialVersion), "version was not seeded");
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ s.CreateQuery("delete IntegerVersioned").ExecuteUpdate();
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void InsertWithGeneratedTimestampVersion()
+ {
+ // Make sure the env supports bulk inserts with generated ids...
+ IEntityPersister persister = sessions.GetEntityPersister(typeof (TimestampVersioned).FullName);
+ IIdentifierGenerator generator = persister.IdentifierGenerator;
+ if (!HqlSqlWalker.SupportsIdGenWithBulkInsertion(generator))
+ {
+ return;
+ }
+
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+
+ var entity = new TimestampVersioned {Name = "int-vers"};
+ s.Save(entity);
+ s.CreateQuery("select id, name, version from TimestampVersioned").List();
+ t.Commit();
+ s.Close();
+
+ long initialId = entity.Id;
+ //Date initialVersion = entity.getVersion();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ int count =
+ s.CreateQuery("insert into TimestampVersioned ( name ) select name from TimestampVersioned").ExecuteUpdate();
+ t.Commit();
+ s.Close();
+
+ Assert.That(count, Is.EqualTo(1), "unexpected insertion count");
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ var created =
+ (TimestampVersioned)
+ s.CreateQuery("from TimestampVersioned where id <> :initialId").SetInt64("initialId", initialId).UniqueResult();
+ t.Commit();
+ s.Close();
+
+ Assert.That(created.Version, Is.GreaterThan(DateTime.Today));
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ s.CreateQuery("delete TimestampVersioned").ExecuteUpdate();
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void InsertWithSelectListUsingJoins()
+ {
+ // this is just checking parsing and syntax...
+ ISession s = OpenSession();
+ s.BeginTransaction();
+ s.CreateQuery(
+ "insert into Animal (description, bodyWeight) select h.description, h.bodyWeight from Human h where h.mother.mother is not null")
+ .ExecuteUpdate();
+ s.CreateQuery("delete from Animal").ExecuteUpdate();
+ s.Transaction.Commit();
+ s.Close();
+ }
+
#endregion
#region UPDATES
Deleted: trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml 2009-05-07 10:40:59 UTC (rev 4260)
+++ trunk/nhibernate/src/NHibernate.Test/HQL/Ast/FooBarCopy.hbm.xml 2009-05-07 15:04:34 UTC (rev 4261)
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
- assembly="NHibernate.DomainModel"
- namespace="NHibernate.DomainModel"
- default-lazy="false">
-
- <!-- a slightly modified copy of FooBar.hbm.xml from the legacy test package -->
-
- <class
- name="Foo"
- table="`foos`"
- proxy="FooProxy"
- discriminator-value="F"
- batch-size="4"
- dynamic-insert="true"
- dynamic-update="true"
- select-before-update="true">
-
- <id name="key" type="string">
- <column name="`foo_idcolumnname123`" length="36"/>
- <generator class="uuid.hex">
- <param name="seperator">:</param>
- </generator>
- </id>
-
- <discriminator column="`foo_subclass_1234`" type="character" force="true"/>
- <version name="version"/>
-
- <many-to-one name="foo" class="Foo">
- <column name="foo" length="36" index="fbmtoidx"/>
- </many-to-one>
-
- <property name="Long">
- <column name="long_" index="fbmtoidx" unique-key="abc" not-null="true"/>
- </property>
- <property name="Integer">
- <column name="`integer__`" unique-key="abc" not-null="true"/>
- </property>
- <property name="Float">
- <column name="float_" unique-key="abc" not-null="true" check="float_ > 0.0"/>
- </property>
- <property name="x"/>
- <property name="Double" column="double_"/>
-
- <primitive-array name="bytes" table="foobytes">
- <key column="id"/>
- <index column="i"/>
- <element column="byte_" type="byte"/>
- </primitive-array>
-
- <property name="Date" type="date" column="date_"/>
- <property name="Timestamp" type="timestamp" column="timestamp_"/>
- <property name="Boolean" column="boolean_"/>
- <property name="Bool" column="bool_"/>
- <property name="Null" column="null_"/>
- <property name="Short" column="short_"/>
- <property name="Char" column="char_"/>
- <property name="Zero" column="zero_"/>
- <property name="Int" column="int_"/>
- <property name="String">
- <column name="string_" length="48" index="fbstridx"/>
- </property>
- <property name="Byte" column="byte_"/>
- <property name="YesNo" type="yes_no"/>
- <!--
- <property name="blob" type="org.hibernate.test.legacy.Foo$Struct" column="blobb_"/>
- <property name="nullBlob" type="serializable"/>
- <property name="binary" column="bin_"/>
- -->
- <property name="Locale" column="`localeayzabc123`" access="field.camelcase-underscore" type="locale"/>
-
- <property name="formula" formula="int_*2"/>
-
- <property name="Custom" type="NHibernate.DomainModel.DoubleStringType, NHibernate.DomainModel" access="field.camelcase">
- <column name="first_name" length="66"/>
- <column name="surname" length="66"/>
- </property>
-
- <component name="nullComponent">
- <property name="name" column="null_cmpnt_"/>
- </component>
-
- <join table="jointable">
- <key column="fooid" on-delete="cascade"/>
- <property name="joinedProp"/>
- </join>
-
- <subclass
- name="Trivial"
- proxy="FooProxy"
- discriminator-value="T"/>
-
- <subclass
- name="Abstract"
- proxy="AbstractProxy"
- discriminator-value="null">
- <set name="abstracts" batch-size="2">
- <key column="abstract_id"/>
- <one-to-many class="Abstract"/>
- </set>
- <property name="time" column="the_time"/>
-
- <subclass
- name="Bar"
- proxy="BarProxy"
- discriminator-value="B">
- <property name="barString">
- <column name="bar_string" length="24"/>
- </property>
- <any name="object" meta-type="character" id-type="long" cascade="all">
- <meta-value value="O" class="One"/>
- <meta-value value="M" class="Many"/>
- <column name="clazz" length="100"/>
- <column name="gen_id"/>
- </any>
- <join table="bar_join_table">
- <key column="bar_id"/>
- <property name="name" column="name_name"/>
- </join>
- </subclass>
- </subclass>
- </class>
-
- <class name="One" table="one">
- <id name="key" column="one_key">
- <generator class="native" />
- </id>
- <property name="x"/>
- <property column="one_value" name="value"/>
- </class>
-
- <class name="Many" table="many">
- <id name="key" column="many_key">
- <generator class="native" />
- </id>
- <property name="x"/>
- </class>
-
-</hibernate-mapping>
-
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-07 10:40:59 UTC (rev 4260)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-07 15:04:34 UTC (rev 4261)
@@ -42,6 +42,10 @@
<UseVSHostingProcess>false</UseVSHostingProcess>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="Antlr3.Runtime, Version=3.1.0.39271, Culture=neutral, PublicKeyToken=3a9cab8f8d22bfb7, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\lib\net\2.0\Antlr3.Runtime.dll</HintPath>
+ </Reference>
<Reference Include="Iesi.Collections, Version=1.0.0.1, Culture=neutral, PublicKeyToken=154fdcb44c4484fc">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\net\2.0\Iesi.Collections.dll</HintPath>
@@ -1750,7 +1754,6 @@
<EmbeddedResource Include="HQL\Ast\Animal.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\BooleanLiteralEntity.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\EntityWithCrazyCompositeKey.hbm.xml" />
- <Content Include="HQL\Ast\FooBarCopy.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\KeyManyToOneEntity.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\Multi.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\SimpleEntityWithAssociation.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <te...@us...> - 2009-05-11 16:27:15
|
Revision: 4281
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4281&view=rev
Author: tehlike
Date: 2009-05-11 16:27:09 +0000 (Mon, 11 May 2009)
Log Message:
-----------
Ignored tests for NH-1391
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Animal.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Cat.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Dog.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Fixture2.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Person.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithAllTypes.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithAnimals.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithCats.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithDogs.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithSivasKangals.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/SivasKangal.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Animal.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Animal.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Animal.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ public class Animal
+ {
+ public virtual int Id { get; set; }
+ public virtual string Name { get; set; }
+ public virtual Person Owner { get; set; }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Cat.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Cat.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Cat.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ public class Cat:Animal
+ {
+ public virtual string EyeColor { get; set; }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Dog.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Dog.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Dog.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ public class Dog:Animal
+ {
+ public virtual string Country { get; set; }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Fixture.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,104 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ [TestFixture,Ignore]
+ public class Fixture:BugTestCase
+ {
+ protected override void OnSetUp()
+ {
+ using(var session=OpenSession())
+ using(var tran=session.BeginTransaction())
+ {
+ PersonWithAnimals personWithAnimals = new PersonWithAnimals {Name = "fabio"};
+ PersonWithCats personWithCats = new PersonWithCats {Name = "dario"};
+ PersonWithSivasKangals personWithSivasKangals = new PersonWithSivasKangals {Name = "tuna"};
+ PersonWithDogs personWithDogs = new PersonWithDogs {Name = "davy"};
+
+ var animalForAnimals = new Animal {Name = "Pasha",Owner=personWithAnimals};
+ var dogForAnimals = new Dog { Name = "Efe", Country = "Turkey", Owner = personWithAnimals };
+ var catForAnimals = new Cat { Name = "Tekir", EyeColor = "green", Owner = personWithAnimals };
+ var sivasKangalForAnimals = new SivasKangal { Name = "Karabas", Country = "Turkey", HouseAddress = "Atakoy", Owner = personWithAnimals };
+
+ personWithAnimals.AnimalsGeneric.Add(animalForAnimals);
+ personWithAnimals.AnimalsGeneric.Add(dogForAnimals);
+ personWithAnimals.AnimalsGeneric.Add(catForAnimals);
+ personWithAnimals.AnimalsGeneric.Add(sivasKangalForAnimals);
+
+ var animalForCats = new Animal {Name = "Pasha2", Owner = personWithCats};
+ var catForCats = new Cat { Name = "Tekir2", EyeColor = "green", Owner = personWithCats };
+ var dogForCats = new Dog { Name = "Efe2", Country = "Turkey", Owner = personWithCats };
+ personWithCats.AnimalsGeneric.Add(catForCats);
+
+ var catForDogs = new Cat {Name = "Tekir3", EyeColor = "blue", Owner = personWithDogs};
+ var dogForDogs = new Dog { Name = "Efe3", Country = "Turkey", Owner = personWithDogs };
+ var sivasKangalForDogs = new SivasKangal { Name = "Karabas3", Country = "Turkey", HouseAddress = "Atakoy", Owner = personWithDogs };
+ personWithDogs.AnimalsGeneric.Add(dogForDogs);
+ personWithDogs.AnimalsGeneric.Add(sivasKangalForDogs);
+
+ var animalForSivasKangals = new Animal {Name = "Pasha4", Owner = personWithSivasKangals};
+ var dogForSivasKangals = new Dog {Name = "Efe4", Country = "Turkey", Owner = personWithSivasKangals};
+ var catForSivasKangals = new Cat {EyeColor = "red", Name = "Tekir4", Owner = personWithSivasKangals};
+ var sivasKangalForSivasKangals = new SivasKangal { Name = "Karabas4", Country = "Turkey", HouseAddress = "Atakoy", Owner = personWithSivasKangals };
+ personWithSivasKangals.AnimalsGeneric.Add(sivasKangalForSivasKangals);
+
+
+ session.Save(animalForCats);
+ session.Save(dogForCats);
+
+ session.Save(catForDogs);
+
+ session.Save(animalForSivasKangals);
+ session.Save(dogForSivasKangals);
+ session.Save(catForSivasKangals);
+
+ session.Save(personWithAnimals);
+ session.Save(personWithCats);
+ session.Save(personWithDogs);
+ session.Save(personWithSivasKangals);
+
+
+
+ tran.Commit();
+ }
+ }
+ protected override void OnTearDown()
+ {
+ using (var session = OpenSession())
+ using (var tran = session.BeginTransaction())
+ {
+ session.Delete("from Animal");
+ session.Delete("from Person");
+ tran.Commit();
+ }
+ }
+
+
+ [Test]
+ public void Can_discriminate_subclass_on_list_with_lazy_loading_when_used_get()
+ {
+ using (var session = OpenSession())
+ using (var tran = session.BeginTransaction())
+ {
+ var personWithAnimals = session.Get<PersonWithAnimals>(1);
+ var personWithCats = session.Get<PersonWithCats>(2);
+ var personWithDogs = session.Get<PersonWithDogs>(3);
+ var personWithSivasKangals = session.Get<PersonWithSivasKangals>(4);
+
+ Assert.That(personWithAnimals.AnimalsGeneric,Has.Count.EqualTo(4));
+ Assert.That(personWithAnimals.AnimalsNonGeneric, Has.Count.EqualTo(4));
+
+ Assert.That(personWithCats.CatsGeneric, Has.Count.EqualTo(1));
+ Assert.That(personWithCats.CatsNonGeneric, Has.Count.EqualTo(1));
+
+ Assert.That(personWithDogs.DogsGeneric, Has.Count.EqualTo(2));
+ Assert.That(personWithDogs.DogsNonGeneric, Has.Count.EqualTo(2));
+
+ Assert.That(personWithSivasKangals.SivasKangalsGeneric, Has.Count.EqualTo(1));
+ Assert.That(personWithSivasKangals.SivasKangalsNonGeneric, Has.Count.EqualTo(1));
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Fixture2.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Fixture2.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Fixture2.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ [TestFixture,Ignore]
+ public class Fixture2:BugTestCase
+ {
+ protected override void OnSetUp()
+ {
+ using (var session = OpenSession())
+ using (var tran = session.BeginTransaction())
+ {
+ PersonWithAllTypes personWithAllTypes = new PersonWithAllTypes();
+ Animal animal = new Animal { Name = "Pasha", Owner = personWithAllTypes };
+ Dog dog = new Dog { Country = "Turkey", Name = "Kral", Owner = personWithAllTypes };
+ SivasKangal sivasKangal = new SivasKangal
+ {
+ Name = "Karabas",
+ Country = "Turkey",
+ HouseAddress = "Address",
+ Owner = personWithAllTypes
+ };
+ Cat cat = new Cat { Name = "Tekir", EyeColor = "Red", Owner = personWithAllTypes };
+ personWithAllTypes.AnimalsGeneric.Add(animal);
+ personWithAllTypes.AnimalsGeneric.Add(cat);
+ personWithAllTypes.AnimalsGeneric.Add(dog);
+ personWithAllTypes.AnimalsGeneric.Add(sivasKangal);
+ session.Save(personWithAllTypes);
+ tran.Commit();
+ }
+ }
+ protected override void OnTearDown()
+ {
+ using (var session = OpenSession())
+ using (var tran = session.BeginTransaction())
+ {
+ session.Delete("from Animal");
+ session.Delete("from Person");
+ tran.Commit();
+ }
+ }
+
+
+ [Test]
+ public void Can_discriminate_subclass_on_list_with_lazy_loading_when_used_and_person_had_multiple_list()
+ {
+ using (var session = OpenSession())
+ using (var tran = session.BeginTransaction())
+ {
+ var personWithAnimals = session.Get<PersonWithAllTypes>(1);
+ Assert.That(personWithAnimals.AnimalsNonGeneric, Has.Count.EqualTo(4));
+ Assert.That(personWithAnimals.AnimalsGeneric, Has.Count.EqualTo(4));
+ Assert.That(personWithAnimals.CatsNonGeneric, Has.Count.EqualTo(1));
+ Assert.That(personWithAnimals.CatsGeneric,Has.Count.EqualTo(1));
+ Assert.That(personWithAnimals.DogsNonGeneric, Has.Count.EqualTo(2));
+ Assert.That(personWithAnimals.DogsGeneric,Has.Count.EqualTo(2));
+ Assert.That(personWithAnimals.SivasKangalsNonGeneric, Has.Count.EqualTo(1));
+ Assert.That(personWithAnimals.SivasKangalsGeneric, Has.Count.EqualTo(1));
+ }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Mappings.hbm.xml 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1391">
+
+ <class name="Animal" discriminator-value="0">
+ <id name="Id" type="int">
+ <generator class="native"/>
+ </id>
+ <discriminator column="AnimalType" type="int"/>
+ <property name="Name" type="string"/>
+ <many-to-one name="Owner" class="Person" column="OwnerId"/>
+ <subclass name="Cat" discriminator-value="1"/>
+ <subclass name="Dog" discriminator-value="2">
+ <property name="Country"/>
+ <subclass name="SivasKangal" discriminator-value="3">
+ <property name="HouseAddress"></property>
+ </subclass>
+ </subclass>
+ </class>
+ <class name="Person" discriminator-value="0">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+
+ <discriminator column="PersonType" type="int"/>
+ <property name="Name"/>
+ <bag name="AnimalsNonGeneric" lazy="true" inverse="true" cascade="save-update">
+ <key column="OwnerId" />
+ <one-to-many class="Animal"/>
+ </bag>
+ <bag name="AnimalsGeneric" lazy="true" inverse="true" cascade="save-update">
+ <key column="OwnerId" />
+ <one-to-many class="Animal"/>
+ </bag>
+ <subclass name="PersonWithAnimals" discriminator-value="1">
+
+ </subclass>
+ <subclass name="PersonWithCats" discriminator-value="2">
+ <bag name="CatsGeneric" lazy="true" inverse="true" cascade="save-update">
+ <key column="OwnerId" />
+ <one-to-many class="Cat"/>
+ </bag>
+ <bag name="CatsNonGeneric" lazy="true" inverse="true" cascade="save-update">
+ <key column="OwnerId" />
+ <one-to-many class="Cat"/>
+ </bag>
+ </subclass>
+ <subclass name="PersonWithDogs" discriminator-value="3">
+ <bag name="DogsGeneric" lazy="true" inverse="true" cascade="save-update">
+ <key column="OwnerId" />
+ <one-to-many class="Dog"/>
+ </bag>
+ <bag name="DogsNonGeneric" lazy="true" inverse="true">
+ <key column="OwnerId" />
+ <one-to-many class="Dog"/>
+ </bag>
+ </subclass>
+ <subclass name="PersonWithSivasKangals" discriminator-value="4">
+ <bag name="SivasKangalsGeneric" lazy="true" inverse="true" cascade="save-update">
+ <key column="OwnerId" />
+ <one-to-many class="SivasKangal"/>
+ </bag>
+ <bag name="SivasKangalsNonGeneric" lazy="true" inverse="true">
+ <key column="OwnerId" />
+ <one-to-many class="SivasKangal"/>
+ </bag>
+ </subclass>
+ <subclass name="PersonWithAllTypes" discriminator-value="5">
+ <bag name="DogsGeneric" lazy="true" inverse="true">
+ <key column="OwnerId" />
+ <one-to-many class="Dog"/>
+ </bag>
+ <bag name="DogsNonGeneric" lazy="true" inverse="true">
+ <key column="OwnerId" />
+ <one-to-many class="Dog"/>
+ </bag>
+ <bag name="CatsGeneric" lazy="true" inverse="true">
+ <key column="OwnerId" />
+ <one-to-many class="Cat"/>
+ </bag>
+ <bag name="CatsNonGeneric" lazy="true" inverse="true">
+ <key column="OwnerId" />
+ <one-to-many class="Cat"/>
+ </bag>
+ <bag name="SivasKangalsGeneric" lazy="true" inverse="true">
+ <key column="OwnerId" />
+ <one-to-many class="SivasKangal"/>
+ </bag>
+ <bag name="SivasKangalsNonGeneric" lazy="true" inverse="true">
+ <key column="OwnerId" />
+ <one-to-many class="SivasKangal"/>
+ </bag>
+ </subclass>
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Person.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Person.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/Person.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,20 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ public class Person
+ {
+ public Person()
+ {
+ this.AnimalsGeneric = new List<Animal>();
+ this.AnimalsNonGeneric = new ArrayList();
+ }
+ public virtual int Id { get; set; }
+ public virtual string Name { get; set; }
+ public virtual IList<Animal> AnimalsGeneric { get; set; }
+ public virtual IList AnimalsNonGeneric { get; set; }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithAllTypes.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithAllTypes.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithAllTypes.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ public class PersonWithAllTypes:Person
+ {
+ public virtual IList<Dog> DogsNonGeneric { get; set; }
+ public virtual IList<SivasKangal> SivasKangalsNonGeneric { get; set; }
+ public virtual IList<Cat> CatsNonGeneric { get; set; }
+
+
+ public virtual IList<Dog> DogsGeneric { get; set; }
+ public virtual IList<SivasKangal> SivasKangalsGeneric { get; set; }
+ public virtual IList<Cat> CatsGeneric { get; set; }
+ }
+
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithAnimals.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithAnimals.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithAnimals.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,16 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ public class PersonWithAnimals:Person
+ {
+ public PersonWithAnimals()
+ {
+
+ }
+
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithCats.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithCats.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithCats.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,18 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ public class PersonWithCats : Person
+ {
+ public PersonWithCats()
+ {
+ this.CatsGeneric = new List<Cat>();
+ this.CatsNonGeneric = new ArrayList();
+ }
+ public virtual IList CatsNonGeneric { get; set; }
+ public virtual IList<Cat> CatsGeneric { get; set; }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithDogs.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithDogs.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithDogs.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,18 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ public class PersonWithDogs : Person
+ {
+ public PersonWithDogs()
+ {
+ this.DogsGeneric = new List<Dog>();
+ this.DogsNonGeneric = new ArrayList();
+ }
+ public virtual IList DogsNonGeneric { get; set; }
+ public virtual IList<Dog> DogsGeneric { get; set; }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithSivasKangals.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithSivasKangals.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/PersonWithSivasKangals.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,18 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ public class PersonWithSivasKangals:Person
+ {
+ public PersonWithSivasKangals()
+ {
+ this.SivasKangalsGeneric = new List<SivasKangal>();
+ this.SivasKangalsNonGeneric = new ArrayList();
+ }
+ public virtual IList SivasKangalsNonGeneric { get; set; }
+ public virtual IList<SivasKangal> SivasKangalsGeneric { get; set; }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/SivasKangal.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/SivasKangal.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1391/SivasKangal.cs 2009-05-11 16:27:09 UTC (rev 4281)
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1391
+{
+ public class SivasKangal:Dog
+ {
+ public virtual string HouseAddress { get; set; }
+ }
+}
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-11 14:51:46 UTC (rev 4280)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-11 16:27:09 UTC (rev 4281)
@@ -332,6 +332,20 @@
<Compile Include="NHSpecificTest\Futures\FutureFixture.cs" />
<Compile Include="NHSpecificTest\Logs\LogsFixture.cs" />
<Compile Include="NHSpecificTest\Logs\Person.cs" />
+ <Compile Include="NHSpecificTest\NH1391\Animal.cs" />
+ <Compile Include="NHSpecificTest\NH1391\Cat.cs" />
+ <Compile Include="NHSpecificTest\NH1391\Dog.cs" />
+ <Compile Include="NHSpecificTest\NH1391\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1391\Fixture2.cs" />
+ <Compile Include="NHSpecificTest\NH1391\Person.cs" />
+ <Compile Include="NHSpecificTest\NH1391\PersonWithAllTypes.cs" />
+ <Compile Include="NHSpecificTest\NH1391\PersonWithAnimals.cs" />
+ <Compile Include="NHSpecificTest\NH1391\PersonWithCats.cs" />
+ <Compile Include="NHSpecificTest\NH1391\PersonWithDogs.cs" />
+ <Compile Include="NHSpecificTest\NH1391\PersonWithSivasKangals.cs" />
+ <Compile Include="NHSpecificTest\NH1391\SivasKangal.cs" />
+ <Compile Include="NHSpecificTest\NH1393\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1393\Person.cs" />
<Compile Include="NHSpecificTest\NH1635\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1635\ForumMessage.cs" />
<Compile Include="NHSpecificTest\NH1635\ForumThread.cs" />
@@ -611,8 +625,6 @@
<Compile Include="NHSpecificTest\NH1355\Category.cs" />
<Compile Include="NHSpecificTest\NH1355\CustomVersionType.cs" />
<Compile Include="NHSpecificTest\NH1355\UserTypeTimestamp.cs" />
- <Compile Include="NHSpecificTest\NH1393\Fixture.cs" />
- <Compile Include="NHSpecificTest\NH1393\Person.cs" />
<Compile Include="NHSpecificTest\NH1394\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1394\Person.cs" />
<Compile Include="NHSpecificTest\NH1399\Fixture.cs" />
@@ -1754,6 +1766,8 @@
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1393\Mappings.hbm.xml" />
+ <EmbeddedResource Include="NHSpecificTest\NH1391\Mappings.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\Animal.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\BooleanLiteralEntity.hbm.xml" />
<EmbeddedResource Include="HQL\Ast\EntityWithCrazyCompositeKey.hbm.xml" />
@@ -1906,7 +1920,6 @@
<EmbeddedResource Include="NHSpecificTest\NH1413\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1304\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1408\Mappings.hbm.xml" />
- <EmbeddedResource Include="NHSpecificTest\NH1393\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1394\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1405\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1403\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-05-13 19:31:22
|
Revision: 4292
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4292&view=rev
Author: fabiomaulo
Date: 2009-05-13 19:31:17 +0000 (Wed, 13 May 2009)
Log Message:
-----------
Test for NH-1760
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/DomainClass.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/SampleTest.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/DomainClass.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/DomainClass.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/DomainClass.cs 2009-05-13 19:31:17 UTC (rev 4292)
@@ -0,0 +1,60 @@
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.NH1760
+{
+ public class Customer
+ {
+ public Int32 Id { get; set; }
+ public String Name { get; set; }
+ }
+
+ public class TestClass
+ {
+ public TestClassId Id { get; set; }
+ public String Value { get; set; }
+ }
+
+ public class TestClassId
+ {
+ public Customer Customer { get; set; }
+ public Int32 SomeInt { get; set; }
+
+ public bool Equals(TestClassId other)
+ {
+ if (ReferenceEquals(null, other))
+ {
+ return false;
+ }
+ if (ReferenceEquals(this, other))
+ {
+ return true;
+ }
+ return Equals(other.Customer, Customer) && other.SomeInt == SomeInt;
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (ReferenceEquals(null, obj))
+ {
+ return false;
+ }
+ if (ReferenceEquals(this, obj))
+ {
+ return true;
+ }
+ if (obj.GetType() != typeof (TestClassId))
+ {
+ return false;
+ }
+ return Equals((TestClassId) obj);
+ }
+
+ public override int GetHashCode()
+ {
+ unchecked
+ {
+ return ((Customer != null ? Customer.GetHashCode() : 0) * 397) ^ SomeInt;
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/Mappings.hbm.xml 2009-05-13 19:31:17 UTC (rev 4292)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1760"
+ default-lazy="false">
+
+ <class name="Customer">
+ <id name="Id">
+ <generator class="native" />
+ </id>
+ <property name="Name" />
+ </class>
+
+ <class name="TestClass" >
+ <composite-id name="Id" class="TestClassId">
+ <key-many-to-one class="Customer" name="Customer" />
+ <key-property name="SomeInt" />
+ </composite-id>
+ <property name="Value" />
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/SampleTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/SampleTest.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1760/SampleTest.cs 2009-05-13 19:31:17 UTC (rev 4292)
@@ -0,0 +1,62 @@
+using System.Collections.Generic;
+using NHibernate.Criterion;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1760
+{
+ [TestFixture]
+ public class SampleTest : BugTestCase
+ {
+ private void FillDb()
+ {
+ using (ISession session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ var customer = new Customer {Name = "Alkampfer"};
+ session.Save(customer);
+ var testClass = new TestClass {Id = new TestClassId{Customer = customer, SomeInt = 42}, Value = "TESTVALUE"};
+ session.Save(testClass);
+ tx.Commit();
+ }
+ }
+
+ private void Cleanup()
+ {
+ using (ISession session = OpenSession())
+ using (var tx = session.BeginTransaction())
+ {
+ session.CreateQuery("from TestClass").ExecuteUpdate();
+ session.CreateQuery("from Customer").ExecuteUpdate();
+ tx.Commit();
+ }
+ }
+
+ [Test, Ignore("Not fixed yet.")]
+ public void CanUseCriteria()
+ {
+ FillDb();
+ int hqlCount;
+ int criteriaCount;
+ using (ISession session = OpenSession())
+ {
+ IList<TestClass> retvalue =
+ session.CreateQuery("Select tc from TestClass tc where tc.Id.Customer.Name = :name").SetString("name", "Alkampfer")
+ .List<TestClass>();
+ hqlCount = retvalue.Count;
+ }
+
+ using (ISession session = OpenSession())
+ {
+ ICriteria c =
+ session.CreateCriteria(typeof (TestClass)).CreateAlias("Id.Customer", "IdCust").Add(Restrictions.Eq("IdCust.Name",
+ "Alkampfer"));
+ IList<TestClass> retvalue = c.List<TestClass>();
+ criteriaCount = retvalue.Count;
+ }
+ Assert.That(hqlCount == criteriaCount);
+ Assert.That(hqlCount, Is.EqualTo(1));
+
+ Cleanup();
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-13 16:35:33 UTC (rev 4291)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-13 19:31:17 UTC (rev 4292)
@@ -377,6 +377,8 @@
<Compile Include="NHSpecificTest\NH1741\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1742\DomainClass.cs" />
<Compile Include="NHSpecificTest\NH1742\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1760\DomainClass.cs" />
+ <Compile Include="NHSpecificTest\NH1760\SampleTest.cs" />
<Compile Include="NHSpecificTest\NH645\HQLFunctionFixture.cs" />
<Compile Include="HQL\HQLFunctions.cs" />
<Compile Include="HQL\Human.cs" />
@@ -1768,6 +1770,7 @@
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1760\Mappings.hbm.xml" />
<EmbeddedResource Include="MappingTest\Wicked.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1393\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1391\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ste...@us...> - 2009-05-14 11:43:21
|
Revision: 4300
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4300&view=rev
Author: steverstrong
Date: 2009-05-14 11:43:14 +0000 (Thu, 14 May 2009)
Log Message:
-----------
Added test for NH-1773
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Domain.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Person.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Domain.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Domain.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Domain.cs 2009-05-14 11:43:14 UTC (rev 4300)
@@ -0,0 +1,80 @@
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.NH1773
+{
+ public class Person
+ {
+ private string _name;
+ private int _age;
+ private int _id;
+ private Country _country;
+
+ public virtual int Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+
+ public virtual string Name
+ {
+ get { return _name; }
+ set { _name = value; }
+ }
+
+ public virtual int Age
+ {
+ get { return _age; }
+ set { _age = value; }
+ }
+
+ public virtual Country Country
+ {
+ get { return _country; }
+ set { _country = value; }
+ }
+ }
+
+ public class Country
+ {
+ private int _id;
+ private string _name;
+
+ public virtual int Id
+ {
+ get { return _id; }
+ set { _id = value; }
+ }
+
+ public virtual string Name
+ {
+ get { return _name; }
+ set { _name = value; }
+ }
+ }
+
+ public class PersonResult
+ {
+ private Person _person;
+ private DateTime _time;
+
+ public PersonResult(Person x)
+ {
+ }
+
+ public PersonResult(Person person, DateTime time)
+ {
+ _person = person;
+ _time = time;
+ }
+
+ public Person Person
+ {
+ get { return _person; }
+ }
+
+ public DateTime Time
+ {
+ get { return _time; }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Fixture.cs 2009-05-14 11:43:14 UTC (rev 4300)
@@ -0,0 +1,63 @@
+using System;
+using System.Collections;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1773
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ protected override void Configure(NHibernate.Cfg.Configuration configuration)
+ {
+ base.Configure(configuration);
+ //configuration.SetProperty(NHibernate.Cfg.Environment.QueryTranslator, typeof(NHibernate.Hql.Classic.ClassicQueryTranslatorFactory).AssemblyQualifiedName);
+ }
+
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get { return new[] { "NHSpecificTest.NH1773.Person.hbm.xml"}; }
+ }
+
+ [Test]
+ public void CustomHQLFunctionsShouldBeRecognizedByTheParser()
+ {
+ using (ISession s = OpenSession())
+ {
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ Country c = new Country() {Id = 100, Name = "US"};
+ Person p = new Person() {Age = 35, Name = "My Name", Id=1, Country = c};
+ s.Save(c);
+ s.Save(p);
+ tx.Commit();
+ }
+ }
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ IList result = s.CreateQuery("select new PersonResult(p, current_timestamp()) from Person p left join fetch p.Country").List();
+
+ Assert.AreEqual("My Name", ((PersonResult)result[0]).Person.Name);
+ Assert.IsTrue(NHibernateUtil.IsInitialized(((PersonResult)result[0]).Person.Country));
+ tx.Commit();
+ }
+ }
+
+ protected override void OnTearDown()
+ {
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Delete("from Person");
+ s.Delete("from Country");
+ tx.Commit();
+ }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Person.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Person.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Person.hbm.xml 2009-05-14 11:43:14 UTC (rev 4300)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" namespace="NHibernate.Test.NHSpecificTest.NH1773">
+ <import class="PersonResult" />
+ <class name="Person" table="Person">
+ <id name="Id" column="id" unsaved-value="0">
+ <generator class="assigned" />
+ </id>
+ <property name="Name" column="Name" />
+ <property name="Age" column="Age" />
+ <many-to-one name="Country" class="Country" column="CountryId" />
+ </class>
+
+ <class name="Country" table="Country">
+ <id name="Id" column="Id" unsaved-value="0">
+ <generator class="assigned" />
+ </id>
+ <property name="Name" column="Name" />
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-14 11:35:34 UTC (rev 4299)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-14 11:43:14 UTC (rev 4300)
@@ -381,6 +381,8 @@
<Compile Include="NHSpecificTest\NH1742\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1760\DomainClass.cs" />
<Compile Include="NHSpecificTest\NH1760\SampleTest.cs" />
+ <Compile Include="NHSpecificTest\NH1773\Domain.cs" />
+ <Compile Include="NHSpecificTest\NH1773\Fixture.cs" />
<Compile Include="NHSpecificTest\NH645\HQLFunctionFixture.cs" />
<Compile Include="HQL\HQLFunctions.cs" />
<Compile Include="HQL\Human.cs" />
@@ -1773,6 +1775,7 @@
<EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" />
<EmbeddedResource Include="Ado\VerySimple.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1773\Person.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1760\Mappings.hbm.xml" />
<EmbeddedResource Include="MappingTest\Wicked.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1393\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2009-05-14 14:53:01
|
Revision: 4302
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4302&view=rev
Author: fabiomaulo
Date: 2009-05-14 14:52:56 +0000 (Thu, 14 May 2009)
Log Message:
-----------
Passing test
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Mappings.hbm.xml
Removed Paths:
-------------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Person.hbm.xml
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Fixture.cs 2009-05-14 14:44:13 UTC (rev 4301)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Fixture.cs 2009-05-14 14:52:56 UTC (rev 4302)
@@ -1,28 +1,11 @@
-using System;
-using System.Collections;
-using NUnit.Framework;
+using NUnit.Framework;
+using System.Collections.Generic;
namespace NHibernate.Test.NHSpecificTest.NH1773
{
[TestFixture]
public class Fixture : BugTestCase
{
- protected override void Configure(NHibernate.Cfg.Configuration configuration)
- {
- base.Configure(configuration);
- configuration.SetProperty(NHibernate.Cfg.Environment.QueryTranslator, typeof(NHibernate.Hql.Classic.ClassicQueryTranslatorFactory).AssemblyQualifiedName);
- }
-
- protected override string MappingsAssembly
- {
- get { return "NHibernate.Test"; }
- }
-
- protected override IList Mappings
- {
- get { return new[] { "NHSpecificTest.NH1773.Person.hbm.xml"}; }
- }
-
[Test]
public void CustomHQLFunctionsShouldBeRecognizedByTheParser()
{
@@ -41,10 +24,10 @@
using (ISession s = OpenSession())
using (ITransaction tx = s.BeginTransaction())
{
- IList result = s.CreateQuery("select new PersonResult(p, current_timestamp()) from Person p left join fetch p.Country").List();
+ IList<PersonResult> result = s.CreateQuery("select new PersonResult(p, current_timestamp()) from Person p left join fetch p.Country").List<PersonResult>();
- Assert.AreEqual("My Name", ((PersonResult)result[0]).Person.Name);
- Assert.IsTrue(NHibernateUtil.IsInitialized(((PersonResult)result[0]).Person.Country));
+ Assert.AreEqual("My Name", result[0].Person.Name);
+ Assert.IsTrue(NHibernateUtil.IsInitialized(result[0].Person.Country));
tx.Commit();
}
}
@@ -54,8 +37,8 @@
using (ISession s = OpenSession())
using (ITransaction tx = s.BeginTransaction())
{
- s.Delete("from Person");
- s.Delete("from Country");
+ s.CreateQuery("delete from Person").ExecuteUpdate();
+ s.CreateQuery("delete from Country").ExecuteUpdate();
tx.Commit();
}
}
Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Mappings.hbm.xml (from rev 4300, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Person.hbm.xml)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Mappings.hbm.xml 2009-05-14 14:52:56 UTC (rev 4302)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" namespace="NHibernate.Test.NHSpecificTest.NH1773">
+ <import class="PersonResult" />
+ <class name="Person" table="Person">
+ <id name="Id" column="id" unsaved-value="0">
+ <generator class="assigned" />
+ </id>
+ <property name="Name" column="Name" />
+ <property name="Age" column="Age" />
+ <many-to-one name="Country" class="Country" column="CountryId" />
+ </class>
+
+ <class name="Country" table="Country">
+ <id name="Id" column="Id" unsaved-value="0">
+ <generator class="assigned" />
+ </id>
+ <property name="Name" column="Name" />
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Deleted: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Person.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Person.hbm.xml 2009-05-14 14:44:13 UTC (rev 4301)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1773/Person.hbm.xml 2009-05-14 14:52:56 UTC (rev 4302)
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" namespace="NHibernate.Test.NHSpecificTest.NH1773">
- <import class="PersonResult" />
- <class name="Person" table="Person">
- <id name="Id" column="id" unsaved-value="0">
- <generator class="assigned" />
- </id>
- <property name="Name" column="Name" />
- <property name="Age" column="Age" />
- <many-to-one name="Country" class="Country" column="CountryId" />
- </class>
-
- <class name="Country" table="Country">
- <id name="Id" column="Id" unsaved-value="0">
- <generator class="assigned" />
- </id>
- <property name="Name" column="Name" />
- </class>
-</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-14 14:44:13 UTC (rev 4301)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-05-14 14:52:56 UTC (rev 4302)
@@ -1775,7 +1775,7 @@
<EmbeddedResource Include="BulkManipulation\SimpleClass.hbm.xml" />
<EmbeddedResource Include="Ado\VerySimple.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
- <EmbeddedResource Include="NHSpecificTest\NH1773\Person.hbm.xml" />
+ <EmbeddedResource Include="NHSpecificTest\NH1773\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1760\Mappings.hbm.xml" />
<EmbeddedResource Include="MappingTest\Wicked.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1393\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|