|
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.
|