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