|
From: <aye...@us...> - 2008-07-18 06:00:29
|
Revision: 3638
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3638&view=rev
Author: ayenderahien
Date: 2008-07-18 06:00:38 +0000 (Fri, 18 Jul 2008)
Log Message:
-----------
Applying patch from Will Shaver for NH-1291, Example.Create with anonymous objects
Adding test project modifications
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-3.5.csproj
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-07-18 05:59:41 UTC (rev 3637)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-07-18 06:00:38 UTC (rev 3638)
@@ -285,6 +285,9 @@
<Compile Include="NHSpecificTest\CriteriaFromHql\Person.cs" />
<Compile Include="NHSpecificTest\NH1077\A.cs" />
<Compile Include="NHSpecificTest\NH1077\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1291AnonExample\Home.cs" />
+ <Compile Include="NHSpecificTest\NH1291AnonExample\NH1291AnonExampleFixture.cs" />
+ <Compile Include="NHSpecificTest\NH1291AnonExample\Person.cs" />
<Compile Include="NHSpecificTest\NH1098\FilterParameterOrderFixture.cs" />
<Compile Include="NHSpecificTest\NH1098\Model.cs" />
<Compile Include="NHSpecificTest\NH1101\Domain.cs" />
@@ -1276,6 +1279,7 @@
<EmbeddedResource Include="NHSpecificTest\NH1098\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
+<<<<<<< .mine
<EmbeddedResource Include="NHSpecificTest\NH1297\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
@@ -1336,6 +1340,68 @@
<EmbeddedResource Include="NHSpecificTest\NH1284\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
+=======
+ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" />
+ </ItemGroup>
+ <ItemGroup>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+>>>>>>> .theirs
<Folder Include="Properties\" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
@@ -1354,4 +1420,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>
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-3.5.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-3.5.csproj 2008-07-18 05:59:41 UTC (rev 3637)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-3.5.csproj 2008-07-18 06:00:38 UTC (rev 3638)
@@ -282,12 +282,35 @@
<Compile Include="NHSpecificTest\BasicTimeFixture.cs" />
<Compile Include="NHSpecificTest\BugTestCase.cs" />
<Compile Include="NHSpecificTest\CollectionFixture.cs" />
+ <Compile Include="NHSpecificTest\NH1077\A.cs" />
+ <Compile Include="NHSpecificTest\NH1077\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1101\Domain.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="NHSpecificTest\NH1101\Fixture.cs">
+ <SubType>Code</SubType>
+ </Compile>
<Compile Include="NHSpecificTest\NH1144\Classes.cs" />
<Compile Include="NHSpecificTest\NH1144\Fixture.cs" />
<Compile Include="NHSpecificTest\CriteriaFromHql\Person.cs" />
<Compile Include="NHSpecificTest\CriteriaFromHql\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1284\Fixture.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="NHSpecificTest\NH1284\Model.cs">
+ <SubType>Code</SubType>
+ </Compile>
<Compile Include="NHSpecificTest\NH1290\AuxType.cs" />
<Compile Include="NHSpecificTest\NH1290\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1291AnonExample\Home.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="NHSpecificTest\NH1291AnonExample\NH1291AnonExampleFixture.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="NHSpecificTest\NH1291AnonExample\Person.cs">
+ <SubType>Code</SubType>
+ </Compile>
<Compile Include="NHSpecificTest\NH1301\Domain.cs" />
<Compile Include="NHSpecificTest\NH1301\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1313\A.cs" />
@@ -358,6 +381,21 @@
<Compile Include="NHSpecificTest\NH1332\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1347\A.cs" />
<Compile Include="NHSpecificTest\NH1347\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1355\Category.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="NHSpecificTest\NH1355\CustomVersionType.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="NHSpecificTest\NH1355\UserTypeTimestamp.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="NHSpecificTest\NH1362\Fixture.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="NHSpecificTest\NH1362\Model.cs">
+ <SubType>Code</SubType>
+ </Compile>
<Compile Include="NHSpecificTest\NH280\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Foo.cs" />
<Compile Include="NHSpecificTest\NH1018\Employee.cs" />
@@ -368,6 +406,12 @@
<Compile Include="NHSpecificTest\NH1080\Domain.cs" />
<Compile Include="NHSpecificTest\NH1080\Fixture.cs" />
<Compile Include="NHSpecificTest\NH364\Invoice.cs" />
+ <Compile Include="NHSpecificTest\NH693\Fixture.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="NHSpecificTest\NH693\Something.cs">
+ <SubType>Code</SubType>
+ </Compile>
<Compile Include="NHSpecificTest\NH883\Cat.cs" />
<Compile Include="NHSpecificTest\NH883\Fixture.cs" />
<Compile Include="NHSpecificTest\Docs\Associations\BiM21\Address.cs" />
@@ -1249,6 +1293,29 @@
<EmbeddedResource Include="NHSpecificTest\NH1144\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
+ <EmbeddedResource Include="NHSpecificTest\NH1077\Mappings.hbm.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="NHSpecificTest\NH1101\Mappings.hbm.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="NHSpecificTest\NH1284\Mappings.hbm.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="NHSpecificTest\NH1355\Category.hbm.xml" />
+ <EmbeddedResource Include="NHSpecificTest\NH1355\CategoryTD.hbm.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="NHSpecificTest\NH1362\Mappings.hbm.xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="NHSpecificTest\NH693\EmptyTableName.hbm.xml" />
+ <EmbeddedResource Include="NHSpecificTest\NH693\SpaceTableName.hbm.xml" />
+ </ItemGroup>
+ <ItemGroup>
<Folder Include="Properties\" />
<Folder Include="Unionsubclass2\" />
</ItemGroup>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-07-19 14:07:02
|
Revision: 3641
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3641&view=rev
Author: fabiomaulo
Date: 2008-07-19 14:07:03 +0000 (Sat, 19 Jul 2008)
Log Message:
-----------
Make Test prj compilable in VS2005
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
Property Changed:
----------------
trunk/nhibernate/src/NHibernate.Test/
Property changes on: trunk/nhibernate/src/NHibernate.Test
___________________________________________________________________
Modified: svn:ignore
- bin
obj
.#*
*.user
*.xsx
AssemblyInfo.cs
hibernate.cfg.xml
Debug
Release
*.aps
*.eto
[Bb]in
[Dd]ebug
[Rr]elease
+ bin
obj
.#*
*.user
*.xsx
AssemblyInfo.cs
hibernate.cfg.xml
Debug
Release
*.aps
*.eto
[Bb]in
[Dd]ebug
[Rr]elease
*resharper*
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-07-18 07:32:56 UTC (rev 3640)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-07-19 14:07:03 UTC (rev 3641)
@@ -285,9 +285,6 @@
<Compile Include="NHSpecificTest\CriteriaFromHql\Person.cs" />
<Compile Include="NHSpecificTest\NH1077\A.cs" />
<Compile Include="NHSpecificTest\NH1077\Fixture.cs" />
- <Compile Include="NHSpecificTest\NH1291AnonExample\Home.cs" />
- <Compile Include="NHSpecificTest\NH1291AnonExample\NH1291AnonExampleFixture.cs" />
- <Compile Include="NHSpecificTest\NH1291AnonExample\Person.cs" />
<Compile Include="NHSpecificTest\NH1098\FilterParameterOrderFixture.cs" />
<Compile Include="NHSpecificTest\NH1098\Model.cs" />
<Compile Include="NHSpecificTest\NH1101\Domain.cs" />
@@ -350,6 +347,9 @@
<Compile Include="NHSpecificTest\NH1284\Model.cs" />
<Compile Include="NHSpecificTest\NH1290\AuxType.cs" />
<Compile Include="NHSpecificTest\NH1290\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1291AnonExample\Home.cs" />
+ <Compile Include="NHSpecificTest\NH1291AnonExample\NH1291AnonExampleFixture.cs" />
+ <Compile Include="NHSpecificTest\NH1291AnonExample\Person.cs" />
<Compile Include="NHSpecificTest\NH1297\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1297\Model.cs" />
<Compile Include="NHSpecificTest\NH1301\Domain.cs">
@@ -1281,7 +1281,6 @@
<EmbeddedResource Include="NHSpecificTest\NH1098\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
-<<<<<<< .mine
<EmbeddedResource Include="NHSpecificTest\NH1297\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
@@ -1343,68 +1342,9 @@
<EmbeddedResource Include="NHSpecificTest\NH1284\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
-=======
<EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
->>>>>>> .theirs
<Folder Include="Properties\" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
@@ -1423,4 +1363,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...> - 2008-07-23 19:01:02
|
Revision: 3657
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3657&view=rev
Author: fabiomaulo
Date: 2008-07-23 19:01:10 +0000 (Wed, 23 Jul 2008)
Log Message:
-----------
Port tests from H3.2 (check same behavior)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/Any/
trunk/nhibernate/src/NHibernate.Test/Any/Address.cs
trunk/nhibernate/src/NHibernate.Test/Any/AnyTypeTest.cs
trunk/nhibernate/src/NHibernate.Test/Any/ComplexPropertyValue.cs
trunk/nhibernate/src/NHibernate.Test/Any/IPropertyValue.cs
trunk/nhibernate/src/NHibernate.Test/Any/IntegerPropertyValue.cs
trunk/nhibernate/src/NHibernate.Test/Any/Person.cs
trunk/nhibernate/src/NHibernate.Test/Any/Person.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Any/Properties.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Any/PropertySet.cs
trunk/nhibernate/src/NHibernate.Test/Any/StringPropertyValue.cs
Added: trunk/nhibernate/src/NHibernate.Test/Any/Address.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Any/Address.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Any/Address.cs 2008-07-23 19:01:10 UTC (rev 3657)
@@ -0,0 +1,22 @@
+using Iesi.Collections;
+
+namespace NHibernate.Test.Any
+{
+ public class Address
+ {
+ private long id;
+ private ISet lines = new HashedSet();
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual ISet Lines
+ {
+ get { return lines; }
+ set { lines = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Any/AnyTypeTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Any/AnyTypeTest.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Any/AnyTypeTest.cs 2008-07-23 19:01:10 UTC (rev 3657)
@@ -0,0 +1,53 @@
+using System.Collections;
+using NUnit.Framework;
+
+namespace NHibernate.Test.Any
+{
+ [TestFixture]
+ public class AnyTypeTest : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get { return new string[] {"Any.Person.hbm.xml"}; }
+ }
+
+ protected override string CacheConcurrencyStrategy
+ {
+ get { return null; }
+ }
+
+ [Test]
+ public void FlushProcessing()
+ {
+ //http://opensource.atlassian.com/projects/hibernate/browse/HHH-1663
+ ISession session = OpenSession();
+ session.BeginTransaction();
+ Person person = new Person();
+ Address address = new Address();
+ person.Data = address;
+ session.SaveOrUpdate(person);
+ session.SaveOrUpdate(address);
+ session.Transaction.Commit();
+ session.Close();
+
+ session = OpenSession();
+ session.BeginTransaction();
+ person = (Person) session.Load(typeof (Person), person.Id);
+ person.Name = "makingpersondirty";
+ session.Transaction.Commit();
+ session.Close();
+
+ session = OpenSession();
+ session.BeginTransaction();
+ session.Delete(person);
+ session.Delete(address);
+ session.Transaction.Commit();
+ session.Close();
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Any/ComplexPropertyValue.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Any/ComplexPropertyValue.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Any/ComplexPropertyValue.cs 2008-07-23 19:01:10 UTC (rev 3657)
@@ -0,0 +1,46 @@
+using System.Collections;
+using System.Text;
+
+namespace NHibernate.Test.Any
+{
+ public class ComplexPropertyValue : IPropertyValue
+ {
+ private long id;
+ private IDictionary subProperties = new Hashtable();
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual IDictionary SubProperties
+ {
+ get { return subProperties; }
+ set { subProperties = value; }
+ }
+
+ #region IPropertyValue Members
+
+ public virtual string AsString()
+ {
+ return "complex[" + KeyString() + "]";
+ }
+
+ #endregion
+
+ private string KeyString()
+ {
+ StringBuilder buff = new StringBuilder();
+ foreach (object key in subProperties.Keys)
+ {
+ if (buff.Length > 0)
+ {
+ buff.Append(", ");
+ }
+ buff.Append(key.ToString());
+ }
+ return buff.ToString();
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Any/IPropertyValue.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Any/IPropertyValue.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Any/IPropertyValue.cs 2008-07-23 19:01:10 UTC (rev 3657)
@@ -0,0 +1,7 @@
+namespace NHibernate.Test.Any
+{
+ public interface IPropertyValue
+ {
+ string AsString();
+ }
+}
\ No newline at end of file
Property changes on: trunk/nhibernate/src/NHibernate.Test/Any/IPropertyValue.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Added: trunk/nhibernate/src/NHibernate.Test/Any/IntegerPropertyValue.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Any/IntegerPropertyValue.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Any/IntegerPropertyValue.cs 2008-07-23 19:01:10 UTC (rev 3657)
@@ -0,0 +1,35 @@
+namespace NHibernate.Test.Any
+{
+ public class IntegerPropertyValue : IPropertyValue
+ {
+ private long id;
+ private int value;
+ public IntegerPropertyValue() {}
+
+ public IntegerPropertyValue(int value)
+ {
+ this.value = value;
+ }
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual int Value
+ {
+ get { return value; }
+ set { this.value = value; }
+ }
+
+ #region IPropertyValue Members
+
+ public virtual string AsString()
+ {
+ return value.ToString();
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Any/Person.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Any/Person.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Any/Person.cs 2008-07-23 19:01:10 UTC (rev 3657)
@@ -0,0 +1,27 @@
+namespace NHibernate.Test.Any
+{
+ public class Person
+ {
+ private object data;
+ private long id;
+ private string name;
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public virtual object Data
+ {
+ get { return data; }
+ set { data = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Any/Person.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Any/Person.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Any/Person.hbm.xml 2008-07-23 19:01:10 UTC (rev 3657)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.Any">
+
+ <class name="Person" table="T_ANY_PERSON">
+ <id name="Id" column="ID_">
+ <generator class="increment" />
+ </id>
+ <property name="Name" />
+ <any name="Data" id-type="long" cascade="none">
+ <meta-value value="A" class="Address"/>
+ <column name="DATATYPE_"/>
+ <column name="DATAID_"/>
+ </any>
+ </class>
+
+ <class name="Address" table="T_ANY_ADDRESS">
+ <id name="Id" column="ID_">
+ <generator class="increment" />
+ </id>
+ <set name="Lines" table="LINE">
+ <key column="ADDRESS" />
+ <element type="string" />
+ </set>
+ </class>
+
+</hibernate-mapping>
Added: trunk/nhibernate/src/NHibernate.Test/Any/Properties.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Any/Properties.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Any/Properties.hbm.xml 2008-07-23 19:01:10 UTC (rev 3657)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.Any">
+
+ <class name="PropertySet" table="T_PROP_SET">
+ <id name="Id" column="ID" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="Name" column="NAME" type="string"/>
+ <any name="SomeSpecificProperty" id-type="long" meta-type="string" cascade="all">
+ <meta-value value="I" class="IntegerPropertyValue"/>
+ <meta-value value="S" class="StringPropertyValue"/>
+ <meta-value value="C" class="ComplexPropertyValue" />
+ <column name="S_S_PROP_TYPE"/>
+ <column name="S_S_PROP_ID"/>
+ </any>
+ <map name="GeneralProperties" table="T_GEN_PROPS" lazy="true" cascade="all">
+ <key column="PROP_SET_ID"/>
+ <map-key type="string" column="GEN_PROP_NAME"/>
+ <many-to-any id-type="long" meta-type="string">
+ <meta-value value="I" class="IntegerPropertyValue"/>
+ <meta-value value="S" class="StringPropertyValue"/>
+ <column name="PROP_TYPE"/>
+ <column name="PROP_ID"/>
+ </many-to-any>
+ </map>
+ </class>
+
+ <class name="StringPropertyValue" table="T_CHAR_PROP">
+ <id name="Id" column="ID" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="Value" column="VAL" not-null="true" type="string"/>
+ </class>
+
+ <class name="IntegerPropertyValue" table="T_NUM_PROP">
+ <id name="Id" column="ID" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="Value" column="VAL" not-null="true" type="integer"/>
+ </class>
+
+ <class name="ComplexPropertyValue" table="T_COMPLEX_PROP">
+ <id name="Id" column="ID" type="long">
+ <generator class="increment"/>
+ </id>
+ <map name="SubProperties" table="T_COMPLEX_SUB_PROPS" lazy="true">
+ <key column="PROP_ID" />
+ <map-key type="string" column="SUB_PROP_NAME" />
+ <element type="string" column="SUB_PROP_VAL" />
+ </map>
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Any/PropertySet.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Any/PropertySet.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Any/PropertySet.cs 2008-07-23 19:01:10 UTC (rev 3657)
@@ -0,0 +1,42 @@
+using System.Collections;
+
+namespace NHibernate.Test.Any
+{
+ public class PropertySet
+ {
+ private IDictionary generalProperties = new Hashtable();
+ private long id;
+ private string name;
+ private IPropertyValue someSpecificProperty;
+ public PropertySet() {}
+
+ public PropertySet(string name)
+ {
+ this.name = name;
+ }
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public virtual IPropertyValue SomeSpecificProperty
+ {
+ get { return someSpecificProperty; }
+ set { someSpecificProperty = value; }
+ }
+
+ public virtual IDictionary GeneralProperties
+ {
+ get { return generalProperties; }
+ set { generalProperties = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Any/StringPropertyValue.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Any/StringPropertyValue.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Any/StringPropertyValue.cs 2008-07-23 19:01:10 UTC (rev 3657)
@@ -0,0 +1,32 @@
+namespace NHibernate.Test.Any
+{
+ public class StringPropertyValue: IPropertyValue
+ {
+ private long id;
+ private string value;
+
+ public StringPropertyValue() {}
+
+ public StringPropertyValue(string value)
+ {
+ this.value = value;
+ }
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual string Value
+ {
+ get { return value; }
+ set { this.value = value; }
+ }
+
+ public virtual string AsString()
+ {
+ return value;
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-07-23 16:56:12 UTC (rev 3656)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-07-23 19:01:10 UTC (rev 3657)
@@ -65,6 +65,14 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="Any\Address.cs" />
+ <Compile Include="Any\AnyTypeTest.cs" />
+ <Compile Include="Any\ComplexPropertyValue.cs" />
+ <Compile Include="Any\IntegerPropertyValue.cs" />
+ <Compile Include="Any\Person.cs" />
+ <Compile Include="Any\PropertySet.cs" />
+ <Compile Include="Any\IPropertyValue.cs" />
+ <Compile Include="Any\StringPropertyValue.cs" />
<Compile Include="AssemblyInfo.cs" />
<Compile Include="Assertions\InheritedAreMarkedSerializable.cs" />
<Compile Include="Assertions\IsSerializable.cs" />
@@ -1368,6 +1376,8 @@
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="DynamicEntity\Interceptor\Customer.hbm.xml" />
+ <EmbeddedResource Include="Any\Person.hbm.xml" />
+ <EmbeddedResource Include="Any\Properties.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
<EmbeddedResource Include="NHSpecificTest\NH1403\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1253\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-07-25 06:15:46
|
Revision: 3663
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3663&view=rev
Author: fabiomaulo
Date: 2008-07-25 06:15:55 +0000 (Fri, 25 Jul 2008)
Log Message:
-----------
NH-1408 not an issue in Trunk
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResource.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResourceKey.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DetachedSubCriteriaTest.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Entity.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResource.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResource.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResource.cs 2008-07-25 06:15:55 UTC (rev 3663)
@@ -0,0 +1,84 @@
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.NH1408
+{
+ public abstract class DbResource : Entity
+ {
+ private readonly IList<DbResourceKey> keys = new List<DbResourceKey>();
+ private string rawValue;
+
+ protected virtual string RawValue
+ {
+ get { return rawValue; }
+ set { rawValue = value; }
+ }
+
+ public virtual IEnumerable<DbResourceKey> Keys
+ {
+ get { return keys; }
+ }
+
+ public abstract object Value { get; set; }
+
+ public virtual void AddKey(DbResourceKey key)
+ {
+ if (keys.Contains(key))
+ {
+ return;
+ }
+ keys.Add(key);
+ key.Resource = this;
+ }
+ }
+
+ internal class StringDbResource : DbResource
+ {
+ protected StringDbResource() {}
+
+ public StringDbResource(string key, string language, string value)
+ {
+ AddKey(new DbResourceKey(key, language));
+ Value = value;
+ }
+
+ public override object Value
+ {
+ get { return RawValue; }
+ set { RawValue = (string) value; }
+ }
+ }
+
+ internal class IntDbResource : DbResource
+ {
+ protected IntDbResource() {}
+
+ public IntDbResource(string key, int xml)
+ {
+ AddKey(new DbResourceKey(key));
+ Value = xml;
+ }
+
+ public override object Value
+ {
+ get { return int.Parse(RawValue); }
+ set { RawValue = ((int) value).ToString(); }
+ }
+ }
+
+ internal class DecimalDbResource : DbResource
+ {
+ protected DecimalDbResource() {}
+
+ public DecimalDbResource(string key, decimal xml)
+ {
+ AddKey(new DbResourceKey(key));
+ Value = xml;
+ }
+
+ public override object Value
+ {
+ get { return decimal.Parse(RawValue); }
+ set { RawValue = ((decimal) value).ToString(); }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResourceKey.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResourceKey.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DbResourceKey.cs 2008-07-25 06:15:55 UTC (rev 3663)
@@ -0,0 +1,37 @@
+namespace NHibernate.Test.NHSpecificTest.NH1408
+{
+ public class DbResourceKey : Entity
+ {
+ private readonly object[] keys = new object[2];
+ private DbResource resource;
+
+ protected DbResourceKey() {}
+
+ public DbResourceKey(string resourceId) : this(resourceId, null) {}
+
+ public DbResourceKey(string resourceId, string language)
+ {
+ keys[0] = resourceId;
+ keys[1] = language;
+ }
+
+ // used just for hibernate mappings
+ public virtual object Key0
+ {
+ get { return keys[0]; }
+ set { keys[0] = value; }
+ }
+
+ public virtual object Key1
+ {
+ get { return keys[1]; }
+ set { keys[1] = value; }
+ }
+
+ public virtual DbResource Resource
+ {
+ get { return resource; }
+ internal set { resource = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DetachedSubCriteriaTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DetachedSubCriteriaTest.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/DetachedSubCriteriaTest.cs 2008-07-25 06:15:55 UTC (rev 3663)
@@ -0,0 +1,26 @@
+using NHibernate.Criterion;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1408
+{
+ [TestFixture]
+ public class DetachedSubCriteriaTest : BugTestCase
+ {
+ [Test]
+ public void Test()
+ {
+ DetachedCriteria criteria = DetachedCriteria.For(typeof (DbResource));
+ DetachedCriteria keyCriteria = criteria.CreateCriteria("keys");
+ keyCriteria.Add(Restrictions.Eq("Key0", "2"));
+ keyCriteria.Add(Restrictions.Eq("Key1", "en"));
+ using (ISession session = OpenSession())
+ {
+ ICriteria icriteria = CriteriaTransformer.Clone(criteria).GetExecutableCriteria(session);
+ icriteria.SetFirstResult(0);
+ icriteria.SetMaxResults(1);
+ icriteria.List<DbResource>();
+ // should not throw when parse the criteria
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Entity.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Entity.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Entity.cs 2008-07-25 06:15:55 UTC (rev 3663)
@@ -0,0 +1,20 @@
+namespace NHibernate.Test.NHSpecificTest.NH1408
+{
+ public abstract class Entity
+ {
+ private long oid;
+ private int version;
+
+ public virtual long Oid
+ {
+ get { return oid; }
+ set { oid = value; }
+ }
+
+ public virtual int Version
+ {
+ get { return version; }
+ set { version = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml 2008-07-25 06:15:55 UTC (rev 3663)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1408">
+
+ <class name="DbResource" table="Resources">
+ <cache usage="nonstrict-read-write" />
+ <id name="Oid" column="ID">
+ <generator class="identity"/>
+ </id>
+ <discriminator column="Type" type="String(25)" not-null="true" />
+ <version name="Version" column="Version" />
+
+ <bag name="keys" inverse="true" access="field" lazy="true" optimistic-lock="false"
+ cascade="all-delete-orphan">
+ <key column="ResourceId" />
+ <one-to-many class="DbResourceKey" />
+ </bag>
+
+ <property name="RawValue" type="StringClob">
+ <column name="Value" sql-type="ntext" not-null="true" />
+ </property>
+
+ <subclass name="StringDbResource" discriminator-value="string" />
+ <subclass name="IntDbResource" discriminator-value="int" />
+ <subclass name="DecimalDbResource" discriminator-value="decimal" />
+ </class>
+
+ <class name="DbResourceKey" table="ResourceKeys">
+ <cache usage="nonstrict-read-write" />
+ <id name="Oid" column="ID">
+ <generator class="identity"/>
+ </id>
+
+ <version name="Version" column="Version" />
+
+ <many-to-one name="Resource" column="ResourceId" class="DbResource" foreign-key="FK_RESOURCEKEYS_TO_RESOURCES" />
+ <property name="Key0" column="Key0" type="String(25)" index="RES_KEY0_IDX" />
+ <property name="Key1" column="Key1" type="String(25)" index="RES_KEY1_IDX" />
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-07-25 05:09:20 UTC (rev 3662)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-07-25 06:15:55 UTC (rev 3663)
@@ -407,6 +407,10 @@
<Compile Include="NHSpecificTest\NH1403\Person.cs" />
<Compile Include="NHSpecificTest\NH1405\Column.cs" />
<Compile Include="NHSpecificTest\NH1405\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1408\DbResource.cs" />
+ <Compile Include="NHSpecificTest\NH1408\DbResourceKey.cs" />
+ <Compile Include="NHSpecificTest\NH1408\DetachedSubCriteriaTest.cs" />
+ <Compile Include="NHSpecificTest\NH1408\Entity.cs" />
<Compile Include="NHSpecificTest\NH280\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Foo.cs" />
<Compile Include="NHSpecificTest\NH1018\Employee.cs" />
@@ -1385,6 +1389,7 @@
<EmbeddedResource Include="Any\Person.hbm.xml" />
<EmbeddedResource Include="Any\Properties.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <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" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-08-01 04:25:51
|
Revision: 3694
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3694&view=rev
Author: fabiomaulo
Date: 2008-08-01 04:26:00 +0000 (Fri, 01 Aug 2008)
Log Message:
-----------
Included test only to be sure we have the same behavior (in the trunk we have a different implementation of collections and cascade).
Same behavior confirmed.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Blog.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Entry.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Mappings.hbm.xml
Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Blog.cs (from rev 3693, branches/2.0.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Blog.cs)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Blog.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Blog.cs 2008-08-01 04:26:00 UTC (rev 3694)
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.NH1419
+{
+ [Serializable]
+ public class Blog
+ {
+ private Guid id;
+ private string name;
+ private IList<Entry> entries;
+
+ public Guid ID
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public IList<Entry> Entries
+ {
+ get { return entries; }
+ set { entries = value; }
+ }
+
+ public void AddEntry(Entry entry)
+ {
+ if (entries == null)
+ {
+ entries = new List<Entry>();
+ }
+ entry.Blog = this;
+ entries.Add(entry);
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Blog.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Entry.cs (from rev 3693, branches/2.0.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Entry.cs)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Entry.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Entry.cs 2008-08-01 04:26:00 UTC (rev 3694)
@@ -0,0 +1,30 @@
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.NH1419
+{
+ [Serializable]
+ public class Entry
+ {
+ private Guid id;
+ private Blog blog;
+ private string subject;
+
+ public Guid ID
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public Blog Blog
+ {
+ get { return blog; }
+ set { blog = value; }
+ }
+
+ public string Subject
+ {
+ get { return subject; }
+ set { subject = value; }
+ }
+ }
+}
Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Entry.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Fixture.cs (from rev 3693, branches/2.0.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Fixture.cs)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Fixture.cs 2008-08-01 04:26:00 UTC (rev 3694)
@@ -0,0 +1,58 @@
+using NHibernate;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1419
+{
+ [TestFixture]
+ public class Tests : BugTestCase
+ {
+ [Test]
+ public void Bug()
+ {
+ using (ISession session = OpenSession())
+ {
+ ITransaction transaction = session.BeginTransaction();
+
+ Blog blog = new Blog();
+ blog.Name = "Test Blog 1";
+
+ Entry entry = new Entry();
+ entry.Subject = "Test Entry 1";
+
+ blog.AddEntry(entry);
+
+ session.SaveOrUpdate(blog);
+
+ transaction.Commit();
+ }
+ using (ISession session = OpenSession())
+ {
+ ITransaction transaction = session.BeginTransaction();
+ session.Delete("from Blog");
+ transaction.Commit();
+ }
+ }
+
+ [Test]
+ public void WithEmptyCollection()
+ {
+ using (ISession session = OpenSession())
+ {
+ ITransaction transaction = session.BeginTransaction();
+
+ Blog blog = new Blog();
+ blog.Name = "Test Blog 1";
+
+ session.SaveOrUpdate(blog);
+
+ transaction.Commit();
+ }
+ using (ISession session = OpenSession())
+ {
+ ITransaction transaction = session.BeginTransaction();
+ session.Delete("from Blog");
+ transaction.Commit();
+ }
+ }
+ }
+}
Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Fixture.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Mappings.hbm.xml (from rev 3693, branches/2.0.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Mappings.hbm.xml)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Mappings.hbm.xml 2008-08-01 04:26:00 UTC (rev 3694)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1419"
+ default-lazy="false">
+
+ <class name="Blog" table="Blogs">
+ <id name="ID" type="Guid" column="BlogID">
+ <generator class="guid" />
+ </id>
+ <property name="Name"/>
+ <bag name="Entries" cascade="all-delete-orphan" inverse="true" generic="true">
+ <key column="BlogID"/>
+ <one-to-many class="Entry"/>
+ </bag>
+ </class>
+
+ <class name ="Entry" table="Entries">
+ <id name="ID" type="Guid" column="EntryID">
+ <generator class="guid" />
+ </id>
+ <many-to-one name="Blog" class="Blog" column="BlogID"/>
+ <property name="Subject"/>
+ </class>
+</hibernate-mapping>
Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1419/Mappings.hbm.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-08-01 04:22:05 UTC (rev 3693)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-08-01 04:26:00 UTC (rev 3694)
@@ -415,6 +415,9 @@
<Compile Include="NHSpecificTest\NH1408\Entity.cs" />
<Compile Include="NHSpecificTest\NH1413\Foo.cs" />
<Compile Include="NHSpecificTest\NH1413\PagingTest.cs" />
+ <Compile Include="NHSpecificTest\NH1419\Blog.cs" />
+ <Compile Include="NHSpecificTest\NH1419\Entry.cs" />
+ <Compile Include="NHSpecificTest\NH1419\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Foo.cs" />
<Compile Include="NHSpecificTest\NH1018\Employee.cs" />
@@ -1393,6 +1396,7 @@
<EmbeddedResource Include="Any\Person.hbm.xml" />
<EmbeddedResource Include="Any\Properties.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1419\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1413\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1304\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1408\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-08-16 06:10:27
|
Revision: 3709
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3709&view=rev
Author: fabiomaulo
Date: 2008-08-16 06:10:38 +0000 (Sat, 16 Aug 2008)
Log Message:
-----------
Test for NH-1251 (bug recreated)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/MultiThreadRunner.cs
trunk/nhibernate/src/NHibernate.Test/TypesTest/TypeFactoryFixture.cs
Modified: trunk/nhibernate/src/NHibernate.Test/MultiThreadRunner.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/MultiThreadRunner.cs 2008-08-16 05:03:56 UTC (rev 3708)
+++ trunk/nhibernate/src/NHibernate.Test/MultiThreadRunner.cs 2008-08-16 06:10:38 UTC (rev 3709)
@@ -11,6 +11,7 @@
private readonly Random rnd = new Random();
private bool running;
private int timeout = 1000;
+ private int timeoutBetweenThreadStart = 30;
public MultiThreadRunner(int numThreads, ExecuteAction[] actions)
{
@@ -37,6 +38,12 @@
set { timeout = value; }
}
+ public int TimeoutBetweenThreadStart
+ {
+ get { return timeoutBetweenThreadStart; }
+ set { timeoutBetweenThreadStart = value; }
+ }
+
public void Run(T subjectInstance)
{
running = true;
@@ -47,7 +54,7 @@
t[i].Name = i.ToString();
t[i].Start(subjectInstance);
if (i > 2)
- Thread.Sleep(30);
+ Thread.Sleep(timeoutBetweenThreadStart);
}
Thread.Sleep(timeout);
Modified: trunk/nhibernate/src/NHibernate.Test/TypesTest/TypeFactoryFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/TypesTest/TypeFactoryFixture.cs 2008-08-16 05:03:56 UTC (rev 3708)
+++ trunk/nhibernate/src/NHibernate.Test/TypesTest/TypeFactoryFixture.cs 2008-08-16 06:10:38 UTC (rev 3709)
@@ -1,4 +1,7 @@
using System;
+using System.Threading;
+using log4net;
+using log4net.Repository.Hierarchy;
using NHibernate.Type;
using NUnit.Framework;
@@ -10,6 +13,13 @@
[TestFixture]
public class TypeFactoryFixture
{
+ public TypeFactoryFixture()
+ {
+ log4net.Config.XmlConfigurator.Configure();
+ }
+
+ private static readonly ILog log = LogManager.GetLogger(typeof(TypeFactoryFixture));
+
/// <summary>
/// Test that calling GetGuidType multiple times returns the
/// exact same GuidType object by reference.
@@ -62,5 +72,44 @@
set { _genericLong = value; }
}
}
+
+ private readonly Random rnd = new Random();
+ private int totalCall;
+
+ [Test, Explicit]
+ public void MultiThreadAccess()
+ {
+ ((Logger) log.Logger).Level = log4net.Core.Level.Debug;
+ MultiThreadRunner<object>.ExecuteAction[] actions = new MultiThreadRunner<object>.ExecuteAction[]
+ {
+ delegate(object o)
+ {
+ TypeFactory.GetStringType(rnd.Next(1, 50));
+ totalCall++;
+ },
+ delegate(object o)
+ {
+ TypeFactory.GetBinaryType(rnd.Next(1, 50));
+ totalCall++;
+ },
+ delegate(object o)
+ {
+ TypeFactory.GetSerializableType(rnd.Next(1, 50));
+ totalCall++;
+ },
+ delegate(object o)
+ {
+ TypeFactory.GetTypeType(rnd.Next(1, 20));
+ totalCall++;
+ },
+ };
+ MultiThreadRunner<object> mtr = new MultiThreadRunner<object>(100, actions);
+ mtr.EndTimeout = 2000;
+ mtr.TimeoutBetweenThreadStart = 2;
+ mtr.Run(null);
+ log.DebugFormat("{0} calls", totalCall);
+ TypeFactory.GetTypeType(rnd.Next());
+ }
+
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-08-18 19:12:17
|
Revision: 3718
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3718&view=rev
Author: fabiomaulo
Date: 2008-08-18 19:12:18 +0000 (Mon, 18 Aug 2008)
Log Message:
-----------
Only specific test about cascade refresh
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/Cascade/
trunk/nhibernate/src/NHibernate.Test/Cascade/Job.cs
trunk/nhibernate/src/NHibernate.Test/Cascade/Job.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Cascade/JobBatch.cs
trunk/nhibernate/src/NHibernate.Test/Cascade/JobBatch.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Cascade/RefreshFixture.cs
Added: trunk/nhibernate/src/NHibernate.Test/Cascade/Job.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Cascade/Job.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Cascade/Job.cs 2008-08-18 19:12:18 UTC (rev 3718)
@@ -0,0 +1,39 @@
+namespace NHibernate.Test.Cascade
+{
+ public class Job
+ {
+ private long id;
+ private JobBatch batch;
+ private string processingInstructions;
+ private int status;
+ public Job() {}
+ public Job(JobBatch batch)
+ {
+ this.batch = batch;
+ }
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual JobBatch Batch
+ {
+ get { return batch; }
+ set { batch = value; }
+ }
+
+ public virtual string ProcessingInstructions
+ {
+ get { return processingInstructions; }
+ set { processingInstructions = value; }
+ }
+
+ public virtual int Status
+ {
+ get { return status; }
+ set { status = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Cascade/Job.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Cascade/Job.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Cascade/Job.hbm.xml 2008-08-18 19:12:18 UTC (rev 3718)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.Cascade">
+
+ <class name="Job" table="T_JOB">
+ <id name="Id" column="JOB_ID">
+ <generator class="native"/>
+ </id>
+
+ <many-to-one name="Batch" class="JobBatch" cascade="none" column="BATCH_ID"/>
+
+ <property name="Status" type="int" column="JOB_STATUS" not-null="true"/>
+ <property name="ProcessingInstructions" type="string" column="PI" not-null="true"/>
+
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Cascade/JobBatch.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Cascade/JobBatch.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Cascade/JobBatch.cs 2008-08-18 19:12:18 UTC (rev 3718)
@@ -0,0 +1,42 @@
+using System;
+using Iesi.Collections.Generic;
+
+namespace NHibernate.Test.Cascade
+{
+ public class JobBatch
+ {
+ private long id;
+ private DateTime batchDate;
+ private ISet<Job> jobs = new HashedSet<Job>();
+ public JobBatch() {}
+ public JobBatch(DateTime batchDate)
+ {
+ this.batchDate = batchDate;
+ }
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual DateTime BatchDate
+ {
+ get { return batchDate; }
+ set { batchDate = value; }
+ }
+
+ public virtual ISet<Job> Jobs
+ {
+ get { return jobs; }
+ set { jobs = value; }
+ }
+
+ public virtual Job CreateJob()
+ {
+ Job job = new Job(this);
+ jobs.Add(job);
+ return job;
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Cascade/JobBatch.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Cascade/JobBatch.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Cascade/JobBatch.hbm.xml 2008-08-18 19:12:18 UTC (rev 3718)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.Cascade">
+
+ <class name="JobBatch" table="T_JOB_BATCH">
+ <id name="Id" column="BATCH_ID">
+ <generator class="native"/>
+ </id>
+
+ <property name="BatchDate" type="timestamp" column="BATCH_DATE" not-null="true"/>
+
+ <set name="Jobs" inverse="true" fetch="select" lazy="true" cascade="all, refresh" generic="true">
+ <key column="BATCH_ID"/>
+ <one-to-many class="Job"/>
+ </set>
+
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Cascade/RefreshFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Cascade/RefreshFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Cascade/RefreshFixture.cs 2008-08-18 19:12:18 UTC (rev 3718)
@@ -0,0 +1,61 @@
+using System;
+using System.Collections;
+using System.Data;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.Cascade
+{
+ [TestFixture]
+ public class RefreshFixture : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get { return new string[] { "Cascade.Job.hbm.xml", "Cascade.JobBatch.hbm.xml" }; }
+ }
+
+ [Test]
+ public void RefreshCascade()
+ {
+ ISession session = OpenSession();
+ ITransaction txn = session.BeginTransaction();
+
+ JobBatch batch = new JobBatch(DateTime.Now);
+ batch.CreateJob().ProcessingInstructions = "Just do it!";
+ batch.CreateJob().ProcessingInstructions = "I know you can do it!";
+
+ // write the stuff to the database; at this stage all job.status values are zero
+ session.Persist(batch);
+ session.Flush();
+
+ // behind the session's back, let's modify the statuses
+ UpdateStatuses(session);
+
+ // Now lets refresh the persistent batch, and see if the refresh cascaded to the jobs collection elements
+ session.Refresh(batch);
+
+ foreach (Job job in batch.Jobs)
+ {
+ Assert.That(job.Status, Is.EqualTo(1), "Jobs not refreshed!");
+ }
+
+ txn.Rollback();
+ session.Close();
+ }
+
+ private void UpdateStatuses(ISession session)
+ {
+ IDbConnection conn = session.Connection;
+ IDbCommand cmd = conn.CreateCommand();
+ cmd.CommandText = "UPDATE T_JOB SET JOB_STATUS = 1";
+ cmd.CommandType = CommandType.Text;
+ session.Transaction.Enlist(cmd);
+ cmd.ExecuteNonQuery();
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-08-18 17:27:06 UTC (rev 3717)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-08-18 19:12:18 UTC (rev 3718)
@@ -79,6 +79,9 @@
<Compile Include="CacheTest\CacheFixture.cs" />
<Compile Include="CacheTest\QueryCacheFixture.cs" />
<Compile Include="CacheTest\TimestamperFixture.cs" />
+ <Compile Include="Cascade\Job.cs" />
+ <Compile Include="Cascade\JobBatch.cs" />
+ <Compile Include="Cascade\RefreshFixture.cs" />
<Compile Include="CfgTest\ConfigurationFixture.cs" />
<Compile Include="CfgTest\ConfigurationSchemaFixture.cs" />
<Compile Include="CfgTest\DefaultNsAssmFixture.cs" />
@@ -1414,6 +1417,8 @@
<EmbeddedResource Include="CompositeId\LineItem.hbm.xml" />
<EmbeddedResource Include="CompositeId\Order.hbm.xml" />
<EmbeddedResource Include="CompositeId\Product.hbm.xml" />
+ <EmbeddedResource Include="Cascade\Job.hbm.xml" />
+ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
<EmbeddedResource Include="Extralazy\UserGroup.hbm.xml" />
<EmbeddedResource Include="Naturalid\Immutable\User.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-08-18 19:58:39
|
Revision: 3719
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3719&view=rev
Author: fabiomaulo
Date: 2008-08-18 19:58:38 +0000 (Mon, 18 Aug 2008)
Log Message:
-----------
Delete Transients Test
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/Deletetransient/
trunk/nhibernate/src/NHibernate.Test/Deletetransient/Address.cs
trunk/nhibernate/src/NHibernate.Test/Deletetransient/DeleteTransientEntityTest.cs
trunk/nhibernate/src/NHibernate.Test/Deletetransient/Person.cs
trunk/nhibernate/src/NHibernate.Test/Deletetransient/Person.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/Deletetransient/Address.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Deletetransient/Address.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Deletetransient/Address.cs 2008-08-18 19:58:38 UTC (rev 3719)
@@ -0,0 +1,25 @@
+namespace NHibernate.Test.Deletetransient
+{
+ public class Address
+ {
+ private long id;
+ private string info;
+ public Address() {}
+ public Address(string info)
+ {
+ this.info = info;
+ }
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual string Info
+ {
+ get { return info; }
+ set { info = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Deletetransient/DeleteTransientEntityTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Deletetransient/DeleteTransientEntityTest.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Deletetransient/DeleteTransientEntityTest.cs 2008-08-18 19:58:38 UTC (rev 3719)
@@ -0,0 +1,111 @@
+using System.Collections;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.Deletetransient
+{
+ [TestFixture]
+ public class DeleteTransientEntityTest : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get { return new string[] {"Deletetransient.Person.hbm.xml"}; }
+ }
+
+ [Test]
+ public void TransientEntityDeletionNoCascades()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ s.Delete(new Address());
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void TransientEntityDeletionCascadingToTransientAssociation()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ Person p = new Person();
+ p.Addresses.Add(new Address());
+ s.Delete(p);
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void TransientEntityDeleteCascadingToCircularity()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ Person p1 = new Person();
+ Person p2 = new Person();
+ p1.Friends.Add(p2);
+ p2.Friends.Add(p1);
+ s.Delete(p1);
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void TransientEntityDeletionCascadingToDetachedAssociation()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ Address address = new Address();
+ address.Info = "123 Main St.";
+ s.Save(address);
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ Person p = new Person();
+ p.Addresses.Add(address);
+ s.Delete(p);
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ long count = s.CreateQuery("select count(*) from Address").List<long>()[0];
+ Assert.That(count, Is.EqualTo(0L), "delete not cascaded properly across transient entity");
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void TransientEntityDeletionCascadingToPersistentAssociation()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ Address address = new Address();
+ address.Info = "123 Main St.";
+ s.Save(address);
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ address = s.Get<Address>(address.Id);
+ Person p = new Person();
+ p.Addresses.Add(address);
+ s.Delete(p);
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ long count = s.CreateQuery("select count(*) from Address").List<long>()[0];
+ Assert.That(count, Is.EqualTo(0L), "delete not cascaded properly across transient entity");
+ t.Commit();
+ s.Close();
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Deletetransient/Person.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Deletetransient/Person.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Deletetransient/Person.cs 2008-08-18 19:58:38 UTC (rev 3719)
@@ -0,0 +1,42 @@
+using System.Collections.Generic;
+using Iesi.Collections.Generic;
+
+namespace NHibernate.Test.Deletetransient
+{
+ public class Person
+ {
+ private long id;
+ private string name;
+ private ISet<Address> addresses = new HashedSet<Address>();
+ private IList<Person> friends = new List<Person>();
+ public Person() {}
+ public Person(string name)
+ {
+ this.name = name;
+ }
+
+ public virtual long Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public virtual ISet<Address> Addresses
+ {
+ get { return addresses; }
+ set { addresses = value; }
+ }
+
+ public virtual IList<Person> Friends
+ {
+ get { return friends; }
+ set { friends = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Deletetransient/Person.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Deletetransient/Person.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Deletetransient/Person.hbm.xml 2008-08-18 19:58:38 UTC (rev 3719)
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.Deletetransient">
+
+ <class name="Person" table="T_PERSON">
+ <id name="Id" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="Name" type="string"/>
+ <set name="Addresses" lazy="true" inverse="false" cascade="all">
+ <key column="PERSON_ID"/>
+ <one-to-many class="Address"/>
+ </set>
+ <bag name="Friends" lazy="true" inverse="false" cascade="all" table="T_FRIENDS">
+ <key column="FRIEND_ID_1"/>
+ <many-to-many class="Person" column="FRIEND_ID_2"/>
+ </bag>
+ </class>
+
+ <class name="Address" table="T_ADDRESS">
+ <id name="Id" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="Info" type="string"/>
+ </class>
+
+</hibernate-mapping>
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-08-18 19:12:18 UTC (rev 3718)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-08-18 19:58:38 UTC (rev 3719)
@@ -127,6 +127,9 @@
<Compile Include="Criteria\Student.cs" />
<Compile Include="Criteria\StudentDTO.cs" />
<Compile Include="DebugConnectionProvider.cs" />
+ <Compile Include="Deletetransient\Address.cs" />
+ <Compile Include="Deletetransient\DeleteTransientEntityTest.cs" />
+ <Compile Include="Deletetransient\Person.cs" />
<Compile Include="DialectTest\DB2DialectFixture.cs" />
<Compile Include="DialectTest\DialectFixture.cs" />
<Compile Include="DialectTest\FirebirdDialectFixture.cs" />
@@ -1419,6 +1422,7 @@
<EmbeddedResource Include="CompositeId\Product.hbm.xml" />
<EmbeddedResource Include="Cascade\Job.hbm.xml" />
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
+ <EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
<EmbeddedResource Include="Extralazy\UserGroup.hbm.xml" />
<EmbeddedResource Include="Naturalid\Immutable\User.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <te...@us...> - 2008-08-23 12:07:29
|
Revision: 3727
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3727&view=rev
Author: tehlike
Date: 2008-08-23 12:07:39 +0000 (Sat, 23 Aug 2008)
Log Message:
-----------
Removed dependency for NMock and Oracle.DataAccess.
Fixed the broken test by modifying the mapping location and mapping of some properties.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-3.5.csproj
trunk/nhibernate/src/NHibernate.Test/TypeParameters/TypeParameterTest.cs
trunk/nhibernate/src/NHibernate.Test/TypeParameters/Widget.hbm.xml
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-3.5.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-3.5.csproj 2008-08-22 05:31:44 UTC (rev 3726)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-3.5.csproj 2008-08-23 12:07:39 UTC (rev 3727)
@@ -2,7 +2,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30428</ProductVersion>
+ <ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{7AEE5B37-C552-4E59-9B6F-88755BCB5070}</ProjectGuid>
<OutputType>Library</OutputType>
@@ -57,10 +57,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\net\2.0\log4net.dll</HintPath>
</Reference>
- <Reference Include="nmock, Version=1.0.1536.20687, Culture=neutral">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\lib\net\nmock.dll</HintPath>
- </Reference>
<Reference Include="nunit.core, Version=2.2.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\net\2.0\nunit.core.dll</HintPath>
@@ -69,9 +65,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\net\2.0\nunit.framework.dll</HintPath>
</Reference>
- <Reference Include="Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=89b483f429c47342">
- <Private>True</Private>
- </Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Data" />
Modified: trunk/nhibernate/src/NHibernate.Test/TypeParameters/TypeParameterTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/TypeParameters/TypeParameterTest.cs 2008-08-22 05:31:44 UTC (rev 3726)
+++ trunk/nhibernate/src/NHibernate.Test/TypeParameters/TypeParameterTest.cs 2008-08-23 12:07:39 UTC (rev 3727)
@@ -22,7 +22,6 @@
{
return new String[]
{
- "TypeParameters.Typedef.hbm.xml",
"TypeParameters.Widget.hbm.xml"
};
}
Modified: trunk/nhibernate/src/NHibernate.Test/TypeParameters/Widget.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/TypeParameters/Widget.hbm.xml 2008-08-22 05:31:44 UTC (rev 3726)
+++ trunk/nhibernate/src/NHibernate.Test/TypeParameters/Widget.hbm.xml 2008-08-23 12:07:39 UTC (rev 3727)
@@ -8,6 +8,11 @@
<param name="default">2</param>
</typedef>
+
+ <typedef name="nullToMinusOne" class="DefaultValueIntegerType">
+ <param name="default">-1</param>
+ </typedef>
+
<class name="Widget" table="STRANGE_TYPED_OBJECT">
<id name="Id" column="ID">
<generator class="increment"/>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-09-18 16:38:42
|
Revision: 3768
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3768&view=rev
Author: fabiomaulo
Date: 2008-09-18 23:38:53 +0000 (Thu, 18 Sep 2008)
Log Message:
-----------
Test for NH-1488
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Domain.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Mappings.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Domain.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Domain.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Domain.cs 2008-09-18 23:38:53 UTC (rev 3768)
@@ -0,0 +1,96 @@
+namespace NHibernate.Test.NHSpecificTest.NH1488
+{
+ public abstract class Category
+ {
+ private int id;
+ private string name;
+ protected Category() {}
+ protected Category(string name)
+ {
+ this.name = name;
+ }
+
+ public virtual int Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+ }
+
+ public class CustomerCategory : Category
+ {
+ public CustomerCategory() {}
+ public CustomerCategory(string name) : base(name) {}
+ }
+ public class OtherCategory : Category
+ {
+ public OtherCategory() {}
+ public OtherCategory(string name) : base(name) {}
+ }
+
+ public class CustomerNoSmart
+ {
+ private Category category;
+ private int id;
+ private string name;
+ public CustomerNoSmart() {}
+ public CustomerNoSmart(string name)
+ {
+ this.name = name;
+ }
+
+ public virtual int Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public virtual Category Category
+ {
+ get { return category; }
+ set { category = value; }
+ }
+ }
+
+ public class Customer
+ {
+ private CustomerCategory category;
+ private int id;
+ private string name;
+ public Customer() { }
+ public Customer(string name)
+ {
+ this.name = name;
+ }
+
+ public virtual int Id
+ {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public virtual string Name
+ {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public virtual CustomerCategory Category
+ {
+ get { return category; }
+ set { category = value; }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Fixture.cs 2008-09-18 23:38:53 UTC (rev 3768)
@@ -0,0 +1,69 @@
+using System.Collections;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.NHSpecificTest.NH1488
+{
+ // http://jira.nhibernate.org/browse/NH-1488
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ [Test]
+ public void WorkBut()
+ {
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Save(new CustomerNoSmart("Somebody"));
+ CustomerNoSmart c = new CustomerNoSmart("Somebody else");
+ c.Category = new CustomerCategory("User");
+ s.Save(c.Category);
+ s.Save(c);
+ tx.Commit();
+ }
+
+ using (ISession s = OpenSession())
+ {
+ IList result = s.CreateQuery("select c.Name, cat.Name from CustomerNoSmart c left outer join c.Category cat").List();
+ Assert.That(result.Count, Is.EqualTo(2));
+ }
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Delete("from CustomerNoSmart");
+ s.Delete("from Category");
+ tx.Commit();
+ }
+ }
+
+ [Test, Ignore("Not supported.")]
+ public void PerhapsBug()
+ {
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Save(new Customer("Somebody"));
+ Customer c = new Customer("Somebody else");
+ c.Category = new CustomerCategory("User");
+ s.Save(c.Category);
+ s.Save(c);
+ tx.Commit();
+ }
+
+ using (ISession s = OpenSession())
+ {
+ IList result = s.CreateQuery("select c.Name, cat.Name from Customer c left outer join c.Category cat").List();
+ Assert.That(result.Count, Is.EqualTo(2), "should return Customers, on left outer join, even empty Category");
+ }
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Delete("from Customer");
+ s.Delete("from Category");
+ tx.Commit();
+ }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1488/Mappings.hbm.xml 2008-09-18 23:38:53 UTC (rev 3768)
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1488">
+
+ <class name="Category" table="Category" abstract="true">
+ <id name="Id" column="Id">
+ <generator class="native" />
+ </id>
+ <discriminator column="Type" length="1" />
+ <property name="Name" not-null="true" />
+ <subclass name="CustomerCategory" discriminator-value="C"/>
+ </class>
+
+ <class name="Customer" table="Customer">
+ <id name="Id" column="Id">
+ <generator class="native" />
+ </id>
+ <property name="Name" not-null="true" />
+ <many-to-one name="Category" lazy="false" column="Category_Id"/>
+ </class>
+
+ <class name="CustomerNoSmart" table="CustomerNoSmart">
+ <id name="Id" column="Id">
+ <generator class="native" />
+ </id>
+ <property name="Name" not-null="true" />
+ <many-to-one name="Category" lazy="false" column="Category_Id"/>
+ </class>
+</hibernate-mapping>
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-09-18 23:26:51 UTC (rev 3767)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test-2.0.csproj 2008-09-18 23:38:53 UTC (rev 3768)
@@ -473,6 +473,8 @@
<Compile Include="NHSpecificTest\NH1483\BaseClass.cs" />
<Compile Include="NHSpecificTest\NH1483\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1483\SubClass.cs" />
+ <Compile Include="NHSpecificTest\NH1488\Domain.cs" />
+ <Compile Include="NHSpecificTest\NH1488\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Foo.cs" />
<Compile Include="NHSpecificTest\NH1018\Employee.cs" />
@@ -1460,6 +1462,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1488\Mappings.hbm.xml" />
<EmbeddedResource Include="Extendshbm\allinone.hbm.xml" />
<EmbeddedResource Include="Extendshbm\allseparateinone.hbm.xml" />
<EmbeddedResource Include="Extendshbm\Customer.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-10-09 22:45:22
|
Revision: 3822
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3822&view=rev
Author: fabiomaulo
Date: 2008-10-09 22:45:14 +0000 (Thu, 09 Oct 2008)
Log Message:
-----------
initial test to support Xml entityMode
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Accessors/
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Accessors/XmlAccessorFixture.cs
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Accessors/XmlAccessorFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Accessors/XmlAccessorFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Accessors/XmlAccessorFixture.cs 2008-10-09 22:45:14 UTC (rev 3822)
@@ -0,0 +1,119 @@
+using System.Xml;
+using NHibernate.Mapping;
+using NHibernate.Properties;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.EntityModeTest.Xml.Accessors
+{
+ [TestFixture, Ignore("Not supported yet.")]
+ public class XmlAccessorFixture
+ {
+ public static XmlElement dom = GenerateTestElement();
+
+ private static XmlElement GenerateTestElement()
+ {
+ const string xml =
+@"<company id='123'>
+ description...
+ <name>NHForge</name>
+ <account num='456'/>
+</company>";
+
+ var baseXml = new XmlDocument();
+ baseXml.LoadXml(xml);
+ return baseXml.DocumentElement;
+ }
+
+ private static XmlElement GenerateRootTestElement()
+ {
+ return (new XmlDocument()).CreateElement("company");
+ }
+
+ private static Property GenerateAccountIdProperty()
+ {
+ var value = new SimpleValue {TypeName = "long"};
+
+ return new Property {Name = "number", NodeName = "account/@num", Value = value};
+ }
+
+ private static Property GenerateTextProperty()
+ {
+ var value = new SimpleValue {TypeName = "string"};
+
+ return new Property {Name = "text", NodeName = ".", Value = value};
+ }
+
+ private static Property GenerateNameProperty()
+ {
+ var value = new SimpleValue {TypeName = "string"};
+
+ return new Property {Name = "name", NodeName = "name", Value = value};
+ }
+
+ private static Property GenerateIdProperty()
+ {
+ var value = new SimpleValue {TypeName = "long"};
+
+ return new Property {Name = "id", NodeName = "@id", Value = value};
+ }
+
+ [Test]
+ public void CompanyElementGeneration()
+ {
+ ISetter idSetter = PropertyAccessorFactory.GetPropertyAccessor(GenerateIdProperty(), EntityMode.Xml).GetSetter(null,
+ null);
+ ISetter nameSetter =
+ PropertyAccessorFactory.GetPropertyAccessor(GenerateNameProperty(), EntityMode.Xml).GetSetter(null, null);
+ ISetter textSetter =
+ PropertyAccessorFactory.GetPropertyAccessor(GenerateTextProperty(), EntityMode.Xml).GetSetter(null, null);
+ ISetter accountIdSetter =
+ PropertyAccessorFactory.GetPropertyAccessor(GenerateAccountIdProperty(), EntityMode.Xml).GetSetter(null, null);
+
+ XmlNode root = GenerateRootTestElement();
+
+ idSetter.Set(root, 123L);
+ textSetter.Set(root, "description...");
+ nameSetter.Set(root, "NHForge");
+ accountIdSetter.Set(root, 456L);
+
+ //Assert.That(new NodeComparator().Compare(dom, root) == 0);
+ }
+
+ [Test]
+ public void LongAttributeExtraction()
+ {
+ Property property = GenerateIdProperty();
+ IGetter getter = PropertyAccessorFactory.GetPropertyAccessor(property, EntityMode.Xml).GetGetter(null, null);
+ var id = (long) getter.Get(dom);
+ Assert.That(id, Is.EqualTo(123L));
+ }
+
+ [Test]
+ public void LongElementAttributeExtraction()
+ {
+ Property property = GenerateAccountIdProperty();
+ IGetter getter = PropertyAccessorFactory.GetPropertyAccessor(property, EntityMode.Xml).GetGetter(null, null);
+ var id = (long) getter.Get(dom);
+ Assert.That(id, Is.EqualTo(456L));
+ }
+
+ [Test]
+ public void StringElementExtraction()
+ {
+ Property property = GenerateNameProperty();
+ IGetter getter = PropertyAccessorFactory.GetPropertyAccessor(property, EntityMode.Xml).GetGetter(null, null);
+ var name = (string) getter.Get(dom);
+ Assert.That(name, Is.EqualTo("NHForge"));
+ }
+
+ [Test]
+ public void StringTextExtraction()
+ {
+ Property property = GenerateTextProperty();
+ IGetter getter = PropertyAccessorFactory.GetPropertyAccessor(property, EntityMode.Xml).GetGetter(null, null);
+ var name = (string) getter.Get(dom);
+ Assert.That(name, Is.EqualTo("description..."));
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-09 21:42:15 UTC (rev 3821)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-09 22:45:14 UTC (rev 3822)
@@ -160,6 +160,7 @@
<Compile Include="DynamicEntity\Tuplizer\TuplizerDynamicEntity.cs" />
<Compile Include="EngineTest\TypedValueFixture.cs" />
<Compile Include="EntityModeTest\Map\Basic\DynamicClassFixture.cs" />
+ <Compile Include="EntityModeTest\Xml\Accessors\XmlAccessorFixture.cs" />
<Compile Include="Events\Collections\AbstractCollectionEventFixture.cs" />
<Compile Include="Events\Collections\AbstractParentWithCollection.cs" />
<Compile Include="Events\Collections\Association\AbstractAssociationCollectionEventFixture.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-10-10 04:33:35
|
Revision: 3827
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3827&view=rev
Author: fabiomaulo
Date: 2008-10-10 04:33:22 +0000 (Fri, 10 Oct 2008)
Log Message:
-----------
another initial test to support Xml entityMode
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/AB.hbm.xml
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Account.hbm.xml
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Employer.hbm.xml
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/XmlFixture.cs
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/AB.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/AB.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/AB.hbm.xml 2008-10-10 04:33:22 UTC (rev 3827)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
+
+ <class entity-name="A" table="AX" node="a">
+ <id name="aId" type="int" column="aId" node="@id"/>
+ <property name="x" type="string"/>
+ <set name="bs" node="." embed-xml="true" cascade="all" inverse="true">
+ <key column="aId"/>
+ <one-to-many class="B"/>
+ </set>
+ </class>
+
+
+ <class entity-name="B" table="BX" node="b">
+ <composite-id>
+ <key-property name="bId" column="bId" type="int" node="@bId"/>
+ <key-property name="aId" column="aId" type="int" node="@aId"/>
+ </composite-id>
+ <property name="y" type="string" node="."/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Account.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Account.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Account.hbm.xml 2008-10-10 04:33:22 UTC (rev 3827)
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
+
+ <class entity-name="Customer" node="customer">
+ <id name="customerId" type="string" node="@id"/>
+ <component name="name">
+ <property name="first" type="string"/>
+ <property name="last" type="string"/>
+ </component>
+ <property name="address" type="string" node="address"/>
+ <map name="stuff">
+ <key column="customerId"/>
+ <map-key type="string" column="bar" node="@bar"/>
+ <element type="string" node="foo" column="foo"/>
+ </map>
+ <bag name="morestuff" node=".">
+ <key column="customerId"/>
+ <element type="integer" node="amount" column="amount"/>
+ </bag>
+ <list name="accounts" cascade="all">
+ <key column="customerId2"/>
+ <list-index column="acctno" base="1"/>
+ <one-to-many entity-name="Account" node="account"/>
+ </list>
+ <many-to-one name="location" node="location/@id" entity-name="Location" embed-xml="false"/>
+ <property name="description" node="." type="string"/>
+ <set name="unembedded" embed-xml="false">
+ <key column="x"/>
+ <element type="string" column="y" not-null="true"/>
+ </set>
+ </class>
+
+ <class entity-name="Account" node="account">
+ <id name="accountId" type="string" node="@id"/>
+ <many-to-one name="customer" column="customerId" entity-name="Customer" cascade="all" embed-xml="true" />
+ <!--not-null="true"-->
+ <property name="balance" type="big_decimal" node="balance" precision="10" scale="0" />
+ </class>
+
+ <class entity-name="Location" node="location">
+ <id name="id" node="@id" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="address" type="string"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Employer.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Employer.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/Employer.hbm.xml 2008-10-10 04:33:22 UTC (rev 3827)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
+
+ <class entity-name="Employer" node="employer">
+ <id name="id" node="@id" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="name" node="@name" type="string"/>
+ <set name="employees" node="." cascade="all,delete-orphan" fetch="join" lazy="false">
+ <key not-null="true" column="employerId"/>
+ <one-to-many entity-name="Employee" />
+ </set>
+ </class>
+
+ <class entity-name="Employee" node="employee">
+ <id name="id" node="@id" type="long">
+ <generator class="increment"/>
+ </id>
+ <discriminator column="role" type="string" length="10"/>
+ <property name="name" node="@name" type="string"/>
+ <subclass entity-name="Techie" node="techie" />
+ <subclass entity-name="Salesdude" node="sales-dude"/>
+ </class>
+
+ <class entity-name="Department" node="department">
+ <id name="id" node="@id" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="name" node="@name" type="string"/>
+ <many-to-one name="manager" entity-name="Employee" cascade="all" fetch="join" lazy="false" embed-xml="true" node="manager" />
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/XmlFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/XmlFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Basic/XmlFixture.cs 2008-10-10 04:33:22 UTC (rev 3827)
@@ -0,0 +1,69 @@
+using System.Collections;
+using System.Xml;
+using NHibernate.Cfg;
+using NUnit.Framework;
+
+namespace NHibernate.Test.EntityModeTest.Xml.Basic
+{
+ [TestFixture, Ignore("Not supported yet.")]
+ public class XmlFixture : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ #region Overrides of TestCase
+
+ protected override IList Mappings
+ {
+ get
+ {
+ return new[]
+ {
+ "EntityModeTest.Xml.Basic.Account.hbm.xml", "EntityModeTest.Xml.Basic.AB.hbm.xml",
+ "EntityModeTest.Xml.Basic.Employer.hbm.xml"
+ };
+ }
+ }
+
+ #endregion
+
+ protected override void Configure(Configuration configuration)
+ {
+ cfg.SetProperty(Environment.DefaultEntityMode, EntityModeHelper.ToString(EntityMode.Xml));
+ }
+
+ [Test]
+ public void CompositeId()
+ {
+ const string xml =
+@"<a id='1'>
+ <x>foo bar</x>
+ <b bId='1' aId='1>foo foo</b>
+ <b bId='2' aId='1>bar bar</b>
+</a>";
+
+ XmlElement a=null;
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+ s.Persist("A", a);
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ t = s.BeginTransaction();
+ //a = (XmlElement)s.CreateCriteria("A").UniqueResult();
+ Assert.AreEqual(a.GetElementsByTagName("b").Count, 2);
+ Print(a);
+ //s.Delete("A", a);
+ t.Commit();
+ s.Close();
+ }
+
+ public static void Print(XmlElement elt)
+ {
+ //XMLHelper.dump( elt );
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-10 00:13:56 UTC (rev 3826)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-10 04:33:22 UTC (rev 3827)
@@ -161,6 +161,7 @@
<Compile Include="EngineTest\TypedValueFixture.cs" />
<Compile Include="EntityModeTest\Map\Basic\DynamicClassFixture.cs" />
<Compile Include="EntityModeTest\Xml\Accessors\XmlAccessorFixture.cs" />
+ <Compile Include="EntityModeTest\Xml\Basic\XmlFixture.cs" />
<Compile Include="Events\Collections\AbstractCollectionEventFixture.cs" />
<Compile Include="Events\Collections\AbstractParentWithCollection.cs" />
<Compile Include="Events\Collections\Association\AbstractAssociationCollectionEventFixture.cs" />
@@ -1488,6 +1489,9 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="EntityModeTest\Xml\Basic\AB.hbm.xml" />
+ <EmbeddedResource Include="EntityModeTest\Xml\Basic\Account.hbm.xml" />
+ <EmbeddedResource Include="EntityModeTest\Xml\Basic\Employer.hbm.xml" />
<EmbeddedResource Include="SqlTest\MSSQLIdentityInsertWithStoredProcs.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1508\Mappings.hbm.xml" />
<EmbeddedResource Include="GenericTest\OrderedSetGeneric\OrderedSetFixture.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-10-10 13:56:58
|
Revision: 3831
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3831&view=rev
Author: fabiomaulo
Date: 2008-10-10 13:56:51 +0000 (Fri, 10 Oct 2008)
Log Message:
-----------
another test to support Xml entityMode
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/Car.cs
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/Car.hbm.xml
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/CarPart.cs
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/CarType.cs
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/XmlManyToOneFixture.cs
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/Car.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/Car.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/Car.cs 2008-10-10 13:56:51 UTC (rev 3831)
@@ -0,0 +1,21 @@
+using System;
+using Iesi.Collections.Generic;
+
+namespace NHibernate.Test.EntityModeTest.Xml.Many2One
+{
+ [Serializable]
+ public class Car
+ {
+ private ISet<CarPart> carParts = new HashedSet<CarPart>();
+
+ public virtual long Id { get; set; }
+ public virtual string Model { get; set; }
+ public virtual CarType CarType { get; set; }
+
+ public ISet<CarPart> CarParts
+ {
+ get { return carParts; }
+ set { carParts = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/Car.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/Car.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/Car.hbm.xml 2008-10-10 13:56:51 UTC (rev 3831)
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.EntityModeTest.Xml.Many2One">
+
+ <class name="Car" lazy="false" node="car">
+ <id name="Id" node="@id" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="Model" type="string" node="model"/>
+ <many-to-one name="CarType" node="carType" class="CarType"/>
+ <set name="CarParts" node="." cascade="all" generic="true">
+ <key column="car" not-null="true"/>
+ <one-to-many class="CarPart" node="carPart" embed-xml="false"/>
+ </set>
+ </class>
+
+ <class name="CarType" lazy="true" node="carType">
+ <id name="Id" node="@id" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="TypeName" type="string" node="typeName"/>
+ </class>
+
+ <class name="CarPart" node="carPart">
+ <id name="Id" node="@id" type="long">
+ <generator class="increment"/>
+ </id>
+ <property name="PartName" type="string" node="partName"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/CarPart.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/CarPart.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/CarPart.cs 2008-10-10 13:56:51 UTC (rev 3831)
@@ -0,0 +1,11 @@
+using System;
+
+namespace NHibernate.Test.EntityModeTest.Xml.Many2One
+{
+ [Serializable]
+ public class CarPart
+ {
+ public virtual long Id { get; set; }
+ public virtual string PartName { get; set; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/CarType.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/CarType.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/CarType.cs 2008-10-10 13:56:51 UTC (rev 3831)
@@ -0,0 +1,11 @@
+using System;
+
+namespace NHibernate.Test.EntityModeTest.Xml.Many2One
+{
+ [Serializable]
+ public class CarType
+ {
+ public virtual long Id { get; set; }
+ public virtual string TypeName { get; set; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/XmlManyToOneFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/XmlManyToOneFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Xml/Many2One/XmlManyToOneFixture.cs 2008-10-10 13:56:51 UTC (rev 3831)
@@ -0,0 +1,106 @@
+using System.Collections;
+using System.Xml;
+using NUnit.Framework;
+
+namespace NHibernate.Test.EntityModeTest.Xml.Many2One
+{
+ [TestFixture]
+ public class XmlManyToOneFixture : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get { return new[] {"EntityModeTest.Xml.Many2One.Car.hbm.xml"}; }
+ }
+
+ [Test]
+ public void XmlManyToOne()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+
+ var carType = new CarType {TypeName = "Type 1"};
+ s.Save(carType);
+
+ var car1 = new Car {CarType = carType, Model = "Model 1"};
+ s.Save(car1);
+
+ var car2 = new Car {CarType = carType, Model = "Model 2"};
+ s.Save(car2);
+
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ ISession xmlSession = s.GetSession(EntityMode.Xml);
+ t = s.BeginTransaction();
+
+ IList list = xmlSession.CreateQuery("from Car c join fetch c.carType order by c.model asc").List();
+
+ var expectedResults = new[]
+ {
+ "<car id=\"" + car1.Id + "\"><model>Model 1</model><carType id=\"" + carType.Id
+ + "\"><typeName>Type 1</typeName></carType></car>",
+ "<car id=\"" + car2.Id + "\"><model>Model 2</model><carType id=\"" + carType.Id
+ + "\"><typeName>Type 1</typeName></carType></car>"
+ };
+
+ for (int i = 0; i < list.Count; i++)
+ {
+ var element = (XmlElement) list[i];
+
+ //print(element);
+ Assert.That(element.InnerXml.Equals(expectedResults[i]));
+ }
+
+ s.Delete("from CarType");
+ s.Delete("from Car");
+
+ t.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void XmlOneToMany()
+ {
+ ISession s = OpenSession();
+ ITransaction t = s.BeginTransaction();
+
+ var carType = new CarType {TypeName = "Type 1"};
+ s.Save(carType);
+
+ var car = new Car {CarType = carType, Model = "Model 1"};
+ s.Save(car);
+
+ var carPart1 = new CarPart {PartName = "chassis"};
+ car.CarParts.Add(carPart1);
+
+ t.Commit();
+ s.Close();
+
+ s = OpenSession();
+ ISession xmlSession = s.GetSession(EntityMode.Xml);
+ t = s.BeginTransaction();
+
+ var element = (XmlElement) xmlSession.CreateQuery("from Car c join fetch c.carParts").UniqueResult();
+
+ string expectedResult = "<car id=\"" + car.Id + "\"><carPart>" + carPart1.Id
+ + "</carPart><model>Model 1</model><carType id=\"" + carType.Id
+ + "\"><typeName>Type 1</typeName></carType></car>";
+
+ //print(element);
+ Assert.That(element.InnerXml.Equals(expectedResult));
+
+ s.Delete("from CarPart");
+ s.Delete("from CarType");
+ s.Delete("from Car");
+
+ t.Commit();
+ s.Close();
+ }
+ }
+}
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-10 12:31:10 UTC (rev 3830)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-10 13:56:51 UTC (rev 3831)
@@ -162,6 +162,10 @@
<Compile Include="EntityModeTest\Map\Basic\DynamicClassFixture.cs" />
<Compile Include="EntityModeTest\Xml\Accessors\XmlAccessorFixture.cs" />
<Compile Include="EntityModeTest\Xml\Basic\XmlFixture.cs" />
+ <Compile Include="EntityModeTest\Xml\Many2One\Car.cs" />
+ <Compile Include="EntityModeTest\Xml\Many2One\CarPart.cs" />
+ <Compile Include="EntityModeTest\Xml\Many2One\CarType.cs" />
+ <Compile Include="EntityModeTest\Xml\Many2One\XmlManyToOneFixture.cs" />
<Compile Include="Events\Collections\AbstractCollectionEventFixture.cs" />
<Compile Include="Events\Collections\AbstractParentWithCollection.cs" />
<Compile Include="Events\Collections\Association\AbstractAssociationCollectionEventFixture.cs" />
@@ -1489,6 +1493,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <Content Include="EntityModeTest\Xml\Many2One\Car.hbm.xml" />
<EmbeddedResource Include="EntityModeTest\Xml\Basic\AB.hbm.xml" />
<EmbeddedResource Include="EntityModeTest\Xml\Basic\Account.hbm.xml" />
<EmbeddedResource Include="EntityModeTest\Xml\Basic\Employer.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-10-10 16:20:32
|
Revision: 3833
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3833&view=rev
Author: fabiomaulo
Date: 2008-10-10 16:20:24 +0000 (Fri, 10 Oct 2008)
Log Message:
-----------
another test to support Xml entityMode
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/MultiRepresentationFixture.cs
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Stock.cs
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Stock.hbm.xml
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Valuation.cs
trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Valuation.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/MultiRepresentationFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/MultiRepresentationFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/MultiRepresentationFixture.cs 2008-10-10 16:20:24 UTC (rev 3833)
@@ -0,0 +1,189 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Xml;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.EntityModeTest.Multi
+{
+ [TestFixture, Ignore("Not supported yet.")]
+ public class MultiRepresentationFixture : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get { return new[] {"EntityModeTest.Multi.Stock.hbm.xml", "EntityModeTest.Multi.Valuation.hbm.xml"}; }
+ }
+
+ private class TestData
+ {
+ private readonly ISessionFactory sessions;
+ public long stockId;
+
+ public TestData(ISessionFactory factory)
+ {
+ sessions = factory;
+ }
+
+ public void Create()
+ {
+ ISession session = sessions.OpenSession();
+ session.BeginTransaction();
+ var stock = new Stock {TradeSymbol = "NHForge"};
+ var valuation = new Valuation {Stock = stock, ValuationDate = DateTime.Now, Value = 200.0D};
+ stock.CurrentValuation = valuation;
+ stock.Valuations.Add(valuation);
+
+ session.Save(stock);
+ session.Save(valuation);
+
+ session.Transaction.Commit();
+ session.Close();
+
+ stockId = stock.Id;
+ }
+
+ public void Destroy()
+ {
+ ISession session = sessions.OpenSession();
+ session.BeginTransaction();
+ IList<Stock> stocks = session.CreateQuery("from Stock").List<Stock>();
+ foreach (Stock stock in stocks)
+ {
+ stock.CurrentValuation = null;
+ session.Flush();
+ foreach (Valuation valuation in stock.Valuations)
+ {
+ session.Delete(valuation);
+ }
+ session.Delete(stock);
+ }
+ session.Transaction.Commit();
+ session.Close();
+ }
+ }
+
+ [Test]
+ public void PocoRetreival()
+ {
+ var testData = new TestData(sessions);
+ testData.Create();
+
+ ISession session = OpenSession();
+ ITransaction txn = session.BeginTransaction();
+
+ var stock = session.Get<Stock>(1);
+ Assert.That(stock.Id, Is.EqualTo(1L));
+
+ txn.Commit();
+ session.Close();
+
+ testData.Destroy();
+ }
+
+ [Test]
+ public void XmlHQL()
+ {
+ var testData = new TestData(sessions);
+ testData.Create();
+
+ ISession session = OpenSession();
+ ITransaction txn = session.BeginTransaction();
+ ISession xml = session.GetSession(EntityMode.Xml);
+
+ IList result = xml.CreateQuery("from Stock").List();
+
+ Assert.That(result.Count, Is.EqualTo(1L));
+ var element = (XmlElement) result[0];
+ Assert.That(element.Attributes["id"], Is.EqualTo(testData.stockId));
+
+ Console.WriteLine("**** XML: ****************************************************");
+ //prettyPrint( element );
+ Console.WriteLine("**************************************************************");
+
+ txn.Rollback();
+ session.Close();
+
+ testData.Destroy();
+ }
+
+ [Test]
+ public void XmlRetreival()
+ {
+ var testData = new TestData(sessions);
+ testData.Create();
+
+ ISession session = OpenSession();
+ ITransaction txn = session.BeginTransaction();
+ ISession xml = session.GetSession(EntityMode.Xml);
+
+ object rtn = xml.Get(typeof (Stock).FullName, testData.stockId);
+ var element = (XmlElement) rtn;
+
+ Assert.That(element.Attributes["id"], Is.EqualTo(testData.stockId));
+
+ Console.WriteLine("**** XML: ****************************************************");
+ //prettyPrint( element );
+ Console.WriteLine("**************************************************************");
+
+ XmlNode currVal = element.GetElementsByTagName("currentValuation")[0];
+
+ Console.WriteLine("**** XML: ****************************************************");
+ //prettyPrint( currVal );
+ Console.WriteLine("**************************************************************");
+
+ txn.Rollback();
+ session.Close();
+
+ testData.Destroy();
+ }
+
+ [Test]
+ public void XmlSave()
+ {
+ var testData = new TestData(sessions);
+ testData.Create();
+
+ ISession pojos = OpenSession();
+ ITransaction txn = pojos.BeginTransaction();
+ ISession xml = pojos.GetSession(EntityMode.Xml);
+
+ var domDoc = new XmlDocument();
+ XmlElement stock = domDoc.CreateElement("stock");
+ domDoc.AppendChild(stock);
+ XmlElement tradeSymbol = domDoc.CreateElement("tradeSymbol");
+ tradeSymbol.InnerText = "Microsoft";
+ stock.AppendChild(tradeSymbol);
+
+ XmlElement cval = domDoc.CreateElement("currentValuation");
+ XmlElement val = domDoc.CreateElement("valuation");
+ stock.AppendChild(cval);
+ //val.appendContent(stock); TODO
+ XmlElement valuationDate = domDoc.CreateElement("valuationDate");
+ tradeSymbol.InnerText = DateTime.Now.ToString();
+ val.AppendChild(valuationDate);
+
+ XmlElement value = domDoc.CreateElement("value");
+ tradeSymbol.InnerText = "121.00";
+ val.AppendChild(value);
+
+ xml.Save(typeof (Stock).FullName, stock);
+ xml.Flush();
+
+ txn.Rollback();
+ pojos.Close();
+
+ Assert.That(!pojos.IsOpen);
+ Assert.That(!xml.IsOpen);
+
+ //prettyPrint( stock );
+
+ testData.Destroy();
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Stock.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Stock.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Stock.cs 2008-10-10 16:20:24 UTC (rev 3833)
@@ -0,0 +1,21 @@
+using Iesi.Collections.Generic;
+
+namespace NHibernate.Test.EntityModeTest.Multi
+{
+ public class Stock
+ {
+ private ISet<Valuation> valuations = new HashedSet<Valuation>();
+
+ public virtual long Id { get; set; }
+
+ public virtual string TradeSymbol { get; set; }
+
+ public virtual Valuation CurrentValuation { get; set; }
+
+ public virtual ISet<Valuation> Valuations
+ {
+ get { return valuations; }
+ set { valuations = value; }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Stock.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Stock.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Stock.hbm.xml 2008-10-10 16:20:24 UTC (rev 3833)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.EntityModeTest.Multi">
+
+ <class table="STOCK" name="Stock" node="stock">
+
+ <id name="Id" column="STOCK_ID" node="@id">
+ <generator class="increment"/>
+ </id>
+
+ <property name="TradeSymbol" type="string" column="SYMBOL"/>
+
+ <many-to-one name="CurrentValuation" class="Valuation" column="CURR_VAL_ID" cascade="all" />
+
+ <set name="Valuations" cascade="all" lazy="true">
+ <key column="STOCK_ID"/>
+ <one-to-many class="Valuation"/>
+ </set>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Valuation.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Valuation.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Valuation.cs 2008-10-10 16:20:24 UTC (rev 3833)
@@ -0,0 +1,15 @@
+using System;
+
+namespace NHibernate.Test.EntityModeTest.Multi
+{
+ public class Valuation
+ {
+ public virtual long Id { get; set; }
+
+ public virtual Stock Stock { get; set; }
+
+ public virtual DateTime ValuationDate { get; set; }
+
+ public virtual double Value { get; set; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Valuation.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Valuation.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/EntityModeTest/Multi/Valuation.hbm.xml 2008-10-10 16:20:24 UTC (rev 3833)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.EntityModeTest.Multi">
+
+ <class table="STOCK_VAL" name="Valuation" node="valuation">
+
+ <id name="Id" column="VAL_ID" node="@id">
+ <generator class="increment"/>
+ </id>
+
+ <many-to-one name="Stock" embed-xml="false"
+ class="Stock" column="STOCK_ID" cascade="none" />
+
+ <property name="ValuationDate" type="date" column="DT"/>
+ <property name="Value" type="double" column="VAL"/>
+
+ </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 2008-10-10 13:58:37 UTC (rev 3832)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-10 16:20:24 UTC (rev 3833)
@@ -160,6 +160,9 @@
<Compile Include="DynamicEntity\Tuplizer\TuplizerDynamicEntity.cs" />
<Compile Include="EngineTest\TypedValueFixture.cs" />
<Compile Include="EntityModeTest\Map\Basic\DynamicClassFixture.cs" />
+ <Compile Include="EntityModeTest\Multi\MultiRepresentationFixture.cs" />
+ <Compile Include="EntityModeTest\Multi\Stock.cs" />
+ <Compile Include="EntityModeTest\Multi\Valuation.cs" />
<Compile Include="EntityModeTest\Xml\Accessors\XmlAccessorFixture.cs" />
<Compile Include="EntityModeTest\Xml\Basic\XmlFixture.cs" />
<Compile Include="EntityModeTest\Xml\Many2One\Car.cs" />
@@ -1493,7 +1496,9 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
- <Content Include="EntityModeTest\Xml\Many2One\Car.hbm.xml" />
+ <EmbeddedResource Include="EntityModeTest\Multi\Stock.hbm.xml" />
+ <EmbeddedResource Include="EntityModeTest\Multi\Valuation.hbm.xml" />
+ <EmbeddedResource Include="EntityModeTest\Xml\Many2One\Car.hbm.xml" />
<EmbeddedResource Include="EntityModeTest\Xml\Basic\AB.hbm.xml" />
<EmbeddedResource Include="EntityModeTest\Xml\Basic\Account.hbm.xml" />
<EmbeddedResource Include="EntityModeTest\Xml\Basic\Employer.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <te...@us...> - 2008-10-11 20:24:52
|
Revision: 3846
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3846&view=rev
Author: tehlike
Date: 2008-10-11 20:24:43 +0000 (Sat, 11 Oct 2008)
Log Message:
-----------
Adding test to see if Criteria supports Polymorphic queries(see if NH-1033 is an issue)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Animal.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Reptile.cs
Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Animal.cs (from rev 3835, trunk/nhibernate/src/NHibernate.Test/Criteria/Animal.cs)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Animal.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Animal.cs 2008-10-11 20:24:43 UTC (rev 3846)
@@ -0,0 +1,19 @@
+using System;
+namespace NHibernate.Test.NHSpecificTest.NH1033
+{
+ public class Animal
+ {
+ public virtual long Id
+ {
+ get;
+ set;
+ }
+
+ public virtual string SerialNumber
+ {
+ get;
+ set;
+ }
+
+ }
+}
\ No newline at end of file
Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Animal.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Fixture.cs 2008-10-11 20:24:43 UTC (rev 3846)
@@ -0,0 +1,60 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using NHibernate.Criterion;
+using NUnit.Framework;
+using System.Collections;
+namespace NHibernate.Test.NHSpecificTest.NH1033
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ protected override void OnSetUp()
+ {
+ using(var session=OpenSession())
+ {
+ using (var tran = session.BeginTransaction())
+ {
+
+ var animal0 = new Animal();
+ var animal1 = new Reptile();
+
+ animal0.SerialNumber = "00001";
+
+ animal1.SerialNumber = "00002";
+ animal1.BodyTemperature = 34;
+
+ session.Save(animal0);
+ session.Save(animal1);
+ tran.Commit();
+ }
+ }
+ }
+ protected override void OnTearDown()
+ {
+ using (var session = OpenSession())
+ using (var tran = session.BeginTransaction())
+ {
+ session.Delete("from Animal");
+ session.Delete("from Reptile");
+ tran.Commit();
+ }
+ }
+
+ [Test]
+ public void CanUseClassConstraint()
+ {
+ using(ISession session=OpenSession())
+ {
+ var crit = session
+ .CreateCriteria(typeof (Animal), "a")
+ .Add(Property
+ .ForName("a.class")
+ .Eq(typeof(Animal)));
+ var results = crit.List<Animal>();
+ Assert.AreEqual(1,results.Count);
+ Assert.AreEqual(typeof(Animal), NHibernateUtil.GetClass(results[0]));
+ }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Mappings.hbm.xml 2008-10-11 20:24:43 UTC (rev 3846)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1033">
+
+ <class name="Animal">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+ <property name="SerialNumber"/>
+
+ <joined-subclass name="Reptile">
+ <key column="animal"/>
+ <property name="BodyTemperature"/>
+ </joined-subclass>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Reptile.cs (from rev 3835, trunk/nhibernate/src/NHibernate.Test/Criteria/Reptile.cs)
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Reptile.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Reptile.cs 2008-10-11 20:24:43 UTC (rev 3846)
@@ -0,0 +1,14 @@
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.NH1033
+{
+ public class Reptile : Animal
+ {
+
+ public virtual float BodyTemperature
+ {
+ get;
+ set;
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1033/Reptile.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-11 19:17:21 UTC (rev 3845)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-11 20:24:43 UTC (rev 3846)
@@ -373,6 +373,9 @@
<Compile Include="NHSpecificTest\CollectionFixture.cs" />
<Compile Include="NHSpecificTest\CriteriaFromHql\Fixture.cs" />
<Compile Include="NHSpecificTest\CriteriaFromHql\Person.cs" />
+ <Compile Include="NHSpecificTest\NH1033\Animal.cs" />
+ <Compile Include="NHSpecificTest\NH1033\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1033\Reptile.cs" />
<Compile Include="NHSpecificTest\NH1077\A.cs" />
<Compile Include="NHSpecificTest\NH1077\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1098\FilterParameterOrderFixture.cs" />
@@ -1497,6 +1500,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1033\Mappings.hbm.xml" />
<EmbeddedResource Include="EntityModeTest\Multi\Stock.hbm.xml" />
<EmbeddedResource Include="EntityModeTest\Multi\Valuation.hbm.xml" />
<EmbeddedResource Include="EntityModeTest\Xml\Many2One\Car.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-10-19 20:25:26
|
Revision: 3866
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3866&view=rev
Author: fabiomaulo
Date: 2008-10-19 20:25:16 +0000 (Sun, 19 Oct 2008)
Log Message:
-----------
Test for NH-662
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Domain.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Mappings.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Domain.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Domain.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Domain.cs 2008-10-19 20:25:16 UTC (rev 3866)
@@ -0,0 +1,20 @@
+namespace NHibernate.Test.NHSpecificTest.NH662
+{
+ public class Base
+ {
+ public virtual int Id { get; set; }
+ public virtual string Description { get; set; }
+ protected virtual void Foo()
+ {
+ // Some logic.
+ }
+ }
+
+ public class Derived : Base
+ {
+ protected override void Foo()
+ {
+ // Some other logic
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Domain.cs
___________________________________________________________________
Added: svn:mergeinfo
+
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Fixture.cs 2008-10-19 20:25:16 UTC (rev 3866)
@@ -0,0 +1,38 @@
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.NHSpecificTest.NH662
+{
+ [TestFixture, Ignore("Not supported.")]
+ public class Fixture: BugTestCase
+ {
+ [Test]
+ public void UseDerivedClass()
+ {
+ object savedId;
+ var d = new Derived {Description = "something"};
+
+ using (ISession s = OpenSession())
+ using (var tx = s.BeginTransaction())
+ {
+ savedId = s.Save(d);
+ tx.Commit();
+ }
+
+ using (ISession s = OpenSession())
+ using (var tx = s.BeginTransaction())
+ {
+ d = s.Load<Derived>(savedId);
+ Assert.That(d.Description, Is.EqualTo("something"));
+ tx.Commit();
+ }
+
+ using (ISession s = OpenSession())
+ using (var tx = s.BeginTransaction())
+ {
+ s.Delete(d);
+ tx.Commit();
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH662/Mappings.hbm.xml 2008-10-19 20:25:16 UTC (rev 3866)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH662">
+
+ <class name="Base">
+ <id name="Id" column="Id">
+ <generator class="native" />
+ </id>
+ <property name="Description"/>
+ </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 2008-10-18 22:18:15 UTC (rev 3865)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-19 20:25:16 UTC (rev 3866)
@@ -523,6 +523,8 @@
<Compile Include="NHSpecificTest\NH1080\Domain.cs" />
<Compile Include="NHSpecificTest\NH1080\Fixture.cs" />
<Compile Include="NHSpecificTest\NH364\Invoice.cs" />
+ <Compile Include="NHSpecificTest\NH662\Domain.cs" />
+ <Compile Include="NHSpecificTest\NH662\Fixture.cs" />
<Compile Include="NHSpecificTest\NH693\Fixture.cs" />
<Compile Include="NHSpecificTest\NH693\Something.cs" />
<Compile Include="NHSpecificTest\NH883\Cat.cs" />
@@ -1505,6 +1507,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH662\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1495\Mappings.hbm.xml" />
<EmbeddedResource Include="ProjectionFixtures\Mapping.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1033\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-10-25 17:23:30
|
Revision: 3878
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3878&view=rev
Author: fabiomaulo
Date: 2008-10-25 17:23:21 +0000 (Sat, 25 Oct 2008)
Log Message:
-----------
Some other tests about entity-name usage
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/Extendshbm/ExtendsFixture.cs
trunk/nhibernate/src/NHibernate.Test/Extendshbm/packageentitynamesf2.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/Extendshbm/entitynamesWithColl.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Extendshbm/packageentitynamesWithColl.hbm.xml
Modified: trunk/nhibernate/src/NHibernate.Test/Extendshbm/ExtendsFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Extendshbm/ExtendsFixture.cs 2008-10-25 14:05:25 UTC (rev 3877)
+++ trunk/nhibernate/src/NHibernate.Test/Extendshbm/ExtendsFixture.cs 2008-10-25 17:23:21 UTC (rev 3878)
@@ -105,6 +105,18 @@
}
[Test]
+ public void JoinedSubclassAndEntityNamesOnlyWithCollection()
+ {
+ Configuration cfg = new Configuration();
+
+ cfg.AddResource(BaseForMappings + "Extendshbm.entitynamesWithColl.hbm.xml", typeof(ExtendsFixture).Assembly);
+
+ cfg.BuildMappings();
+ Assert.That(cfg.GetClassMapping("EntityHasName"), Is.Not.Null);
+ Assert.That(cfg.GetClassMapping("EntityCompany"), Is.Not.Null);
+ }
+
+ [Test]
public void EntityNamesWithPackageFailureExpected()
{
Configuration cfg = new Configuration();
@@ -117,6 +129,18 @@
}
[Test]
+ public void EntityNamesWithPackageWithCollection()
+ {
+ Configuration cfg = new Configuration();
+ cfg.AddResource(BaseForMappings + "Extendshbm.packageentitynamesWithColl.hbm.xml", typeof(ExtendsFixture).Assembly);
+
+ cfg.BuildMappings();
+
+ Assert.That(cfg.GetClassMapping("EntityHasName"), Is.Not.Null);
+ Assert.That(cfg.GetClassMapping("EntityCompany"), Is.Not.Null);
+ }
+
+ [Test]
public void EntityNamesWithPackageFailureExpectedDiffFiles()
{
Configuration cfg = new Configuration();
Added: trunk/nhibernate/src/NHibernate.Test/Extendshbm/entitynamesWithColl.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Extendshbm/entitynamesWithColl.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Extendshbm/entitynamesWithColl.hbm.xml 2008-10-25 17:23:21 UTC (rev 3878)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
+
+ <class lazy="true" entity-name="EntityHasName" table="F5_ENTITY_HASNAME">
+ <id name="id" column="ID" type="long">
+ <generator class="native"/>
+ </id>
+ <property name="attrName" type="string">
+ <column name="NAME"/>
+ </property>
+ </class>
+ <joined-subclass lazy="true" entity-name="EntityCompany" table="F5_ENTITY_COMPANY" extends="EntityHasName">
+ <key column="REF_ID"/>
+ <many-to-one name="parent" entity-name="EntityHasName"/>
+ <set name="childs" >
+ <key column="familyId" />
+ <one-to-many entity-name="EntityHasName"/>
+ </set>
+ </joined-subclass>
+</hibernate-mapping>
Property changes on: trunk/nhibernate/src/NHibernate.Test/Extendshbm/entitynamesWithColl.hbm.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Added: trunk/nhibernate/src/NHibernate.Test/Extendshbm/packageentitynamesWithColl.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Extendshbm/packageentitynamesWithColl.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Extendshbm/packageentitynamesWithColl.hbm.xml 2008-10-25 17:23:21 UTC (rev 3878)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.Extendshbm">
+
+ <class lazy="true" entity-name="EntityHasName" table="F5_ENTITY_HASNAME">
+ <id name="id" column="ID" type="long">
+ <generator class="native"/>
+ </id>
+ <property name="attrName" type="string">
+ <column name="NAME"/>
+ </property>
+ </class>
+ <joined-subclass lazy="true" entity-name="EntityCompany" table="F5_ENTITY_COMPANY" extends="EntityHasName">
+ <key column="REF_ID"/>
+ <many-to-one name="parent" entity-name="EntityHasName"/>
+ <set name="childs" >
+ <key column="familyId" />
+ <one-to-many entity-name="EntityHasName"/>
+ </set>
+ </joined-subclass>
+</hibernate-mapping>
\ No newline at end of file
Modified: trunk/nhibernate/src/NHibernate.Test/Extendshbm/packageentitynamesf2.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Extendshbm/packageentitynamesf2.hbm.xml 2008-10-25 14:05:25 UTC (rev 3877)
+++ trunk/nhibernate/src/NHibernate.Test/Extendshbm/packageentitynamesf2.hbm.xml 2008-10-25 17:23:21 UTC (rev 3878)
@@ -6,5 +6,9 @@
<joined-subclass lazy="true" entity-name="EntityCompany" table="F5_ENTITY_COMPANY" extends="EntityHasName">
<key column="REF_ID"/>
<many-to-one name="parent" entity-name="EntityHasName"/>
+ <set name="childs" >
+ <key column="familyId" />
+ <one-to-many entity-name="EntityHasName"/>
+ </set>
</joined-subclass>
</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 2008-10-25 14:05:25 UTC (rev 3877)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-10-25 17:23:21 UTC (rev 3878)
@@ -1513,6 +1513,8 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="Extendshbm\packageentitynamesWithColl.hbm.xml" />
+ <EmbeddedResource Include="Extendshbm\entitynamesWithColl.hbm.xml" />
<EmbeddedResource Include="Extendshbm\packageentitynamesf1.hbm.xml" />
<EmbeddedResource Include="Extendshbm\packageentitynamesf2.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1090\Mappings.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <te...@us...> - 2008-11-02 22:55:55
|
Revision: 3887
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3887&view=rev
Author: tehlike
Date: 2008-11-02 22:55:51 +0000 (Sun, 02 Nov 2008)
Log Message:
-----------
Adding tests supporting NH-1478 is not an issue.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1447/Person.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Person.cs
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1447/Person.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1447/Person.cs 2008-11-02 22:39:13 UTC (rev 3886)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1447/Person.cs 2008-11-02 22:55:51 UTC (rev 3887)
@@ -12,10 +12,10 @@
}
- public Person(string name, bool isPerfect)
+ public Person(string name, bool wantsNewsLetter)
{
this.Name = name;
- this.WantsNewsletter = isPerfect;
+ this.WantsNewsletter = wantsNewsLetter;
}
public virtual int Id
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Fixture.cs 2008-11-02 22:55:51 UTC (rev 3887)
@@ -0,0 +1,69 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1478
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ protected override void OnTearDown()
+ {
+ base.OnTearDown();
+ using (ISession session = OpenSession())
+ {
+ using (ITransaction tx = session.BeginTransaction())
+ {
+ session.Delete("from Person");
+ tx.Commit();
+ }
+ }
+ }
+
+ protected override void OnSetUp()
+ {
+ using (ISession s = OpenSession())
+ {
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ Person e1 = new Person("Tuna Toksoz","Born in Istanbul :Turkey");
+ Person e2 = new Person("Tuna Toksoz", "Born in Istanbul :Turkiye");
+ s.Save(e1);
+ s.Save(e2);
+ tx.Commit();
+ }
+ }
+ }
+
+ [Test]
+ public void TestIfColonInStringIsNotInterpretedAsParameterInSQL()
+ {
+ using (ISession session=OpenSession())
+ {
+
+
+ IList lst = session.CreateSQLQuery("select Biography from Person where Biography='Born in Istanbul :Turkey'")
+ .AddScalar("Biography", NHibernateUtil.String).List();
+ Assert.AreEqual(1,lst.Count);
+ }
+
+ }
+
+ [Test]
+ public void TestIfColonInStringIsNotInterpretedAsParameterInHQL()
+ {
+ using (ISession session = OpenSession())
+ {
+
+
+ IList lst = session.CreateSQLQuery("select p.Biography from Person p where p.Biography='Born in Istanbul :Turkey'")
+ .List();
+ Assert.AreEqual(1, lst.Count);
+ }
+
+ }
+
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Mappings.hbm.xml 2008-11-02 22:55:51 UTC (rev 3887)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1478">
+
+ <class name="Person" lazy="false">
+ <id name="Id">
+ <generator class="native" />
+ </id>
+ <property name="Name"/>
+ <property name="Biography"/>
+ </class>
+</hibernate-mapping>
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Person.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Person.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1478/Person.cs 2008-11-02 22:55:51 UTC (rev 3887)
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.NHSpecificTest.NH1478
+{
+ public class Person
+ {
+ public Person()
+ {
+
+ }
+
+ public Person(string name, string bio)
+ {
+ this.Name = name;
+ this.Biography = bio;
+ }
+
+ public virtual int Id
+ {
+ get;
+ set;
+ }
+
+ public virtual string Name
+ {
+ get;
+ set;
+ }
+ public virtual string Biography
+ {
+ get;
+ set;
+ }
+
+ }
+}
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-02 22:39:13 UTC (rev 3886)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-02 22:55:51 UTC (rev 3887)
@@ -496,6 +496,8 @@
<Compile Include="NHSpecificTest\NH1447\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1447\Person.cs" />
<Compile Include="NHSpecificTest\NH1464\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1478\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1478\Person.cs" />
<Compile Include="NHSpecificTest\NH1483\BaseClass.cs" />
<Compile Include="NHSpecificTest\NH1483\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1483\SubClass.cs" />
@@ -1513,6 +1515,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1478\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1447\Mappings.hbm.xml" />
<EmbeddedResource Include="TypesTest\EnumCharClass.hbm.xml" />
<EmbeddedResource Include="Extendshbm\packageentitynamesWithColl.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-11-08 15:58:16
|
Revision: 3898
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3898&view=rev
Author: fabiomaulo
Date: 2008-11-08 15:58:07 +0000 (Sat, 08 Nov 2008)
Log Message:
-----------
Fix NH-1551 (better coverage for Oracle; by Jaroslav Mart?\195?\161sek)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/GeneratedTest/PartiallyGeneratedComponentTest.cs
trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithCachingTest.cs
trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithoutCachingTest.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1039/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1413/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH364/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH732/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH732/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH940/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/TypeParameters/TypeParameterTest.cs
Modified: trunk/nhibernate/src/NHibernate.Test/GeneratedTest/PartiallyGeneratedComponentTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/GeneratedTest/PartiallyGeneratedComponentTest.cs 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/GeneratedTest/PartiallyGeneratedComponentTest.cs 2008-11-08 15:58:07 UTC (rev 3898)
@@ -21,7 +21,7 @@
protected override bool AppliesTo(Dialect.Dialect dialect)
{
- return dialect is MsSql2000Dialect || dialect is FirebirdDialect;
+ return dialect is MsSql2000Dialect || dialect is FirebirdDialect || dialect is Oracle9Dialect;
}
[Test]
Modified: trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithCachingTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithCachingTest.cs 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithCachingTest.cs 2008-11-08 15:58:07 UTC (rev 3898)
@@ -17,7 +17,7 @@
protected override bool AppliesTo(Dialect.Dialect dialect)
{
- return dialect is MsSql2000Dialect;
+ return dialect is MsSql2000Dialect || dialect is Oracle9Dialect;
}
}
}
Modified: trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithoutCachingTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithoutCachingTest.cs 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/GeneratedTest/TriggerGeneratedValuesWithoutCachingTest.cs 2008-11-08 15:58:07 UTC (rev 3898)
@@ -17,7 +17,7 @@
protected override bool AppliesTo(Dialect.Dialect dialect)
{
- return dialect is MsSql2000Dialect;
+ return dialect is MsSql2000Dialect || dialect is Oracle9Dialect;
}
protected override string CacheConcurrencyStrategy
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1039/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1039/Mappings.hbm.xml 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1039/Mappings.hbm.xml 2008-11-08 15:58:07 UTC (rev 3898)
@@ -13,7 +13,7 @@
<dynamic-component name="Properties">
<set name="Phones" table="NH1039_Phone">
<key column="PersonId"/>
- <element column="Number" type="string"/>
+ <element column="`Number`" type="string"/>
</set>
</dynamic-component>
</class>
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1408/Mappings.hbm.xml 2008-11-08 15:58:07 UTC (rev 3898)
@@ -6,7 +6,7 @@
<class name="DbResource" table="Resources">
<cache usage="nonstrict-read-write" />
<id name="Oid" column="ID">
- <generator class="identity"/>
+ <generator class="native"/>
</id>
<discriminator column="Type" type="String(25)" not-null="true" />
<version name="Version" column="Version" />
@@ -27,7 +27,7 @@
<class name="DbResourceKey" table="ResourceKeys">
<cache usage="nonstrict-read-write" />
<id name="Oid" column="ID">
- <generator class="identity"/>
+ <generator class="native"/>
</id>
<version name="Version" column="Version" />
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1413/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1413/Mappings.hbm.xml 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1413/Mappings.hbm.xml 2008-11-08 15:58:07 UTC (rev 3898)
@@ -5,7 +5,7 @@
<class name="Foo" table="XFoos">
<id name="Oid" column="ID">
- <generator class="identity"/>
+ <generator class="native"/>
</id>
<version name="Version" column="Version" />
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH364/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH364/Mappings.hbm.xml 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH364/Mappings.hbm.xml 2008-11-08 15:58:07 UTC (rev 3898)
@@ -37,7 +37,7 @@
<id name="Id">
<generator class="native"/>
</id>
- <property name="Number"/>
+ <property name="Number" column="`Number`"/>
<idbag name="Items" table="InvoiceItem364" lazy="true" access="field.pascalcase-underscore">
<collection-id column="Id" type="Int32">
<generator class="native"/>
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH732/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH732/Fixture.cs 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH732/Fixture.cs 2008-11-08 15:58:07 UTC (rev 3898)
@@ -2,6 +2,7 @@
using System.Data;
using Iesi.Collections.Generic;
using NHibernate;
+using NHibernate.Dialect;
using NHibernate.SqlTypes;
using NHibernate.UserTypes;
using NUnit.Framework;
@@ -11,6 +12,12 @@
[TestFixture]
public class Fixture : BugTestCase
{
+
+ protected override bool AppliesTo(Dialect.Dialect dialect)
+ {
+ return dialect is MsSql2000Dialect;
+ }
+
[Test]
public void CaseInsensitiveId()
{
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH732/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH732/Mappings.hbm.xml 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH732/Mappings.hbm.xml 2008-11-08 15:58:07 UTC (rev 3898)
@@ -15,7 +15,7 @@
</class>
<class name="UserToRole">
<id name="Id">
- <generator class="identity"/>
+ <generator class="native"/>
</id>
<many-to-one class="User" column="UserName"
name="User"/>
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH940/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH940/Mappings.hbm.xml 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH940/Mappings.hbm.xml 2008-11-08 15:58:07 UTC (rev 3898)
@@ -2,7 +2,7 @@
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="NHibernate.Test.NHSpecificTest.NH940" assembly="NHibernate.Test">
<class name="A">
- <id name="Id" column="uid" type="Int64">
+ <id name="Id" column="`uid`" type="Int64">
<generator class="increment"/>
</id>
@@ -10,7 +10,7 @@
</class>
<class name="B">
- <id name="Id" column="uid" type="Int64">
+ <id name="Id" column="`uid`" type="Int64">
<generator class="increment"/>
</id>
</class>
Modified: trunk/nhibernate/src/NHibernate.Test/TypeParameters/TypeParameterTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/TypeParameters/TypeParameterTest.cs 2008-11-08 15:24:29 UTC (rev 3897)
+++ trunk/nhibernate/src/NHibernate.Test/TypeParameters/TypeParameterTest.cs 2008-11-08 15:58:07 UTC (rev 3898)
@@ -70,7 +70,7 @@
"Default value should have been mapped to null");
Assert.IsTrue(reader.GetValue(reader.GetOrdinal("VALUE_TWO")) == DBNull.Value,
"Default value should have been mapped to null");
- Assert.AreEqual(reader.GetInt32(reader.GetOrdinal("VALUE_THREE")), 5,
+ Assert.AreEqual(Convert.ToInt32(reader.GetValue(reader.GetOrdinal("VALUE_THREE"))), 5,
"Non-Default value should not be changed");
Assert.IsTrue(reader.GetValue(reader.GetOrdinal("VALUE_FOUR")) == DBNull.Value,
"Default value should have been mapped to null");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-11-12 02:40:25
|
Revision: 3907
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3907&view=rev
Author: fabiomaulo
Date: 2008-11-12 02:40:14 +0000 (Wed, 12 Nov 2008)
Log Message:
-----------
Tests for session.Merge
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/Operations/
trunk/nhibernate/src/NHibernate.Test/Operations/AbstractOperationTestCase.cs
trunk/nhibernate/src/NHibernate.Test/Operations/Address.cs
trunk/nhibernate/src/NHibernate.Test/Operations/Competition.cs
trunk/nhibernate/src/NHibernate.Test/Operations/Competition.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Operations/Competitor.cs
trunk/nhibernate/src/NHibernate.Test/Operations/Employee.cs
trunk/nhibernate/src/NHibernate.Test/Operations/Employer.cs
trunk/nhibernate/src/NHibernate.Test/Operations/Employer.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Operations/MergeFixture.cs
trunk/nhibernate/src/NHibernate.Test/Operations/Node.cs
trunk/nhibernate/src/NHibernate.Test/Operations/Node.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Operations/NumberedNode.cs
trunk/nhibernate/src/NHibernate.Test/Operations/OneToOne.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Operations/OptLockEntity.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Operations/Person.cs
trunk/nhibernate/src/NHibernate.Test/Operations/PersonalDetails.cs
trunk/nhibernate/src/NHibernate.Test/Operations/TimestampedEntity.cs
trunk/nhibernate/src/NHibernate.Test/Operations/VersionedEntity.cs
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-10 17:47:28 UTC (rev 3906)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-12 02:40:14 UTC (rev 3907)
@@ -767,6 +767,19 @@
<Compile Include="Ondelete\ParentChildFixture.cs" />
<Compile Include="Ondelete\Person.cs" />
<Compile Include="Ondelete\Salesperson.cs" />
+ <Compile Include="Operations\AbstractOperationTestCase.cs" />
+ <Compile Include="Operations\Address.cs" />
+ <Compile Include="Operations\Competition.cs" />
+ <Compile Include="Operations\Competitor.cs" />
+ <Compile Include="Operations\Employee.cs" />
+ <Compile Include="Operations\Employer.cs" />
+ <Compile Include="Operations\MergeFixture.cs" />
+ <Compile Include="Operations\Node.cs" />
+ <Compile Include="Operations\NumberedNode.cs" />
+ <Compile Include="Operations\Person.cs" />
+ <Compile Include="Operations\PersonalDetails.cs" />
+ <Compile Include="Operations\TimestampedEntity.cs" />
+ <Compile Include="Operations\VersionedEntity.cs" />
<Compile Include="ProjectionFixtures\Key.cs" />
<Compile Include="ProjectionFixtures\Fixture.cs" />
<Compile Include="ProjectionFixtures\NodeType.cs" />
@@ -1520,6 +1533,11 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="Operations\Competition.hbm.xml" />
+ <EmbeddedResource Include="Operations\Employer.hbm.xml" />
+ <EmbeddedResource Include="Operations\Node.hbm.xml" />
+ <EmbeddedResource Include="Operations\OneToOne.hbm.xml" />
+ <EmbeddedResource Include="Operations\OptLockEntity.hbm.xml" />
<EmbeddedResource Include="Subclass\EnumDiscriminator\EnumDiscriminator.hbm.xml" />
<EmbeddedResource Include="Generatedkeys\Select\MyEntity.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1478\Mappings.hbm.xml" />
Added: trunk/nhibernate/src/NHibernate.Test/Operations/AbstractOperationTestCase.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Operations/AbstractOperationTestCase.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Operations/AbstractOperationTestCase.cs 2008-11-12 02:40:14 UTC (rev 3907)
@@ -0,0 +1,58 @@
+using System.Collections;
+using NHibernate.Cfg;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.Operations
+{
+ public abstract class AbstractOperationTestCase : TestCase
+ {
+ protected override string MappingsAssembly
+ {
+ get { return "NHibernate.Test"; }
+ }
+
+ protected override IList Mappings
+ {
+ get
+ {
+ return new[]
+ {
+ "Operations.Node.hbm.xml", "Operations.Employer.hbm.xml", "Operations.OptLockEntity.hbm.xml",
+ "Operations.OneToOne.hbm.xml", "Operations.Competition.hbm.xml"
+ };
+ }
+ }
+
+ protected override string CacheConcurrencyStrategy
+ {
+ get { return null; }
+ }
+
+ protected override void Configure(Configuration configuration)
+ {
+ configuration.SetProperty(Environment.GenerateStatistics, "true");
+ configuration.SetProperty(Environment.BatchSize, "0");
+ }
+
+ protected void ClearCounts()
+ {
+ sessions.Statistics.Clear();
+ }
+
+ protected void AssertInsertCount(long expected)
+ {
+ Assert.That(sessions.Statistics.EntityInsertCount, Is.EqualTo(expected), "unexpected insert count");
+ }
+
+ protected void AssertUpdateCount(int expected)
+ {
+ Assert.That(sessions.Statistics.EntityUpdateCount, Is.EqualTo(expected), "unexpected update count");
+ }
+
+ protected void AssertDeleteCount(int expected)
+ {
+ Assert.That(sessions.Statistics.EntityDeleteCount, Is.EqualTo(expected), "unexpected delete count");
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Operations/Address.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Operations/Address.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Operations/Address.cs 2008-11-12 02:40:14 UTC (rev 3907)
@@ -0,0 +1,21 @@
+namespace NHibernate.Test.Operations
+{
+ public class Address
+ {
+ private Person resident;
+ public virtual long Id { get; set; }
+ public virtual string StreetAddress { get; set; }
+ public virtual string City { get; set; }
+ public virtual string Country { get; set; }
+
+ public virtual Person Resident
+ {
+ get { return resident; }
+ set
+ {
+ resident = value;
+ resident.Address = this;
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Operations/Competition.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Operations/Competition.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Operations/Competition.cs 2008-11-12 02:40:14 UTC (rev 3907)
@@ -0,0 +1,14 @@
+using System.Collections.Generic;
+
+namespace NHibernate.Test.Operations
+{
+ public class Competition
+ {
+ public Competition()
+ {
+ Competitors = new List<Competitor>();
+ }
+ public virtual int Id { get; set; }
+ public virtual IList<Competitor> Competitors { get; set; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Operations/Competition.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Operations/Competition.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Operations/Competition.hbm.xml 2008-11-12 02:40:14 UTC (rev 3907)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.Operations">
+
+ <class name="Competition">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+ <list name="Competitors" table="COMPET_ION_OR" cascade="persist,merge,delete">
+ <key column="TION_ID"/>
+ <list-index column="INDEX_COL"/>
+ <many-to-many class="Competitor" column="TOR_ID" />
+ </list>
+ </class>
+
+ <class name="Competitor">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+ <property name="Name"/>
+ </class>
+
+</hibernate-mapping>
+
Added: trunk/nhibernate/src/NHibernate.Test/Operations/Competitor.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Operations/Competitor.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Operations/Competitor.cs 2008-11-12 02:40:14 UTC (rev 3907)
@@ -0,0 +1,8 @@
+namespace NHibernate.Test.Operations
+{
+ public class Competitor
+ {
+ public virtual int Id { get; set; }
+ public virtual string Name { get; set; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Operations/Employee.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Operations/Employee.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Operations/Employee.cs 2008-11-12 02:40:14 UTC (rev 3907)
@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+
+namespace NHibernate.Test.Operations
+{
+ public class Employee
+ {
+ public virtual int Id { get; set; }
+ public virtual ICollection<Employer> Employers { get; set; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Operations/Employer.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Operations/Employer.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Operations/Employer.cs 2008-11-12 02:40:14 UTC (rev 3907)
@@ -0,0 +1,11 @@
+using System.Collections.Generic;
+
+namespace NHibernate.Test.Operations
+{
+ public class Employer
+ {
+ public virtual int Id { get; set; }
+ public virtual ICollection<Employee> Employees { get; set; }
+ public virtual int Vers { get; set; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Operations/Employer.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Operations/Employer.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Operations/Employer.hbm.xml 2008-11-12 02:40:14 UTC (rev 3907)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.Operations">
+
+ <class name="Employer" polymorphism="explicit">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+ <version column="vers" name="Vers"/>
+ <bag name="Employees" cascade="persist,merge" table="EMPLOYER_EMPLOYEE">
+ <key column="EMPER_ID"/>
+ <many-to-many class="Employee" column="EMPEE_ID" />
+ </bag>
+ </class>
+
+ <class name="Employee" polymorphism="explicit">
+ <id name="Id">
+ <generator class="native"/>
+ </id>
+ <bag name="Employers" inverse="true" cascade="persist,merge,save-update" table="EMPLOYER_EMPLOYEE">
+ <key column="EMPEE_ID"/>
+ <many-to-many class="Employer" column="EMPER_ID" />
+ </bag>
+ </class>
+
+</hibernate-mapping>
+
Added: trunk/nhibernate/src/NHibernate.Test/Operations/MergeFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Operations/MergeFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Operations/MergeFixture.cs 2008-11-12 02:40:14 UTC (rev 3907)
@@ -0,0 +1,705 @@
+using System.Collections.Generic;
+using NHibernate.Criterion;
+using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
+
+namespace NHibernate.Test.Operations
+{
+ [TestFixture]
+ public class MergeFixture : AbstractOperationTestCase
+ {
+ protected override void OnTearDown()
+ {
+ Cleanup();
+ }
+
+ private void Cleanup()
+ {
+ using (ISession s = OpenSession())
+ {
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Delete("from NumberedNode where parent is not null");
+ s.Delete("from NumberedNode");
+
+ s.Delete("from Node where parent is not null");
+ s.Delete("from Node");
+
+ s.Delete("from VersionedEntity where parent is not null");
+ s.Delete("from VersionedEntity");
+ s.Delete("from TimestampedEntity");
+
+ s.Delete("from Competitor");
+ s.Delete("from Competition");
+
+ s.Delete("from Employer");
+
+ tx.Commit();
+ }
+ }
+ }
+
+ [Test]
+ public void DeleteAndMerge()
+ {
+ using (ISession s = OpenSession())
+ {
+ s.BeginTransaction();
+ var jboss = new Employer();
+ s.Persist(jboss);
+ s.Transaction.Commit();
+ s.Clear();
+
+ s.BeginTransaction();
+ var otherJboss = s.Get<Employer>(jboss.Id);
+ s.Delete(otherJboss);
+ s.Transaction.Commit();
+ s.Clear();
+ jboss.Vers = 1;
+ s.BeginTransaction();
+ s.Merge(jboss);
+ s.Transaction.Commit();
+ }
+ }
+
+ [Test]
+ public void MergeBidiForeignKeyOneToOne()
+ {
+ Person p;
+ Address a;
+ using (ISession s = OpenSession())
+ {
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ p = new Person {Name = "steve"};
+ a = new Address {StreetAddress = "123 Main", City = "Austin", Country = "US", Resident = p};
+ s.Persist(a);
+ s.Persist(p);
+ tx.Commit();
+ }
+ }
+
+ ClearCounts();
+
+ p.Address.StreetAddress = "321 Main";
+
+ using (ISession s = OpenSession())
+ {
+ using (s.BeginTransaction())
+ {
+ p = (Person) s.Merge(p);
+ s.Transaction.Commit();
+ }
+ }
+
+ AssertInsertCount(0);
+ AssertUpdateCount(0); // no cascade
+ AssertDeleteCount(0);
+
+ using (ISession s = OpenSession())
+ {
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Delete(a);
+ s.Delete(p);
+ tx.Commit();
+ }
+ }
+ }
+
+ [Test, Ignore("Need some more investigation about id sync.")]
+ public void MergeBidiPrimayKeyOneToOne()
+ {
+ Person p;
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ p = new Person {Name = "steve"};
+ new PersonalDetails {SomePersonalDetail = "I have big feet", Person = p};
+ s.Persist(p);
+ tx.Commit();
+ }
+
+ ClearCounts();
+
+ p.Details.SomePersonalDetail = p.Details.SomePersonalDetail + " and big hands too";
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ p = (Person) s.Merge(p);
+ tx.Commit();
+ }
+
+ AssertInsertCount(0);
+ AssertUpdateCount(1);
+ AssertDeleteCount(0);
+
+ using (ISession s = OpenSession())
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ s.Delete(p);
+ tx.Commit();
+ }
+ }
+
+ [Test]
+ public void MergeDeepTree()
+ {
+ ClearCounts();
+
+ ISession s = OpenSession();
+ ITransaction tx = s.BeginTransaction();
+ var root = new Node {Name = "root"};
+ var child = new Node {Name = "child"};
+ var grandchild = new Node {Name = "grandchild"};
+ root.AddChild(child);
+ child.AddChild(grandchild);
+ s.Merge(root);
+ tx.Commit();
+ s.Close();
+
+ AssertInsertCount(3);
+ AssertUpdateCount(0);
+ ClearCounts();
+
+ grandchild.Description = "the grand child";
+ var grandchild2 = new Node {Name = "grandchild2"};
+ child.AddChild(grandchild2);
+
+ s = OpenSession();
+ tx = s.BeginTransaction();
+ s.Merge(root);
+ tx.Commit();
+ s.Close();
+
+ AssertInsertCount(1);
+ AssertUpdateCount(1);
+ ClearCounts();
+
+ var child2 = new Node {Name = "child2"};
+ var grandchild3 = new Node {Name = "grandchild3"};
+ child2.AddChild(grandchild3);
+ root.AddChild(child2);
+
+ s = OpenSession();
+ tx = s.BeginTransaction();
+ s.Merge(root);
+ tx.Commit();
+ s.Close();
+
+ AssertInsertCount(2);
+ AssertUpdateCount(0);
+ ClearCounts();
+
+ s = OpenSession();
+ tx = s.BeginTransaction();
+ s.Delete(grandchild);
+ s.Delete(grandchild2);
+ s.Delete(grandchild3);
+ s.Delete(child);
+ s.Delete(child2);
+ s.Delete(root);
+ tx.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void MergeDeepTreeWithGeneratedId()
+ {
+ ClearCounts();
+
+ NumberedNode root;
+ NumberedNode child;
+ NumberedNode grandchild;
+ using (ISession s = OpenSession())
+ {
+ ITransaction tx = s.BeginTransaction();
+ root = new NumberedNode("root");
+ child = new NumberedNode("child");
+ grandchild = new NumberedNode("grandchild");
+ root.AddChild(child);
+ child.AddChild(grandchild);
+ root = (NumberedNode) s.Merge(root);
+ tx.Commit();
+ }
+
+ AssertInsertCount(3);
+ AssertUpdateCount(0);
+ ClearCounts();
+
+ IEnumerator<NumberedNode> rit = root.Children.GetEnumerator();
+ rit.MoveNext();
+ child = rit.Current;
+ IEnumerator<NumberedNode> cit = child.Children.GetEnumerator();
+ cit.MoveNext();
+ grandchild = cit.Current;
+ grandchild.Description = "the grand child";
+ var grandchild2 = new NumberedNode("grandchild2");
+ child.AddChild(grandchild2);
+
+ using (ISession s = OpenSession())
+ {
+ ITransaction tx = s.BeginTransaction();
+ root = (NumberedNode) s.Merge(root);
+ tx.Commit();
+ }
+
+ AssertInsertCount(1);
+ AssertUpdateCount(1);
+ ClearCounts();
+
+ sessions.Evict(typeof (NumberedNode));
+
+ var child2 = new NumberedNode("child2");
+ var grandchild3 = new NumberedNode("grandchild3");
+ child2.AddChild(grandchild3);
+ root.AddChild(child2);
+
+ using (ISession s = OpenSession())
+ {
+ ITransaction tx = s.BeginTransaction();
+ root = (NumberedNode) s.Merge(root);
+ tx.Commit();
+ }
+
+ AssertInsertCount(2);
+ AssertUpdateCount(0);
+ ClearCounts();
+
+ using (ISession s = OpenSession())
+ {
+ ITransaction tx = s.BeginTransaction();
+ s.Delete("from NumberedNode where name like 'grand%'");
+ s.Delete("from NumberedNode where name like 'child%'");
+ s.Delete("from NumberedNode");
+ tx.Commit();
+ }
+ }
+
+ [Test]
+ public void MergeManaged()
+ {
+ ISession s = OpenSession();
+ ITransaction tx = s.BeginTransaction();
+ var root = new NumberedNode("root");
+ s.Persist(root);
+ tx.Commit();
+
+ ClearCounts();
+
+ tx = s.BeginTransaction();
+ var child = new NumberedNode("child");
+ root.AddChild(child);
+ Assert.That(s.Merge(root), Is.SameAs(root));
+ IEnumerator<NumberedNode> rit = root.Children.GetEnumerator();
+ rit.MoveNext();
+ NumberedNode mergedChild = rit.Current;
+ Assert.That(mergedChild, Is.Not.SameAs(child));
+ Assert.That(s.Contains(mergedChild));
+ Assert.That(! s.Contains(child));
+ Assert.That(root.Children.Count, Is.EqualTo(1));
+ Assert.That(root.Children.Contains(mergedChild));
+ //assertNotSame( mergedChild, s.Merge(child) ); //yucky :(
+ tx.Commit();
+
+ AssertInsertCount(1);
+ AssertUpdateCount(0);
+
+ Assert.That(root.Children.Count, Is.EqualTo(1));
+ Assert.That(root.Children.Contains(mergedChild));
+
+ tx = s.BeginTransaction();
+ Assert.That(s.CreateCriteria(typeof (NumberedNode)).SetProjection(Projections.RowCount()).UniqueResult(),
+ Is.EqualTo(2));
+ tx.Rollback();
+ s.Close();
+ }
+
+ [Test]
+ public void MergeManyToManyWithCollectionDeference()
+ {
+ // setup base data...
+ ISession s = OpenSession();
+ ITransaction tx = s.BeginTransaction();
+ var competition = new Competition();
+ competition.Competitors.Add(new Competitor {Name = "Name"});
+ competition.Competitors.Add(new Competitor());
+ competition.Competitors.Add(new Competitor());
+ s.Persist(competition);
+ tx.Commit();
+ s.Close();
+
+ // the competition graph is now detached:
+ // 1) create a new List reference to represent the competitors
+ s = OpenSession();
+ tx = s.BeginTransaction();
+ var newComp = new List<Competitor>();
+ Competitor originalCompetitor = competition.Competitors[0];
+ originalCompetitor.Name = "Name2";
+ newComp.Add(originalCompetitor);
+ newComp.Add(new Competitor());
+ // 2) set that new List reference unto the Competition reference
+ competition.Competitors = newComp;
+ // 3) attempt the merge
+ var competition2 = (Competition) s.Merge(competition);
+ tx.Commit();
+ s.Close();
+
+ Assert.That(!(competition == competition2));
+ Assert.That(!(competition.Competitors == competition2.Competitors));
+ Assert.That(competition2.Competitors.Count, Is.EqualTo(2));
+
+ s = OpenSession();
+ tx = s.BeginTransaction();
+ competition = s.Get<Competition>(competition.Id);
+ Assert.That(competition.Competitors.Count, Is.EqualTo(2));
+ s.Delete(competition);
+ tx.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void MergeStaleVersionFails()
+ {
+ ISession s = OpenSession();
+ s.BeginTransaction();
+ var entity = new VersionedEntity {Id = "entity", Name = "entity"};
+ s.Persist(entity);
+ s.Transaction.Commit();
+ s.Close();
+
+ // make the detached 'entity' reference stale...
+ s = OpenSession();
+ s.BeginTransaction();
+ var entity2 = s.Get<VersionedEntity>(entity.Id);
+ entity2.Name = "entity-name";
+ s.Transaction.Commit();
+ s.Close();
+
+ // now try to reattch it
+ s = OpenSession();
+ s.BeginTransaction();
+ try
+ {
+ s.Merge(entity);
+ s.Transaction.Commit();
+ Assert.Fail("was expecting staleness error");
+ }
+ catch (StaleObjectStateException)
+ {
+ // expected outcome...
+ }
+ finally
+ {
+ s.Transaction.Rollback();
+ s.Close();
+ Cleanup();
+ }
+ }
+
+ [Test]
+ public void MergeTree()
+ {
+ ClearCounts();
+
+ ISession s = OpenSession();
+ ITransaction tx = s.BeginTransaction();
+ var root = new Node {Name = "root"};
+ var child = new Node {Name = "child"};
+ root.AddChild(child);
+ s.Persist(root);
+ tx.Commit();
+ s.Close();
+
+ AssertInsertCount(2);
+ ClearCounts();
+
+ root.Description = "The root node";
+ child.Description = "The child node";
+
+ var secondChild = new Node {Name = "second child"};
+
+ root.AddChild(secondChild);
+
+ s = OpenSession();
+ tx = s.BeginTransaction();
+ s.Merge(root);
+ tx.Commit();
+ s.Close();
+
+ AssertInsertCount(1);
+ AssertUpdateCount(2);
+ }
+
+ [Test]
+ public void MergeTreeWithGeneratedId()
+ {
+ ClearCounts();
+
+ ISession s = OpenSession();
+ ITransaction tx = s.BeginTransaction();
+ var root = new NumberedNode("root");
+ var child = new NumberedNode("child");
+ root.AddChild(child);
+ s.Persist(root);
+ tx.Commit();
+ s.Close();
+
+ AssertInsertCount(2);
+ ClearCounts();
+
+ root.Description = "The root node";
+ child.Description = "The child node";
+
+ var secondChild = new NumberedNode("second child");
+
+ root.AddChild(secondChild);
+
+ s = OpenSession();
+ tx = s.BeginTransaction();
+ s.Merge(root);
+ tx.Commit();
+ s.Close();
+
+ AssertInsertCount(1);
+ AssertUpdateCount(2);
+ }
+
+ [Test]
+ public void NoExtraUpdatesOnMerge()
+ {
+ ISession s = OpenSession();
+ s.BeginTransaction();
+ var node = new Node {Name = "test"};
+ s.Persist(node);
+ s.Transaction.Commit();
+ s.Close();
+
+ ClearCounts();
+
+ // node is now detached, but we have made no changes. so attempt to merge it
+ // into this new session; this should cause no updates...
+ s = OpenSession();
+ s.BeginTransaction();
+ node = (Node) s.Merge(node);
+ s.Transaction.Commit();
+ s.Close();
+
+ AssertUpdateCount(0);
+ AssertInsertCount(0);
+
+ ///////////////////////////////////////////////////////////////////////
+ // as a control measure, now update the node while it is detached and
+ // make sure we get an update as a result...
+ node.Description = "new description";
+ s = OpenSession();
+ s.BeginTransaction();
+ node = (Node) s.Merge(node);
+ s.Transaction.Commit();
+ s.Close();
+ AssertUpdateCount(1);
+ AssertInsertCount(0);
+ ///////////////////////////////////////////////////////////////////////
+ }
+
+ [Test]
+ public void NoExtraUpdatesOnMergeVersioned()
+ {
+ ISession s = OpenSession();
+ s.BeginTransaction();
+ var entity = new VersionedEntity {Id = "entity", Name = "entity"};
+ s.Persist(entity);
+ s.Transaction.Commit();
+ s.Close();
+
+ ClearCounts();
+
+ // entity is now detached, but we have made no changes. so attempt to merge it
+ // into this new session; this should cause no updates...
+ s = OpenSession();
+ s.BeginTransaction();
+ var mergedEntity = (VersionedEntity) s.Merge(entity);
+ s.Transaction.Commit();
+ s.Close();
+
+ AssertUpdateCount(0);
+ AssertInsertCount(0);
+ Assert.That(entity.Version, Is.EqualTo(mergedEntity.Version), "unexpected version increment");
+
+ ///////////////////////////////////////////////////////////////////////
+ // as a control measure, now update the node while it is detached and
+ // make sure we get an update as a result...
+ entity.Name = "new name";
+ s = OpenSession();
+ s.BeginTransaction();
+ entity = (VersionedEntity) s.Merge(entity);
+ s.Transaction.Commit();
+ s.Close();
+ AssertUpdateCount(1);
+ AssertInsertCount(0);
+ ///////////////////////////////////////////////////////////////////////
+ }
+
+ [Test]
+ public void NoExtraUpdatesOnMergeVersionedWithCollection()
+ {
+ ISession s = OpenSession();
+ s.BeginTransaction();
+ var parent = new VersionedEntity {Id = "parent", Name = "parent"};
+ var child = new VersionedEntity {Id = "child", Name = "child"};
+ parent.Children.Add(child);
+ child.Parent = parent;
+ s.Persist(parent);
+ s.Transaction.Commit();
+ s.Close();
+
+ ClearCounts();
+
+ // parent is now detached, but we have made no changes. so attempt to merge it
+ // into this new session; this should cause no updates...
+ s = OpenSession();
+ s.BeginTransaction();
+ var mergedParent = (VersionedEntity) s.Merge(parent);
+ s.Transaction.Commit();
+ s.Close();
+
+ AssertUpdateCount(0);
+ AssertInsertCount(0);
+ Assert.That(parent.Version, Is.EqualTo(mergedParent.Version), "unexpected parent version increment");
+ IEnumerator<VersionedEntity> it = mergedParent.Children.GetEnumerator();
+ it.MoveNext();
+ VersionedEntity mergedChild = it.Current;
+ Assert.That(child.Version, Is.EqualTo(mergedChild.Version), "unexpected child version increment");
+
+ ///////////////////////////////////////////////////////////////////////
+ // as a control measure, now update the node while it is detached and
+ // make sure we get an update as a result...
+ mergedParent.Name = "new name";
+ mergedParent.Children.Add(new VersionedEntity {Id = "child2", Name = "new child"});
+ s = OpenSession();
+ s.BeginTransaction();
+ parent = (VersionedEntity) s.Merge(mergedParent);
+ s.Transaction.Commit();
+ s.Close();
+ AssertUpdateCount(1);
+ AssertInsertCount(1);
+ ///////////////////////////////////////////////////////////////////////
+ }
+
+ [Test]
+ public void NoExtraUpdatesOnMergeWithCollection()
+ {
+ ISession s = OpenSession();
+ s.BeginTransaction();
+ var parent = new Node {Name = "parent"};
+ var child = new Node {Name = "child"};
+ parent.Children.Add(child);
+ child.Parent = parent;
+ s.Persist(parent);
+ s.Transaction.Commit();
+ s.Close();
+
+ ClearCounts();
+
+ // parent is now detached, but we have made no changes. so attempt to merge it
+ // into this new session; this should cause no updates...
+ s = OpenSession();
+ s.BeginTransaction();
+ parent = (Node) s.Merge(parent);
+ s.Transaction.Commit();
+ s.Close();
+
+ AssertUpdateCount(0);
+ AssertInsertCount(0);
+
+ ///////////////////////////////////////////////////////////////////////
+ // as a control measure, now update the node while it is detached and
+ // make sure we get an update as a result...
+ IEnumerator<Node> it = parent.Children.GetEnumerator();
+ it.MoveNext();
+ it.Current.Description = "child's new description";
+ parent.Children.Add(new Node {Name = "second child"});
+ s = OpenSession();
+ s.BeginTransaction();
+ parent = (Node) s.Merge(parent);
+ s.Transaction.Commit();
+ s.Close();
+ AssertUpdateCount(1);
+ AssertInsertCount(1);
+ ///////////////////////////////////////////////////////////////////////
+ }
+
+ [Test]
+ public void PersistThenMergeInSameTxnWithTimestamp()
+ {
+ ISession s = OpenSession();
+ ITransaction tx = s.BeginTransaction();
+ var entity = new TimestampedEntity {Id = "test", Name = "test"};
+ s.Persist(entity);
+ s.Merge(new TimestampedEntity {Id = "test", Name = "test-2"});
+
+ try
+ {
+ // control operation...
+ s.SaveOrUpdate(new TimestampedEntity {Id = "test", Name = "test-3"});
+ Assert.Fail("saveOrUpdate() should fail here");
+ }
+ catch (NonUniqueObjectException)
+ {
+ // expected behavior
+ }
+
+ tx.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void PersistThenMergeInSameTxnWithVersion()
+ {
+ ISession s = OpenSession();
+ ITransaction tx = s.BeginTransaction();
+ var entity = new VersionedEntity {Id = "test", Name = "test"};
+ s.Persist(entity);
+ s.Merge(new VersionedEntity {Id = "test", Name = "test-2"});
+
+ try
+ {
+ // control operation...
+ s.SaveOrUpdate(new VersionedEntity {Id = "test", Name = "test-3"});
+ Assert.Fail("saveOrUpdate() should fail here");
+ }
+ catch (NonUniqueObjectException)
+ {
+ // expected behavior
+ }
+
+ tx.Commit();
+ s.Close();
+ }
+
+ [Test]
+ public void RecursiveMergeTransient()
+ {
+ using (ISession s = OpenSession())
+ {
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ var jboss = new Employer();
+ var gavin = new Employee();
+ jboss.Employees = new List<Employee> {gavin};
+ s.Merge(jboss);
+ s.Flush();
+ jboss = s.CreateQuery("from Employer e join fetch e.Employees").UniqueResult<Employer>();
+ Assert.That(NHibernateUtil.IsInitialized(jboss.Employees));
+ Assert.That(jboss.Employees.Count, Is.EqualTo(1));
+ s.Clear();
+ IEnumerator<Employee> it = jboss.Employees.GetEnumerator();
+ it.MoveNext();
+
+ s.Merge(it.Current);
+ tx.Commit();
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/Operations/Node.cs
==============================================================...
[truncated message content] |
|
From: <te...@us...> - 2008-11-15 19:45:04
|
Revision: 3911
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3911&view=rev
Author: tehlike
Date: 2008-11-15 19:44:59 +0000 (Sat, 15 Nov 2008)
Log Message:
-----------
Test added to illustrate the use of EnumStringType<T> class (NHibernate.Test/TypesTest/GenericEnumStringTypeFixture.cs)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringClass.cs
trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringClass.hbm.xml
trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringTypeFixture.cs
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-14 15:53:37 UTC (rev 3910)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-15 19:44:59 UTC (rev 3911)
@@ -911,6 +911,8 @@
<Compile Include="TypesTest\EnumCharTypeFixture.cs" />
<Compile Include="TypesTest\EnumStringClass.cs" />
<Compile Include="TypesTest\EnumStringTypeFixture.cs" />
+ <Compile Include="TypesTest\GenericEnumStringClass.cs" />
+ <Compile Include="TypesTest\GenericEnumStringTypeFixture.cs" />
<Compile Include="TypesTest\GuidClass.cs" />
<Compile Include="TypesTest\GuidTypeFixture.cs" />
<Compile Include="TypesTest\Int16TypeFixture.cs" />
@@ -1533,6 +1535,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="TypesTest\GenericEnumStringClass.hbm.xml" />
<EmbeddedResource Include="Operations\Competition.hbm.xml" />
<EmbeddedResource Include="Operations\Employer.hbm.xml" />
<EmbeddedResource Include="Operations\Node.hbm.xml" />
Added: trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringClass.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringClass.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringClass.cs 2008-11-15 19:44:59 UTC (rev 3911)
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NHibernate.Test.TypesTest
+{
+ public class GenericEnumStringClass
+ {
+ public virtual int Id
+ {
+ get;
+ set;
+ }
+
+ public virtual SampleEnum EnumValue
+ {
+ get;
+ set;
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringClass.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringClass.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringClass.hbm.xml 2008-11-15 19:44:59 UTC (rev 3911)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-lazy="false">
+
+ <class name="NHibernate.Test.TypesTest.GenericEnumStringClass, NHibernate.Test" table="bc_estr">
+ <id name="Id" column="id">
+ <generator class="assigned" />
+ </id>
+
+ <property name="EnumValue" type="NHibernate.Type.EnumStringType`1[[NHibernate.Test.TypesTest.SampleEnum, NHibernate.Test]], NHibernate" column="enumc"/>
+ </class>
+</hibernate-mapping>
Property changes on: trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringClass.hbm.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Added: trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringTypeFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringTypeFixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/TypesTest/GenericEnumStringTypeFixture.cs 2008-11-15 19:44:59 UTC (rev 3911)
@@ -0,0 +1,93 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+
+namespace NHibernate.Test.TypesTest
+{
+ [TestFixture]
+ public class GenericEnumStringTypeFixture : TypeFixtureBase
+ {
+ protected override string TypeName
+ {
+ get { return "GenericEnumString"; }
+ }
+
+ protected override void OnSetUp()
+ {
+ GenericEnumStringClass basic = new GenericEnumStringClass();
+ basic.Id = 1;
+ basic.EnumValue = SampleEnum.Dimmed;
+
+ GenericEnumStringClass basic2 = new GenericEnumStringClass();
+ basic2.Id = 2;
+ basic2.EnumValue = SampleEnum.On;
+
+ ISession s = OpenSession();
+ s.Save(basic);
+ s.Save(basic2);
+ s.Flush();
+ s.Close();
+ }
+
+ protected override void OnTearDown()
+ {
+ ISession s = OpenSession();
+ s.Delete("from GenericEnumStringClass");
+ s.Flush();
+ s.Close();
+ }
+
+
+ [Test]
+ public void ReadFromLoad()
+ {
+ ISession s = OpenSession();
+
+ GenericEnumStringClass basic = (GenericEnumStringClass)s.Load(typeof(GenericEnumStringClass), 1);
+ Assert.AreEqual(SampleEnum.Dimmed, basic.EnumValue);
+
+ GenericEnumStringClass basic2 = (GenericEnumStringClass)s.Load(typeof(GenericEnumStringClass), 2);
+ Assert.AreEqual(SampleEnum.On, basic2.EnumValue);
+
+ s.Close();
+ }
+
+ [Test]
+ public void ReadFromQuery()
+ {
+ ISession s = OpenSession();
+
+ IQuery q = s.CreateQuery("from GenericEnumStringClass as esc where esc.EnumValue=:enumValue");
+ q.SetParameter("enumValue", SampleEnum.On, new SampleEnumType());
+ IList results = q.List();
+
+ Assert.AreEqual(1, results.Count, "only 1 was 'On'");
+
+ q.SetParameter("enumValue", SampleEnum.Off, new SampleEnumType());
+ results = q.List();
+
+ Assert.AreEqual(0, results.Count, "should not be any in the 'Off' status");
+
+ s.Close();
+
+ // it will also be possible to query based on a string value
+ // since that is what is in the db
+ s = OpenSession();
+
+ q = s.CreateQuery("from GenericEnumStringClass as esc where esc.EnumValue=:stringValue");
+ q.SetString("stringValue", "On");
+ results = q.List();
+
+ Assert.AreEqual(1, results.Count, "only 1 was 'On' string");
+
+ q.SetString("stringValue", "Off");
+ results = q.List();
+
+ Assert.AreEqual(0, results.Count, "should not be any in the 'Off' string");
+
+ s.Close();
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <te...@us...> - 2008-11-17 13:59:27
|
Revision: 3914
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3914&view=rev
Author: tehlike
Date: 2008-11-17 13:59:23 +0000 (Mon, 17 Nov 2008)
Log Message:
-----------
Relocating tests for SchemaUpdate.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/1_Version.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/2_Version.hbm.xml
trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/MigrationFixture.cs
trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/Version.cs
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/
Removed Paths:
-------------
trunk/nhibernate/src/NHibernate.Test/SchemaUpdate/
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-16 22:37:57 UTC (rev 3913)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-17 13:59:23 UTC (rev 3914)
@@ -818,8 +818,8 @@
<Compile Include="QueryTest\PositionalParametersFixture.cs" />
<Compile Include="QueryTest\QueryParametersFixture.cs" />
<Compile Include="ReflectionOptimizerTest\LcgFixture.cs" />
- <Compile Include="SchemaUpdate\MigrationFixture.cs" />
- <Compile Include="SchemaUpdate\Version.cs" />
+ <Compile Include="Tools\hbm2ddl\SchemaUpdate\MigrationFixture.cs" />
+ <Compile Include="Tools\hbm2ddl\SchemaUpdate\Version.cs" />
<Compile Include="SecondLevelCacheTest\AnotherItem.cs" />
<Compile Include="SecondLevelCacheTest\Item.cs" />
<Compile Include="SecondLevelCacheTest\SecondLevelCacheTest.cs" />
@@ -1396,8 +1396,8 @@
<EmbeddedResource Include="NHSpecificTest\NH995\Mappings.hbm.xml" />
</ItemGroup>
<ItemGroup>
- <EmbeddedResource Include="SchemaUpdate\1_Version.hbm.xml" />
- <EmbeddedResource Include="SchemaUpdate\2_Version.hbm.xml" />
+ <EmbeddedResource Include="Tools\hbm2ddl\SchemaUpdate\1_Version.hbm.xml" />
+ <EmbeddedResource Include="Tools\hbm2ddl\SchemaUpdate\2_Version.hbm.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="BulkManipulation\Vehicle.hbm.xml" />
Property changes on: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate
___________________________________________________________________
Added: svn:mergeinfo
+
Modified: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/1_Version.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/SchemaUpdate/1_Version.hbm.xml 2008-11-14 15:53:37 UTC (rev 3910)
+++ trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/1_Version.hbm.xml 2008-11-17 13:59:23 UTC (rev 3914)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
- namespace="NHibernate.Test.SchemaUpdate"
+ namespace="NHibernate.Test.Tools.hbm2ddl.SchemaUpdate"
assembly="NHibernate.Test">
<class name="Version">
Modified: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/2_Version.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/SchemaUpdate/2_Version.hbm.xml 2008-11-14 15:53:37 UTC (rev 3910)
+++ trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/2_Version.hbm.xml 2008-11-17 13:59:23 UTC (rev 3914)
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
- namespace="NHibernate.Test.SchemaUpdate"
+ namespace="NHibernate.Test.Tools.hbm2ddl.SchemaUpdate"
assembly="NHibernate.Test">
<class name="Version">
Modified: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/MigrationFixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/SchemaUpdate/MigrationFixture.cs 2008-11-14 15:53:37 UTC (rev 3910)
+++ trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/MigrationFixture.cs 2008-11-17 13:59:23 UTC (rev 3914)
@@ -5,7 +5,7 @@
using NHibernate.Tool.hbm2ddl;
using NUnit.Framework;
-namespace NHibernate.Test.SchemaUpdate
+namespace NHibernate.Test.Tools.hbm2ddl.SchemaUpdate
{
[TestFixture]
public class MigrationFixture
@@ -13,8 +13,8 @@
[Test]
public void SimpleColumnAddition()
{
- String resource2 = "NHibernate.Test.SchemaUpdate.2_Version.hbm.xml";
- String resource1 = "NHibernate.Test.SchemaUpdate.1_Version.hbm.xml";
+ String resource2 = "NHibernate.Test.Tools.hbm2ddl.SchemaUpdate.2_Version.hbm.xml";
+ String resource1 = "NHibernate.Test.Tools.hbm2ddl.SchemaUpdate.1_Version.hbm.xml";
Configuration v1cfg = TestConfigurationHelper.GetDefaultConfiguration();
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource1))
Modified: trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/Version.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/SchemaUpdate/Version.cs 2008-11-14 15:53:37 UTC (rev 3910)
+++ trunk/nhibernate/src/NHibernate.Test/Tools/hbm2ddl/SchemaUpdate/Version.cs 2008-11-17 13:59:23 UTC (rev 3914)
@@ -1,4 +1,4 @@
-namespace NHibernate.Test.SchemaUpdate
+namespace NHibernate.Test.Tools.hbm2ddl.SchemaUpdate
{
public class Version
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-11-17 21:54:08
|
Revision: 3917
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3917&view=rev
Author: fabiomaulo
Date: 2008-11-17 21:54:06 +0000 (Mon, 17 Nov 2008)
Log Message:
-----------
Test for NH-1556 (fixed in some moment on trunk but the test is useful for others matters involved with NsSQL2005 dialect)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Claim.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Patient.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Product.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/ProductIdentifier.cs
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Claim.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Claim.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Claim.cs 2008-11-17 21:54:06 UTC (rev 3917)
@@ -0,0 +1,43 @@
+using System;
+
+namespace NHibernate.Test.NHSpecificTest.NH1556
+{
+ public class Claim
+ {
+ private Guid id;
+ private DateTime lastFilled;
+ private ProductIdentifier productIdentifier;
+ private Patient patient;
+
+ protected Claim()
+ {
+ }
+
+ public Claim(Patient patient, DateTime lastFilled, ProductIdentifier productIdentifier)
+ {
+ this.patient = patient;
+ this.lastFilled = lastFilled;
+ this.productIdentifier = productIdentifier;
+ }
+
+ public virtual Guid Id
+ {
+ get { return id; }
+ }
+
+ public virtual DateTime LastFilled
+ {
+ get { return lastFilled; }
+ }
+
+ public virtual ProductIdentifier ProductIdentifier
+ {
+ get { return productIdentifier; }
+ }
+
+ public virtual Patient Patient
+ {
+ get { return patient; }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Fixture.cs 2008-11-17 21:54:06 UTC (rev 3917)
@@ -0,0 +1,86 @@
+using System;
+using System.Collections;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1556
+{
+ [TestFixture]
+ public class Fixture : BugTestCase
+ {
+ private Patient patient;
+
+ protected override void OnSetUp()
+ {
+ var prozac = new Product("Prozac");
+ var prozacId1 = new ProductIdentifier("12345-2345-11", prozac);
+ var prozacId2 = new ProductIdentifier("12345-2345-12", prozac);
+
+ var warfarin = new Product("Warfarin");
+ var warfarinId3 = new ProductIdentifier("12345-4321-13", warfarin);
+
+ patient = new Patient("John", "Doe");
+
+ var prozacClaim1 = new Claim(patient, new DateTime(2000, 1, 1), prozacId1);
+ var prozacClaim2 = new Claim(patient, new DateTime(2001, 1, 1), prozacId2);
+ var warfarinClaim1 = new Claim(patient, new DateTime(2000, 4, 1), warfarinId3);
+
+ using (ISession session = OpenSession())
+ {
+ using (ITransaction tx = session.BeginTransaction())
+ {
+ session.Save(prozac);
+ session.Save(warfarin);
+ session.Save(patient);
+ session.Save(prozacClaim1);
+ session.Save(prozacClaim2);
+ session.Save(warfarinClaim1);
+
+ tx.Commit();
+ }
+ }
+ }
+
+ protected override void OnTearDown()
+ {
+ using (ISession session = OpenSession())
+ {
+ using (ITransaction tx = session.BeginTransaction())
+ {
+ session.Delete("from Claim");
+ session.Delete("from Patient");
+ session.Delete("from ProductIdentifier");
+ session.Delete("from Product");
+ tx.Commit();
+ }
+ }
+ }
+
+ [Test]
+ public void CanOrderByAggregate()
+ {
+ using (ISession session = OpenSession())
+ {
+ using (ITransaction tx = session.BeginTransaction())
+ {
+ var loadedPatient = session.Get<Patient>(patient.Id);
+
+ IList list =
+ session.CreateQuery(
+ @"select p.Id, p.ProductName, max(c.LastFilled), count(c.Id)
+from Claim as c
+from c.ProductIdentifier.Product as p
+where c.Patient = :patient
+group by p.Id, p.ProductName
+order by max(c.LastFilled) asc, p.ProductName")
+ .SetParameter("patient", loadedPatient).SetFirstResult(0).SetMaxResults(2).List();
+
+ Assert.AreEqual(2, list.Count);
+ Assert.AreEqual(new DateTime(2000, 4, 1), ((object[]) list[0])[2]);
+ Assert.AreEqual(new DateTime(2001, 1, 1), ((object[]) list[1])[2]);
+ Assert.AreEqual(1, ((object[]) list[0])[3]);
+ Assert.AreEqual(2, ((object[]) list[1])[3]);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Mappings.hbm.xml 2008-11-17 21:54:06 UTC (rev 3917)
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
+ default-access="nosetter.camelcase"
+ assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH1556">
+
+ <class name="Claim" table="Claims">
+ <id name="Id" column="Id" type="System.Guid">
+ <generator class="guid.comb" />
+ </id>
+ <property type="System.DateTime" not-null="true" name="LastFilled" column="[LastFilled]" />
+ <many-to-one name="ProductIdentifier" cascade="none" column="ProductIdentifierId" not-null="true" class="ProductIdentifier" />
+ <many-to-one name="Patient" cascade="none" column="PatientId" not-null="true" class="Patient" />
+ </class>
+
+ <class name="Patient" table="Patients">
+ <id name="Id" column="Id" type="System.Int64">
+ <generator class="native" />
+ </id>
+ <property type="System.String" not-null="true" name="FirstName" column="[FirstName]" />
+ <property type="System.String" not-null="true" name="LastName" column="[LastName]" />
+ </class>
+
+ <class name="ProductIdentifier" table="ProductIdentifier">
+ <id name="Id" column="Id" type="System.Int64">
+ <generator class="native" />
+ </id>
+ <property type="System.String" not-null="true" name="IdentifierField" column="[IdentifierField]" />
+ <many-to-one name="Product" cascade="none" column="ProductId" class="Product" />
+ </class>
+
+ <class name="Product" table="Product">
+ <id name="Id" column="Id" type="System.Int64">
+ <generator class="native" />
+ </id>
+ <property type="System.String" not-null="true" name="ProductName" column="[ProductName]" unique="true" />
+ <bag name="ProductIdentifiers" inverse="true" lazy="true" cascade="all">
+ <key column="ProductId" />
+ <one-to-many class="ProductIdentifier" />
+ </bag>
+ </class>
+
+</hibernate-mapping>
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Patient.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Patient.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Patient.cs 2008-11-17 21:54:06 UTC (rev 3917)
@@ -0,0 +1,34 @@
+namespace NHibernate.Test.NHSpecificTest.NH1556
+{
+ public class Patient
+ {
+ private long id;
+ private string firstName;
+ private string lastName;
+
+ protected Patient()
+ {
+ }
+
+ public Patient(string firstName, string lastName)
+ {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public virtual long Id
+ {
+ get { return id; }
+ }
+
+ public virtual string FirstName
+ {
+ get { return firstName; }
+ }
+
+ public virtual string LastName
+ {
+ get { return lastName; }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Product.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Product.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/Product.cs 2008-11-17 21:54:06 UTC (rev 3917)
@@ -0,0 +1,40 @@
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.NH1556
+{
+ public class Product
+ {
+ protected Product()
+ {
+ productIdentifiers = new List<ProductIdentifier>();
+ }
+
+ public Product(string productName) : this()
+ {
+ this.productName = productName;
+ }
+
+ private long id;
+ public virtual long Id
+ {
+ get { return id; }
+ }
+
+ private string productName;
+ public virtual string ProductName
+ {
+ get { return productName; }
+ }
+
+ private IList<ProductIdentifier> productIdentifiers;
+ public virtual IList<ProductIdentifier> ProductIdentifiers
+ {
+ get { return productIdentifiers; }
+ }
+
+ public virtual void AddIdentifier(ProductIdentifier productIdentifier)
+ {
+ productIdentifiers.Add(productIdentifier);
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/ProductIdentifier.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/ProductIdentifier.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1556/ProductIdentifier.cs 2008-11-17 21:54:06 UTC (rev 3917)
@@ -0,0 +1,34 @@
+namespace NHibernate.Test.NHSpecificTest.NH1556
+{
+ public class ProductIdentifier
+ {
+ protected ProductIdentifier()
+ {
+ }
+
+ public ProductIdentifier(string identifierField, Product product)
+ {
+ this.identifierField = identifierField;
+ this.product = product;
+ this.product.AddIdentifier(this);
+ }
+
+ private long id;
+ public virtual long Id
+ {
+ get { return id; }
+ }
+
+ private string identifierField;
+ public virtual string IdentifierField
+ {
+ get { return identifierField; }
+ }
+
+ private Product product;
+ public virtual Product Product
+ {
+ get { return product; }
+ }
+ }
+}
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-17 21:34:20 UTC (rev 3916)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-17 21:54:06 UTC (rev 3917)
@@ -519,6 +519,11 @@
<Compile Include="NHSpecificTest\NH1508\Fixture.cs" />
<Compile Include="NHSpecificTest\NH1508\Person.cs" />
<Compile Include="NHSpecificTest\NH1515\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1556\Claim.cs" />
+ <Compile Include="NHSpecificTest\NH1556\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH1556\Patient.cs" />
+ <Compile Include="NHSpecificTest\NH1556\Product.cs" />
+ <Compile Include="NHSpecificTest\NH1556\ProductIdentifier.cs" />
<Compile Include="NHSpecificTest\NH280\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Foo.cs" />
<Compile Include="NHSpecificTest\NH1018\Employee.cs" />
@@ -1537,6 +1542,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1556\Mappings.hbm.xml" />
<EmbeddedResource Include="Tools\hbm2ddl\SchemaValidator\2_Version.hbm.xml" />
<EmbeddedResource Include="Tools\hbm2ddl\SchemaValidator\1_Version.hbm.xml" />
<EmbeddedResource Include="TypesTest\GenericEnumStringClass.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fab...@us...> - 2008-11-25 13:30:21
|
Revision: 3924
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3924&view=rev
Author: fabiomaulo
Date: 2008-11-25 13:30:17 +0000 (Tue, 25 Nov 2008)
Log Message:
-----------
Test for NH-1587 (only test because there are some existing failing tests to fix)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/A.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Mappings.hbm.xml
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/A.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/A.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/A.cs 2008-11-25 13:30:17 UTC (rev 3924)
@@ -0,0 +1,7 @@
+namespace NHibernate.Test.NHSpecificTest.NH1587
+{
+ public class A
+ {
+ public virtual string Description { get; set; }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Fixture.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Fixture.cs 2008-11-25 13:30:17 UTC (rev 3924)
@@ -0,0 +1,37 @@
+using log4net.Config;
+using log4net.Core;
+using NHibernate.Cfg;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH1587
+{
+ [TestFixture]
+ public class Fixture
+ {
+ [Test, Ignore("Not fixed yet")]
+ public void Bug()
+ {
+ XmlConfigurator.Configure();
+ var cfg = new Configuration();
+ if (TestConfigurationHelper.hibernateConfigFile != null)
+ cfg.Configure(TestConfigurationHelper.hibernateConfigFile);
+ cfg.AddResource("NHibernate.Test.NHSpecificTest.NH1587.Mappings.hbm.xml", GetType().Assembly);
+ cfg.Configure();
+
+ bool useOptimizer= false;
+ using (var ls = new LogSpy("NHibernate.Tuple.Entity.PocoEntityTuplizer"))
+ {
+ cfg.BuildSessionFactory();
+ foreach (LoggingEvent loggingEvent in ls.Appender.GetEvents())
+ {
+ if (((string)(loggingEvent.MessageObject)).StartsWith("Create Instantiator using optimizer"))
+ {
+ useOptimizer = true;
+ break;
+ }
+ }
+ }
+ Assert.That(useOptimizer);
+ }
+ }
+}
\ No newline at end of file
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Mappings.hbm.xml 2008-11-25 13:30:17 UTC (rev 3924)
@@ -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.NH1587">
+ <class name="A">
+ <id type="int">
+ <generator class="native"/>
+ </id>
+ <property name="Description"/>
+ </class>
+</hibernate-mapping>
Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1587/Mappings.hbm.xml
___________________________________________________________________
Added: svn:mergeinfo
+
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-24 19:56:59 UTC (rev 3923)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-25 13:30:17 UTC (rev 3924)
@@ -524,6 +524,8 @@
<Compile Include="NHSpecificTest\NH1556\Patient.cs" />
<Compile Include="NHSpecificTest\NH1556\Product.cs" />
<Compile Include="NHSpecificTest\NH1556\ProductIdentifier.cs" />
+ <Compile Include="NHSpecificTest\NH1587\A.cs" />
+ <Compile Include="NHSpecificTest\NH1587\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Fixture.cs" />
<Compile Include="NHSpecificTest\NH280\Foo.cs" />
<Compile Include="NHSpecificTest\NH1018\Employee.cs" />
@@ -1542,6 +1544,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH1587\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1556\Mappings.hbm.xml" />
<EmbeddedResource Include="Tools\hbm2ddl\SchemaValidator\2_Version.hbm.xml" />
<EmbeddedResource Include="Tools\hbm2ddl\SchemaValidator\1_Version.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <aye...@us...> - 2008-11-26 04:19:52
|
Revision: 3930
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3930&view=rev
Author: ayenderahien
Date: 2008-11-26 04:19:41 +0000 (Wed, 26 Nov 2008)
Log Message:
-----------
Adding passing tests from Adrian Alexander for NH-298
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/Category.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/IndexedBidirectionalOneToManyTest.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/Mappings.hbm.xml
Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298
___________________________________________________________________
Added: bugtraq:url
+ http://jira.nhibernate.org/browse/%BUGID%
Added: bugtraq:logregex
+ NH-\d+
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/Category.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/Category.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/Category.cs 2008-11-26 04:19:41 UTC (rev 3930)
@@ -0,0 +1,42 @@
+using System.Collections.Generic;
+
+namespace NHibernate.Test.NHSpecificTest.NH298 {
+
+ public class Category {
+ private int id;
+ private string name;
+ private IList<Category> subCategories;
+ private Category parentCategory;
+
+ public int Id {
+ get { return id; }
+ set { id = value; }
+ }
+
+ public string Name {
+ get { return name; }
+ set { name = value; }
+ }
+
+ public IList<Category> SubCategories {
+ get { return subCategories; }
+ private set { subCategories = value; }
+ }
+
+ public Category ParentCategory {
+ get { return parentCategory; }
+ set { parentCategory = value; }
+ }
+
+ public Category( int id, string name, Category parent ) {
+ this.id = id;
+ this.name = name;
+ subCategories = new List<Category>();
+ parentCategory = parent;
+ }
+
+ protected Category() : this( 0, "Unknown Category", null ) { }
+
+ public override string ToString() { return name; }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/IndexedBidirectionalOneToManyTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/IndexedBidirectionalOneToManyTest.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/IndexedBidirectionalOneToManyTest.cs 2008-11-26 04:19:41 UTC (rev 3930)
@@ -0,0 +1,76 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using NHibernate.Dialect;
+using NUnit.Framework;
+
+namespace NHibernate.Test.NHSpecificTest.NH298 {
+
+ [TestFixture]
+ public class IndexedBidirectionalOneToManyTest : BugTestCase {
+
+ protected override void OnSetUp() {
+ base.OnSetUp();
+ using ( ISession session = this.OpenSession() ) {
+ Category root = new Category( 1, "Root", null );
+ root.SubCategories.Add( new Category( 2, "First", root ) );
+ root.SubCategories.Add( new Category( 3, "Second", root ) );
+ root.SubCategories.Add( new Category( 4, "Third", root ) );
+
+ session.Save( root );
+ session.Flush();
+ }
+ }
+
+ protected override void OnTearDown() {
+ base.OnTearDown();
+ using ( ISession session = this.OpenSession() ) {
+ session.Delete( "from System.Object" );
+ //session.CreateSQLQuery( "delete from Category" ).List();
+ session.Flush();
+ }
+ }
+
+ [Test]
+ public void SubItemMovesCorrectly() {
+ Category root1 = null, itemToMove = null;
+
+ using ( ISession session = this.OpenSession() ) {
+ root1 = session.Get<Category>( 1 );
+ itemToMove = root1.SubCategories[1]; //get the middle item
+ root1.SubCategories.Remove( itemToMove ); //remove the middle item
+ root1.SubCategories.Add( itemToMove ); //re-add it to the end
+
+ session.Update( root1 );
+ session.Flush();
+ }
+
+ using ( ISession session = this.OpenSession() ) {
+ Category root2 = session.Get<Category>( 1 );
+ Assert.AreEqual( root1.SubCategories.Count, root2.SubCategories.Count );
+ Assert.AreEqual( root1.SubCategories[1].Id, root2.SubCategories[1].Id );
+ Assert.AreEqual( root1.SubCategories[2].Id, root2.SubCategories[2].Id );
+ Assert.AreEqual( itemToMove.Id, root1.SubCategories[2].Id );
+ }
+ }
+
+ [Test]
+ public void RemoveAtWorksCorrectly() {
+ Category root1 = null;
+
+ using ( ISession session = this.OpenSession() ) {
+ root1 = session.Get<Category>( 1 );
+ root1.SubCategories.RemoveAt( 1 );
+
+ session.Update( root1 );
+ session.Flush();
+ }
+
+ using ( ISession session = this.OpenSession() ) {
+ Category root2 = session.Get<Category>( 1 );
+ Assert.AreEqual( root1.SubCategories.Count, root2.SubCategories.Count );
+ }
+ }
+ }
+}
Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/Mappings.hbm.xml (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH298/Mappings.hbm.xml 2008-11-26 04:19:41 UTC (rev 3930)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" ?>
+
+<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test"
+ namespace="NHibernate.Test.NHSpecificTest.NH298">
+
+ <class name="Category" lazy="false">
+ <id name="Id"><generator class="assigned"/></id>
+ <property name="Name"/>
+ <list name="SubCategories" cascade="all">
+ <key column="ParentCategoryID"/>
+ <index column="PositionInList"/>
+ <one-to-many class="Category"/>
+ </list>
+ <many-to-one name="ParentCategory" column="ParentCategoryID" insert="false" update="false"/>
+ </class>
+
+</hibernate-mapping>
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-25 22:10:57 UTC (rev 3929)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2008-11-26 04:19:41 UTC (rev 3930)
@@ -535,6 +535,8 @@
<Compile Include="NHSpecificTest\NH1054\NH1054Fixture.cs" />
<Compile Include="NHSpecificTest\NH1080\Domain.cs" />
<Compile Include="NHSpecificTest\NH1080\Fixture.cs" />
+ <Compile Include="NHSpecificTest\NH298\Category.cs" />
+ <Compile Include="NHSpecificTest\NH298\IndexedBidirectionalOneToManyTest.cs" />
<Compile Include="NHSpecificTest\NH364\Invoice.cs" />
<Compile Include="NHSpecificTest\NH662\Domain.cs" />
<Compile Include="NHSpecificTest\NH662\Fixture.cs" />
@@ -1544,6 +1546,7 @@
<EmbeddedResource Include="Cascade\JobBatch.hbm.xml" />
<EmbeddedResource Include="Deletetransient\Person.hbm.xml" />
<Content Include="DynamicEntity\package.html" />
+ <EmbeddedResource Include="NHSpecificTest\NH298\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1587\Mappings.hbm.xml" />
<EmbeddedResource Include="NHSpecificTest\NH1556\Mappings.hbm.xml" />
<EmbeddedResource Include="Tools\hbm2ddl\SchemaValidator\2_Version.hbm.xml" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|