You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
(248) |
May
(82) |
Jun
(90) |
Jul
(177) |
Aug
(253) |
Sep
(157) |
Oct
(151) |
Nov
(143) |
Dec
(278) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(152) |
Feb
(107) |
Mar
(177) |
Apr
(133) |
May
(259) |
Jun
(81) |
Jul
(119) |
Aug
(306) |
Sep
(416) |
Oct
(240) |
Nov
(329) |
Dec
(206) |
2006 |
Jan
(466) |
Feb
(382) |
Mar
(153) |
Apr
(162) |
May
(133) |
Jun
(21) |
Jul
(18) |
Aug
(37) |
Sep
(97) |
Oct
(114) |
Nov
(110) |
Dec
(28) |
2007 |
Jan
(74) |
Feb
(65) |
Mar
(49) |
Apr
(76) |
May
(43) |
Jun
(15) |
Jul
(68) |
Aug
(55) |
Sep
(63) |
Oct
(59) |
Nov
(70) |
Dec
(66) |
2008 |
Jan
(71) |
Feb
(60) |
Mar
(120) |
Apr
(31) |
May
(48) |
Jun
(81) |
Jul
(107) |
Aug
(51) |
Sep
(80) |
Oct
(83) |
Nov
(83) |
Dec
(79) |
2009 |
Jan
(83) |
Feb
(110) |
Mar
(97) |
Apr
(91) |
May
(291) |
Jun
(250) |
Jul
(197) |
Aug
(58) |
Sep
(54) |
Oct
(122) |
Nov
(68) |
Dec
(34) |
2010 |
Jan
(50) |
Feb
(17) |
Mar
(63) |
Apr
(61) |
May
(84) |
Jun
(81) |
Jul
(138) |
Aug
(144) |
Sep
(78) |
Oct
(26) |
Nov
(30) |
Dec
(61) |
2011 |
Jan
(33) |
Feb
(35) |
Mar
(166) |
Apr
(221) |
May
(109) |
Jun
(76) |
Jul
(27) |
Aug
(37) |
Sep
(1) |
Oct
(4) |
Nov
(2) |
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
(2) |
Apr
(2) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2013 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
(1) |
2014 |
Jan
(1) |
Feb
(1) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <fab...@us...> - 2009-02-07 21:16:39
|
Revision: 4069 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4069&view=rev Author: fabiomaulo Date: 2009-02-07 21:16:36 +0000 (Sat, 07 Feb 2009) Log Message: ----------- Run the test for ORACLE too Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Select/MyEntity.hbm.xml trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Select/SelectGeneratorTest.cs Modified: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Select/MyEntity.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Select/MyEntity.hbm.xml 2009-02-07 19:23:43 UTC (rev 4068) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Select/MyEntity.hbm.xml 2009-02-07 21:16:36 UTC (rev 4069) @@ -5,7 +5,6 @@ default-access="field"> <class name="MyEntity" table="my_entity"> - <id name="id"> <generator class="select"/> </id> @@ -39,5 +38,35 @@ </drop> <dialect-scope name="NHibernate.Dialect.FirebirdDialect"/> </database-object> - + + <database-object> + <create> + CREATE SEQUENCE MYGENERATOR START WITH 1 CACHE 20 + </create> + <drop> + DROP SEQUENCE MYGENERATOR + </drop> + <dialect-scope name="NHibernate.Dialect.Oracle8iDialect"/> + <dialect-scope name="NHibernate.Dialect.Oracle9iDialect"/> + <dialect-scope name="NHibernate.Dialect.Oracle10gDialect"/> + </database-object> + + <database-object> + <create> + CREATE OR REPLACE TRIGGER T_BI_my_entity + BEFORE INSERT ON my_entity + FOR EACH ROW + BEGIN + select MYGENERATOR.nextval into :new.ID from DUAL; + END; + </create> + <drop> + DROP TRIGGER T_BI_my_entity + </drop> + <dialect-scope name="NHibernate.Dialect.Oracle8iDialect"/> + <dialect-scope name="NHibernate.Dialect.Oracle9iDialect"/> + <dialect-scope name="NHibernate.Dialect.Oracle10gDialect"/> + </database-object> + + </hibernate-mapping> \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Select/SelectGeneratorTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Select/SelectGeneratorTest.cs 2009-02-07 19:23:43 UTC (rev 4068) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Select/SelectGeneratorTest.cs 2009-02-07 21:16:36 UTC (rev 4069) @@ -18,7 +18,7 @@ protected override bool AppliesTo(Dialect.Dialect dialect) { - return dialect is Dialect.FirebirdDialect; + return dialect is Dialect.FirebirdDialect || dialect is Dialect.Oracle8iDialect; } [Test] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-02-07 19:23:45
|
Revision: 4068 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4068&view=rev Author: fabiomaulo Date: 2009-02-07 19:23:43 +0000 (Sat, 07 Feb 2009) Log Message: ----------- Bug fix (generated by quoted-sequence-names) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs Modified: trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs 2009-02-07 19:06:18 UTC (rev 4067) +++ trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs 2009-02-07 19:23:43 UTC (rev 4068) @@ -69,16 +69,27 @@ public virtual void Configure(IType type, IDictionary<string, string> parms, Dialect.Dialect dialect) { var nativeSequenceName = PropertiesHelper.GetString(Sequence, parms, "hibernate_sequence"); - nativeSequenceName = StringHelper.Unqualify(nativeSequenceName); - nativeSequenceName = StringHelper.PurgeBackticksEnclosing(nativeSequenceName); - sequenceName = dialect.QuoteForTableName(nativeSequenceName); + bool needQuote = StringHelper.IsBackticksEnclosed(nativeSequenceName); + bool isQuelified = nativeSequenceName.IndexOf('.') > 0; + if (isQuelified) + { + string qualifier = StringHelper.Qualifier(nativeSequenceName); + nativeSequenceName = StringHelper.Unqualify(nativeSequenceName); + nativeSequenceName = StringHelper.PurgeBackticksEnclosing(nativeSequenceName); + sequenceName = qualifier + '.' + (needQuote ? dialect.QuoteForTableName(nativeSequenceName) : nativeSequenceName); + } + else + { + nativeSequenceName = StringHelper.PurgeBackticksEnclosing(nativeSequenceName); + sequenceName = needQuote ? dialect.QuoteForTableName(nativeSequenceName) : nativeSequenceName; + } string schemaName; string catalogName; parms.TryGetValue(Parameters, out parameters); parms.TryGetValue(PersistentIdGeneratorParmsNames.Schema, out schemaName); parms.TryGetValue(PersistentIdGeneratorParmsNames.Catalog, out catalogName); - if (sequenceName.IndexOf('.') < 0) + if (!isQuelified) { sequenceName = dialect.Qualify(catalogName, schemaName, sequenceName); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2009-02-07 19:06:42
|
Revision: 4067 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4067&view=rev Author: darioquintana Date: 2009-02-07 19:06:18 +0000 (Sat, 07 Feb 2009) Log Message: ----------- NH-1619: not an issue. Tests added are passing. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Model.cs Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Fixture.cs (from rev 4055, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1621/Fixture.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Fixture.cs 2009-02-07 19:06:18 UTC (rev 4067) @@ -0,0 +1,51 @@ +using NHibernate.Dialect; +using NHibernate.SqlTypes; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1619 +{ + [TestFixture] + public class Fixture : BugTestCase + { + public override string BugNumber + { + get { return "NH1619"; } + } + + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect is PostgreSQLDialect; + } + + [Test] + public void SavingAndRetrieving() + { + var entity = new Dude + { + BooleanValue = true + }; + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Save(entity); + tx.Commit(); + + Assert.AreEqual(true, s.CreateQuery("from Dude").UniqueResult<Dude>().BooleanValue); + } + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Delete(entity); + tx.Commit(); + } + } + + [Test] + public void UsingBooleanPostgreSQLType() + { + Assert.AreEqual("boolean", Dialect.GetTypeName(SqlTypeFactory.Boolean)); + } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Mappings.hbm.xml (from rev 4055, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1621/Mappings.hbm.xml) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Mappings.hbm.xml 2009-02-07 19:06:18 UTC (rev 4067) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1619" + assembly="NHibernate.Test" +> + <class name="Dude" lazy="false"> + <id name="Id"> + <generator class="hilo"/> + </id> + <property name="BooleanValue"/> + </class> + +</hibernate-mapping> Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Model.cs (from rev 4055, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1621/Model.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Model.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1619/Model.cs 2009-02-07 19:06:18 UTC (rev 4067) @@ -0,0 +1,8 @@ +namespace NHibernate.Test.NHSpecificTest.NH1619 +{ + public class Dude + { + public virtual int Id { get; set; } + public virtual bool BooleanValue { get; set; } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-07 16:44:07 UTC (rev 4066) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-07 19:06:18 UTC (rev 4067) @@ -612,6 +612,8 @@ <Compile Include="NHSpecificTest\NH1612\MonetaryValue.cs" /> <Compile Include="NHSpecificTest\NH1612\NativeSqlCollectionLoaderFixture.cs" /> <Compile Include="NHSpecificTest\NH1612\Person.cs" /> + <Compile Include="NHSpecificTest\NH1619\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1619\Model.cs" /> <Compile Include="NHSpecificTest\NH1621\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1621\Model.cs" /> <Compile Include="NHSpecificTest\NH1632\Fixture.cs" /> @@ -1652,6 +1654,7 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1619\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1665\Mappings.hbm.xml" /> <EmbeddedResource Include="Generatedkeys\ByTrigger\MyEntity.hbm.xml" /> <EmbeddedResource Include="Generatedkeys\Identity\MyEntityIdentity.hbm.xml" /> @@ -1784,4 +1787,4 @@ if exist "$(ProjectDir)hibernate.cfg.xml" (copy "$(ProjectDir)hibernate.cfg.xml" "hibernate.cfg.xml") copy /y "..\..\..\NHibernate.DomainModel\ABC.hbm.xml" "ABC.hbm.xml"</PostBuildEvent> </PropertyGroup> -</Project> \ No newline at end of file +</Project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-02-07 16:44:12
|
Revision: 4066 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4066&view=rev Author: fabiomaulo Date: 2009-02-07 16:44:07 +0000 (Sat, 07 Feb 2009) Log Message: ----------- Fix NH-1665 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs trunk/nhibernate/src/NHibernate/Util/StringHelper.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj trunk/nhibernate/src/NHibernate.Test/UtilityTest/StringHelperFixture.cs Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/MyEntity.cs Modified: trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs 2009-02-07 04:59:58 UTC (rev 4065) +++ trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs 2009-02-07 16:44:07 UTC (rev 4066) @@ -68,7 +68,10 @@ /// <param name="dialect">The <see cref="Dialect.Dialect"/> to help with Configuration.</param> public virtual void Configure(IType type, IDictionary<string, string> parms, Dialect.Dialect dialect) { - sequenceName = PropertiesHelper.GetString(Sequence, parms, "hibernate_sequence"); + var nativeSequenceName = PropertiesHelper.GetString(Sequence, parms, "hibernate_sequence"); + nativeSequenceName = StringHelper.Unqualify(nativeSequenceName); + nativeSequenceName = StringHelper.PurgeBackticksEnclosing(nativeSequenceName); + sequenceName = dialect.QuoteForTableName(nativeSequenceName); string schemaName; string catalogName; parms.TryGetValue(Parameters, out parameters); Modified: trunk/nhibernate/src/NHibernate/Util/StringHelper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Util/StringHelper.cs 2009-02-07 04:59:58 UTC (rev 4065) +++ trunk/nhibernate/src/NHibernate/Util/StringHelper.cs 2009-02-07 16:44:07 UTC (rev 4066) @@ -708,5 +708,19 @@ { return str == null ? null : str.ToLowerInvariant(); } + + public static bool IsBackticksEnclosed(string identifier) + { + return !string.IsNullOrEmpty(identifier) && identifier.StartsWith("`") && identifier.EndsWith("`"); + } + + public static string PurgeBackticksEnclosing(string identifier) + { + if (IsBackticksEnclosed(identifier)) + { + return identifier.Substring(1, identifier.Length - 2); + } + return identifier; + } } } Property changes on: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665 ___________________________________________________________________ Added: svn:mergeinfo + Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/Fixture.cs 2009-02-07 16:44:07 UTC (rev 4066) @@ -0,0 +1,28 @@ +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1665 +{ + [TestFixture] + public class Fixture : BugTestCase + { + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect.SupportsSequences; + } + + [Test] + public void SupportsHibernateQuotingSequenceName() + { + ISession session = OpenSession(); + session.BeginTransaction(); + + var e = new MyEntity { Name = "entity-1" }; + session.Save(e); + Assert.AreEqual(1, (int)session.GetIdentifier(e)); + + session.Delete(e); + session.Transaction.Commit(); + session.Close(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/Mappings.hbm.xml 2009-02-07 16:44:07 UTC (rev 4066) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH1665" + default-access="backfield"> + + <class name="MyEntity"> + <id type="int"> + <generator class="sequence"> + <param name="sequence">`Emp_Seq`</param> + </generator> + </id> + <property name="Name"/> + </class> + +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/MyEntity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/MyEntity.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1665/MyEntity.cs 2009-02-07 16:44:07 UTC (rev 4066) @@ -0,0 +1,7 @@ +namespace NHibernate.Test.NHSpecificTest.NH1665 +{ + public class MyEntity + { + public virtual string Name { get; set; } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-07 04:59:58 UTC (rev 4065) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-07 16:44:07 UTC (rev 4066) @@ -414,6 +414,8 @@ <Compile Include="NHSpecificTest\NH1289\PurchaseItem.cs" /> <Compile Include="NHSpecificTest\NH1289\PurchaseOrder.cs" /> <Compile Include="NHSpecificTest\NH1289\WorkflowItem.cs" /> + <Compile Include="NHSpecificTest\NH1665\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1665\MyEntity.cs" /> <Compile Include="NHSpecificTest\NH1443\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1521\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1549\CategoryWithInheritedId.cs" /> @@ -1650,6 +1652,7 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1665\Mappings.hbm.xml" /> <EmbeddedResource Include="Generatedkeys\ByTrigger\MyEntity.hbm.xml" /> <EmbeddedResource Include="Generatedkeys\Identity\MyEntityIdentity.hbm.xml" /> <EmbeddedResource Include="SessionFactoryTest\Item.hbm.xml" /> Modified: trunk/nhibernate/src/NHibernate.Test/UtilityTest/StringHelperFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/UtilityTest/StringHelperFixture.cs 2009-02-07 04:59:58 UTC (rev 4065) +++ trunk/nhibernate/src/NHibernate.Test/UtilityTest/StringHelperFixture.cs 2009-02-07 16:44:07 UTC (rev 4066) @@ -2,6 +2,7 @@ using System.Collections.Generic; using NHibernate.Util; using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; namespace NHibernate.Test.UtilityTest { @@ -120,5 +121,22 @@ Assert.AreEqual(expected, StringHelper.GetClassname(typeName)); } + [Test] + public void IsBackticksEnclosed() + { + Assert.That(!StringHelper.IsBackticksEnclosed(null)); + Assert.That(!StringHelper.IsBackticksEnclosed("`something")); + Assert.That(!StringHelper.IsBackticksEnclosed("something`")); + Assert.That(StringHelper.IsBackticksEnclosed("`something`")); + } + + [Test] + public void PurgeBackticksEnclosing() + { + Assert.That(StringHelper.PurgeBackticksEnclosing(null), Is.Null); + Assert.That(StringHelper.PurgeBackticksEnclosing("`something"), Is.EqualTo("`something")); + Assert.That(StringHelper.PurgeBackticksEnclosing("something`"), Is.EqualTo("something`")); + Assert.That(StringHelper.PurgeBackticksEnclosing("`something`"), Is.EqualTo("something")); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-02-07 05:00:02
|
Revision: 4065 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4065&view=rev Author: fabiomaulo Date: 2009-02-07 04:59:58 +0000 (Sat, 07 Feb 2009) Log Message: ----------- Fix NH-1660 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/NHibernate.csproj trunk/nhibernate/src/NHibernate/Tuple/EntityModeToTuplizerMapping.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate/EntityModeEqualityComparer.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityModeToTuplizerPerf/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityModeToTuplizerPerf/Fixture.cs Added: trunk/nhibernate/src/NHibernate/EntityModeEqualityComparer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/EntityModeEqualityComparer.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/EntityModeEqualityComparer.cs 2009-02-07 04:59:58 UTC (rev 4065) @@ -0,0 +1,17 @@ +using System.Collections.Generic; + +namespace NHibernate +{ + public class EntityModeEqualityComparer : IEqualityComparer<EntityMode> + { + public bool Equals(EntityMode x, EntityMode y) + { + return x == y; + } + + public int GetHashCode(EntityMode obj) + { + return (int) obj; + } + } +} \ No newline at end of file Property changes on: trunk/nhibernate/src/NHibernate/EntityModeEqualityComparer.cs ___________________________________________________________________ Added: svn:mergeinfo + Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-07 04:34:49 UTC (rev 4064) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-07 04:59:58 UTC (rev 4065) @@ -460,6 +460,7 @@ <Compile Include="Dialect\SybaseASA9Dialect.cs" /> <Compile Include="Driver\IfxDriver.cs" /> <Compile Include="Driver\OracleLiteDataClientDriver.cs" /> + <Compile Include="EntityModeEqualityComparer.cs" /> <Compile Include="Event\IDestructible.cs" /> <Compile Include="Exceptions\ReflectionBasedSqlStateExtracter.cs" /> <Compile Include="Exceptions\SqlStateExtracter.cs" /> Modified: trunk/nhibernate/src/NHibernate/Tuple/EntityModeToTuplizerMapping.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Tuple/EntityModeToTuplizerMapping.cs 2009-02-07 04:34:49 UTC (rev 4064) +++ trunk/nhibernate/src/NHibernate/Tuple/EntityModeToTuplizerMapping.cs 2009-02-07 04:59:58 UTC (rev 4065) @@ -8,8 +8,9 @@ [Serializable] public abstract class EntityModeToTuplizerMapping { - // map of EntityMode -> Tuplizer - private readonly IDictionary<EntityMode, ITuplizer> tuplizers = new LinkedHashMap<EntityMode, ITuplizer>(); + // NH-1660 + private readonly IDictionary<EntityMode, ITuplizer> tuplizers + = new LinkedHashMap<EntityMode, ITuplizer>(5, new EntityModeEqualityComparer()); protected internal void AddTuplizer(EntityMode entityMode, ITuplizer tuplizer) { Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityModeToTuplizerPerf/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityModeToTuplizerPerf/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/EntityModeToTuplizerPerf/Fixture.cs 2009-02-07 04:59:58 UTC (rev 4065) @@ -0,0 +1,93 @@ +using System; +using System.Diagnostics; +using NHibernate.Tuple; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.EntityModeToTuplizerPerf +{ + [TestFixture] + public class Fixture + { + private TargetClazz target; + + [SetUp] + public void Setup() + { + target = new TargetClazz(); + } + + [Test] + public void VerifyEntityModeNotFound() + { + Assert.IsNull(target.GetTuplizerOrNull(EntityMode.Xml)); + } + + [Test] + public void VerifyEntityModeFound() + { + ITuplizer tuplizer = new TuplizerStub(); + target.Add(EntityMode.Map, tuplizer); + Assert.AreSame(tuplizer, target.GetTuplizerOrNull(EntityMode.Map)); + } + + [Test, Explicit("To the commiter - run before and after")] + public void RemoveThisTest_JustToShowPerfDifference() + { + const int loop = 1000000; + target.Add(EntityMode.Map, new TuplizerStub()); + target.Add(EntityMode.Poco, new TuplizerStub()); + target.Add(EntityMode.Xml, new TuplizerStub()); + + var watch = new Stopwatch(); + watch.Start(); + for (int i = 0; i < loop; i++) + { + target.GetTuplizerOrNull(EntityMode.Map); + target.GetTuplizerOrNull(EntityMode.Poco); + } + watch.Stop(); + Console.WriteLine(watch.ElapsedMilliseconds); + } + + private class TargetClazz : EntityModeToTuplizerMapping + { + public void Add(EntityMode eMode, ITuplizer tuplizer) + { + AddTuplizer(eMode, tuplizer); + } + } + + private class TuplizerStub : ITuplizer + { + public System.Type MappedClass + { + get { throw new NotImplementedException(); } + } + + public object[] GetPropertyValues(object entity) + { + throw new NotImplementedException(); + } + + public void SetPropertyValues(object entity, object[] values) + { + throw new NotImplementedException(); + } + + public object GetPropertyValue(object entity, int i) + { + throw new NotImplementedException(); + } + + public object Instantiate() + { + throw new NotImplementedException(); + } + + public bool IsInstance(object obj) + { + throw new NotImplementedException(); + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-07 04:34:49 UTC (rev 4064) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-07 04:59:58 UTC (rev 4065) @@ -394,6 +394,7 @@ <Compile Include="NHSpecificTest\Dates\FixtureBase.cs" /> <Compile Include="NHSpecificTest\Dates\DateTime2Fixture.cs" /> <Compile Include="NHSpecificTest\Dates\DateTimeAssert.cs" /> + <Compile Include="NHSpecificTest\EntityModeToTuplizerPerf\Fixture.cs" /> <Compile Include="NHSpecificTest\FileStreamSql2008\VendorCatalog.cs" /> <Compile Include="NHSpecificTest\FileStreamSql2008\Fixture.cs" /> <Compile Include="NHSpecificTest\FileStreamSql2008\Convert.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-02-07 04:34:55
|
Revision: 4064 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4064&view=rev Author: fabiomaulo Date: 2009-02-07 04:34:49 +0000 (Sat, 07 Feb 2009) Log Message: ----------- Fix NH-1661 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Connection/DriverConnectionProvider.cs Modified: trunk/nhibernate/src/NHibernate/Connection/DriverConnectionProvider.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Connection/DriverConnectionProvider.cs 2009-02-07 04:24:29 UTC (rev 4063) +++ trunk/nhibernate/src/NHibernate/Connection/DriverConnectionProvider.cs 2009-02-07 04:34:49 UTC (rev 4064) @@ -12,13 +12,6 @@ private static readonly ILog log = LogManager.GetLogger(typeof(DriverConnectionProvider)); /// <summary> - /// Initializes a new instance of the <see cref="DriverConnectionProvider"/> class. - /// </summary> - public DriverConnectionProvider() - { - } - - /// <summary> /// Closes and Disposes of the <see cref="IDbConnection"/>. /// </summary> /// <param name="conn">The <see cref="IDbConnection"/> to clean up.</param> @@ -42,8 +35,17 @@ { log.Debug("Obtaining IDbConnection from Driver"); IDbConnection conn = Driver.CreateConnection(); - conn.ConnectionString = ConnectionString; - conn.Open(); + try + { + conn.ConnectionString = ConnectionString; + conn.Open(); + } + catch (Exception) + { + conn.Dispose(); + throw; + } + return conn; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-02-07 04:24:32
|
Revision: 4063 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4063&view=rev Author: fabiomaulo Date: 2009-02-07 04:24:29 +0000 (Sat, 07 Feb 2009) Log Message: ----------- - Fix NH-1176 - Fix NH-1664 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate/Id/TriggerIdentityGenerator.cs trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/GeneratedIdentityFixture.cs trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/MyEntity.cs trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/MyEntity.hbm.xml trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/MyEntityIdentity.cs trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/MyEntityIdentity.hbm.xml trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/SimpleIdentityGeneratedFixture.cs Modified: trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs 2009-02-06 20:28:16 UTC (rev 4062) +++ trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs 2009-02-07 04:24:29 UTC (rev 4063) @@ -2069,6 +2069,32 @@ return insertString; } + /// <summary> + /// The class (which implements <see cref="NHibernate.Id.IIdentifierGenerator"/>) + /// which acts as this dialects identity-style generation strategy. + /// </summary> + /// <returns> The native generator class. </returns> + /// <remarks> + /// Comes into play whenever the user specifies the "identity" generator. + /// </remarks> + public virtual System.Type IdentityStyleIdentifierGeneratorClass + { + get + { + if (SupportsIdentityColumns) + { + return typeof(IdentityGenerator); + } + else if (SupportsSequences) + { + return typeof(SequenceIdentityGenerator); + } + else + { + return typeof(TriggerIdentityGenerator); + } + } + } #endregion } } Modified: trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs 2009-02-06 20:28:16 UTC (rev 4062) +++ trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs 2009-02-07 04:24:29 UTC (rev 4063) @@ -79,7 +79,7 @@ /// </remarks> public sealed class IdentifierGeneratorFactory { - private static readonly ILog log = LogManager.GetLogger(typeof(IdentifierGeneratorFactory)); + private static readonly ILog log = LogManager.GetLogger(typeof (IdentifierGeneratorFactory)); /// <summary> Get the generated identifier when using identity columns</summary> /// <param name="rs">The <see cref="IDataReader"/> to read the identifier value from.</param> @@ -101,7 +101,6 @@ return id; } - /// <summary> /// Gets the value of the identifier from the <see cref="IDataReader"/> and /// ensures it is the correct <see cref="System.Type"/>. @@ -142,7 +141,7 @@ /// has already been saved. /// </summary> /// <value> - /// <see cref="String.Empty">String.Empty</see> + /// <see cref="string.Empty">String.Empty</see> /// </value> public static readonly object ShortCircuitIndicator = new object(); @@ -156,22 +155,22 @@ /// </summary> static IdentifierGeneratorFactory() { - idgenerators.Add("uuid.hex", typeof(UUIDHexGenerator)); - idgenerators.Add("uuid.string", typeof(UUIDStringGenerator)); - idgenerators.Add("hilo", typeof(TableHiLoGenerator)); - idgenerators.Add("assigned", typeof(Assigned)); - idgenerators.Add("counter", typeof(CounterGenerator)); - idgenerators.Add("identity", typeof(IdentityGenerator)); - idgenerators.Add("increment", typeof(IncrementGenerator)); - idgenerators.Add("sequence", typeof(SequenceGenerator)); - idgenerators.Add("seqhilo", typeof(SequenceHiLoGenerator)); - idgenerators.Add("vm", typeof(CounterGenerator)); - idgenerators.Add("foreign", typeof(ForeignGenerator)); - idgenerators.Add("guid", typeof(GuidGenerator)); - idgenerators.Add("guid.comb", typeof(GuidCombGenerator)); - idgenerators.Add("guid.native", typeof(NativeGuidGenerator)); - idgenerators.Add("select", typeof(SelectGenerator)); - idgenerators.Add("sequence-identity", typeof(SequenceIdentityGenerator)); + idgenerators.Add("uuid.hex", typeof (UUIDHexGenerator)); + idgenerators.Add("uuid.string", typeof (UUIDStringGenerator)); + idgenerators.Add("hilo", typeof (TableHiLoGenerator)); + idgenerators.Add("assigned", typeof (Assigned)); + idgenerators.Add("counter", typeof (CounterGenerator)); + idgenerators.Add("increment", typeof (IncrementGenerator)); + idgenerators.Add("sequence", typeof (SequenceGenerator)); + idgenerators.Add("seqhilo", typeof (SequenceHiLoGenerator)); + idgenerators.Add("vm", typeof (CounterGenerator)); + idgenerators.Add("foreign", typeof (ForeignGenerator)); + idgenerators.Add("guid", typeof (GuidGenerator)); + idgenerators.Add("guid.comb", typeof (GuidCombGenerator)); + idgenerators.Add("guid.native", typeof (NativeGuidGenerator)); + idgenerators.Add("select", typeof (SelectGenerator)); + idgenerators.Add("sequence-identity", typeof (SequenceIdentityGenerator)); + idgenerators.Add("trigger-identity", typeof (TriggerIdentityGenerator)); } private IdentifierGeneratorFactory() @@ -196,15 +195,18 @@ /// <exception cref="MappingException"> /// Thrown if there are any exceptions while creating the <see cref="IIdentifierGenerator"/>. /// </exception> - public static IIdentifierGenerator Create(string strategy, IType type, IDictionary<string, string> parms, Dialect.Dialect dialect) + public static IIdentifierGenerator Create(string strategy, IType type, IDictionary<string, string> parms, + Dialect.Dialect dialect) { try { System.Type clazz = GetIdentifierGeneratorClass(strategy, dialect); - IIdentifierGenerator idgen = (IIdentifierGenerator)Activator.CreateInstance(clazz); - IConfigurable conf = idgen as IConfigurable; + var idgen = (IIdentifierGenerator) Activator.CreateInstance(clazz); + var conf = idgen as IConfigurable; if (conf != null) + { conf.Configure(type, parms, dialect); + } return idgen; } catch (IdentifierGenerationException) @@ -226,47 +228,47 @@ /// The identifier value converted to the <see cref="System.Type"/>. /// </returns> /// <exception cref="IdentifierGenerationException"> - /// The <c>type</c> parameter must be an <see cref="Int16"/>, <see cref="Int32"/>, - /// or <see cref="Int64"/>. + /// The <c>type</c> parameter must be an <see cref="short"/>, <see cref="int"/>, + /// or <see cref="long"/>. /// </exception> public static object CreateNumber(long value, System.Type type) { // Convert.ChangeType would be better here, but it fails if the value does not fit // in the destination type, while we need the value to be truncated in this case. - if (type == typeof(byte)) + if (type == typeof (byte)) { return (byte) value; } - else if (type == typeof(sbyte)) + else if (type == typeof (sbyte)) { return (sbyte) value; } - else if (type == typeof(short)) + else if (type == typeof (short)) { return (short) value; } - else if (type == typeof(ushort)) + else if (type == typeof (ushort)) { return (ushort) value; } - else if (type == typeof(int)) + else if (type == typeof (int)) { return (int) value; } - else if (type == typeof(uint)) + else if (type == typeof (uint)) { return (uint) value; } - else if (type == typeof(long)) + else if (type == typeof (long)) { return value; } - else if (type == typeof(ulong)) + else if (type == typeof (ulong)) { return (ulong) value; } - else if (type == typeof(decimal)) + else if (type == typeof (decimal)) { return (decimal) value; } @@ -286,13 +288,24 @@ public static System.Type GetIdentifierGeneratorClass(string strategy, Dialect.Dialect dialect) { System.Type clazz; - idgenerators.TryGetValue(strategy, out clazz); if ("native".Equals(strategy)) + { clazz = dialect.NativeIdentifierGeneratorClass; + } + else if ("identity".Equals(strategy)) + { + clazz = dialect.IdentityStyleIdentifierGeneratorClass; + } + else + { + idgenerators.TryGetValue(strategy, out clazz); + } try { if (clazz == null) + { clazz = ReflectHelper.ClassForName(strategy); + } } catch (Exception) { Added: trunk/nhibernate/src/NHibernate/Id/TriggerIdentityGenerator.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/TriggerIdentityGenerator.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Id/TriggerIdentityGenerator.cs 2009-02-07 04:24:29 UTC (rev 4063) @@ -0,0 +1,18 @@ +using NHibernate.Engine; +using NHibernate.Id.Insert; + +namespace NHibernate.Id +{ + public class TriggerIdentityGenerator : AbstractPostInsertGenerator + { + #region Overrides of AbstractPostInsertGenerator + + public override IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate( + IPostInsertIdentityPersister persister, ISessionFactoryImplementor factory, bool isGetGeneratedKeysEnabled) + { + return new OutputParamReturningDelegate(persister, factory); + } + + #endregion + } +} \ No newline at end of file Property changes on: trunk/nhibernate/src/NHibernate/Id/TriggerIdentityGenerator.cs ___________________________________________________________________ Added: svn:mergeinfo + Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-06 20:28:16 UTC (rev 4062) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-07 04:24:29 UTC (rev 4063) @@ -464,6 +464,7 @@ <Compile Include="Exceptions\ReflectionBasedSqlStateExtracter.cs" /> <Compile Include="Exceptions\SqlStateExtracter.cs" /> <Compile Include="Exceptions\TemplatedViolatedConstraintNameExtracter.cs" /> + <Compile Include="Id\TriggerIdentityGenerator.cs" /> <Compile Include="Id\Insert\NoCommentsInsert.cs" /> <Compile Include="Id\Insert\ReturningIdentifierInsert.cs" /> <Compile Include="Id\Insert\OutputParamReturningDelegate.cs" /> Added: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/GeneratedIdentityFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/GeneratedIdentityFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/GeneratedIdentityFixture.cs 2009-02-07 04:24:29 UTC (rev 4063) @@ -0,0 +1,41 @@ +using System.Collections; +using NUnit.Framework; + +namespace NHibernate.Test.Generatedkeys.ByTrigger +{ + [TestFixture] + public class GeneratedIdentityFixture : TestCase + { + protected override IList Mappings + { + get { return new[] { "Generatedkeys.ByTrigger.MyEntity.hbm.xml" }; } + } + + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect is Dialect.Oracle8iDialect; + } + + [Test] + public void GetGeneratedKeysSupport() + { + ISession session = OpenSession(); + session.BeginTransaction(); + + var e = new MyEntity { Name = "entity-1" }; + session.Save(e); + + // this insert should happen immediately! + Assert.AreEqual(1, e.Id, "id not generated through forced insertion"); + + session.Delete(e); + session.Transaction.Commit(); + session.Close(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/MyEntity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/MyEntity.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/MyEntity.cs 2009-02-07 04:24:29 UTC (rev 4063) @@ -0,0 +1,9 @@ +namespace NHibernate.Test.Generatedkeys.ByTrigger +{ + public class MyEntity + { + public virtual int Id { get; private set; } + + public virtual string Name { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/MyEntity.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/MyEntity.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/ByTrigger/MyEntity.hbm.xml 2009-02-07 04:24:29 UTC (rev 4063) @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.Generatedkeys.ByTrigger" + default-access="backfield"> + + <class name="MyEntity" table="my_entity"> + <id name="Id"> + <generator class="trigger-identity"/> + </id> + <property name="Name"/> + </class> + + <database-object> + <create> + <![CDATA[CREATE SEQUENCE NH_SEQ START WITH 1 CACHE 20]]> + </create> + <drop> + <![CDATA[DROP SEQUENCE NH_SEQ]]> + </drop> + <dialect-scope name="NHibernate.Dialect.Oracle8iDialect"/> + <dialect-scope name="NHibernate.Dialect.Oracle9iDialect"/> + <dialect-scope name="NHibernate.Dialect.Oracle10gDialect"/> + </database-object> + + <database-object> + <create> + <![CDATA[CREATE OR REPLACE TRIGGER T_BI_my_entity + BEFORE INSERT ON my_entity + FOR EACH ROW + BEGIN + select NH_SEQ.nextval into :new.ID from DUAL; + END;]]> + </create> + <drop> + <![CDATA[DROP TRIGGER T_BI_my_entity]]> + </drop> + <dialect-scope name="NHibernate.Dialect.Oracle8iDialect"/> + <dialect-scope name="NHibernate.Dialect.Oracle9iDialect"/> + <dialect-scope name="NHibernate.Dialect.Oracle10gDialect"/> + </database-object> + + +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/MyEntityIdentity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/MyEntityIdentity.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/MyEntityIdentity.cs 2009-02-07 04:24:29 UTC (rev 4063) @@ -0,0 +1,19 @@ +namespace NHibernate.Test.Generatedkeys.Identity +{ + public class MyEntityIdentity + { + private int id; + private string name; + + public virtual int Id + { + get { return id; } + } + + public virtual string Name + { + get { return name; } + set { name = value; } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/MyEntityIdentity.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/MyEntityIdentity.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/MyEntityIdentity.hbm.xml 2009-02-07 04:24:29 UTC (rev 4063) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.Generatedkeys.Identity" + default-access="field"> + + <class name="MyEntityIdentity" table="my_entity"> + <id name="id"> + <generator class="identity"/> + </id> + <natural-id> + <property name="name"/> + </natural-id> + </class> + +</hibernate-mapping> \ No newline at end of file Property changes on: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/MyEntityIdentity.hbm.xml ___________________________________________________________________ Added: svn:mergeinfo + Added: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/SimpleIdentityGeneratedFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/SimpleIdentityGeneratedFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Identity/SimpleIdentityGeneratedFixture.cs 2009-02-07 04:24:29 UTC (rev 4063) @@ -0,0 +1,39 @@ +using System.Collections; +using NUnit.Framework; + +namespace NHibernate.Test.Generatedkeys.Identity +{ + [TestFixture] + public class SimpleIdentityGeneratedFixture : TestCase + { + // This test is to check the support of identity generator + // NH should choose one of the identity-style generation where the Dialect are supporting one of them + // as identity, sequence-identity (identity.sequence), generated (identity.sequence) + protected override IList Mappings + { + get { return new[] { "Generatedkeys.Identity.MyEntityIdentity.hbm.xml" }; } + } + + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + [Test] + public void SequenceIdentityGenerator() + { + ISession session = OpenSession(); + session.BeginTransaction(); + + var e = new MyEntityIdentity { Name = "entity-1" }; + session.Save(e); + + // this insert should happen immediately! + Assert.AreEqual(1, e.Id, "id not generated through forced insertion"); + + session.Delete(e); + session.Transaction.Commit(); + session.Close(); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-06 20:28:16 UTC (rev 4062) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-07 04:24:29 UTC (rev 4063) @@ -244,10 +244,14 @@ <Compile Include="FilterTest\Product.cs" /> <Compile Include="FilterTest\Salesperson.cs" /> <Compile Include="FilterTest\TestClass.cs" /> + <Compile Include="Generatedkeys\ByTrigger\GeneratedIdentityFixture.cs" /> + <Compile Include="Generatedkeys\ByTrigger\MyEntity.cs" /> <Compile Include="Generatedkeys\Identity\IdentityGeneratedKeysTest.cs" /> <Compile Include="Generatedkeys\Identity\MyChild.cs" /> <Compile Include="Generatedkeys\Identity\MyEntity.cs" /> + <Compile Include="Generatedkeys\Identity\MyEntityIdentity.cs" /> <Compile Include="Generatedkeys\Identity\MySibling.cs" /> + <Compile Include="Generatedkeys\Identity\SimpleIdentityGeneratedFixture.cs" /> <Compile Include="Generatedkeys\Select\MyEntity.cs" /> <Compile Include="Generatedkeys\Select\SelectGeneratorTest.cs" /> <Compile Include="Generatedkeys\Seqidentity\MyEntity.cs" /> @@ -1645,6 +1649,8 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="Generatedkeys\ByTrigger\MyEntity.hbm.xml" /> + <EmbeddedResource Include="Generatedkeys\Identity\MyEntityIdentity.hbm.xml" /> <EmbeddedResource Include="SessionFactoryTest\Item.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1289\Mappings.hbm.xml" /> <EmbeddedResource Include="TypesTest\TimeSpanClass.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-02-06 20:28:20
|
Revision: 4062 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4062&view=rev Author: fabiomaulo Date: 2009-02-06 20:28:16 +0000 (Fri, 06 Feb 2009) Log Message: ----------- Fix NH-1662 (new feature sequence-identity tested and supported by Oracle) Possible breaking change: see IDriver Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs trunk/nhibernate/src/NHibernate/Driver/DriverBase.cs trunk/nhibernate/src/NHibernate/Driver/IDriver.cs trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs trunk/nhibernate/src/NHibernate/Id/Insert/AbstractReturningDelegate.cs trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/SequenceIdentityFixture.cs Added Paths: ----------- trunk/nhibernate/src/NHibernate/Id/Insert/OutputParamReturningDelegate.cs trunk/nhibernate/src/NHibernate/Id/Insert/ReturningIdentifierInsert.cs trunk/nhibernate/src/NHibernate/Id/SequenceIdentityGenerator.cs Modified: trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs 2009-02-06 18:25:52 UTC (rev 4061) +++ trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -2061,5 +2061,14 @@ return null; } } + + #region NH specific + + public virtual SqlString AddIdentifierOutParameterToInsert(SqlString insertString, string identifierColumnName, string parameterName) + { + return insertString; + } + + #endregion } } Modified: trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs 2009-02-06 18:25:52 UTC (rev 4061) +++ trunk/nhibernate/src/NHibernate/Dialect/Oracle8iDialect.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -329,6 +329,11 @@ return sequenceName + ".nextval"; } + public override SqlString AddIdentifierOutParameterToInsert(SqlString insertString, string identifierColumnName, string parameterName) + { + return insertString.Append(" returning " + identifierColumnName + " into :" + parameterName); + } + public override string GetCreateSequenceString(string sequenceName) { return "create sequence " + sequenceName; //starts with 1, implicitly Modified: trunk/nhibernate/src/NHibernate/Driver/DriverBase.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/DriverBase.cs 2009-02-06 18:25:52 UTC (rev 4061) +++ trunk/nhibernate/src/NHibernate/Driver/DriverBase.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -200,7 +200,7 @@ /// <param name="name">The name to set for IDbDataParameter.Name</param> /// <param name="sqlType">The SqlType to set for IDbDataParameter.</param> /// <returns>An IDbDataParameter ready to be added to an IDbCommand.</returns> - protected IDbDataParameter GenerateParameter(IDbCommand command, string name, SqlType sqlType) + public IDbDataParameter GenerateParameter(IDbCommand command, string name, SqlType sqlType) { IDbDataParameter dbParam = command.CreateParameter(); InitializeParameter(dbParam, name, sqlType); Modified: trunk/nhibernate/src/NHibernate/Driver/IDriver.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Driver/IDriver.cs 2009-02-06 18:25:52 UTC (rev 4061) +++ trunk/nhibernate/src/NHibernate/Driver/IDriver.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -85,5 +85,15 @@ /// </summary> /// <param name="command"></param> void PrepareCommand(IDbCommand command); + + /// <summary> + /// Generates an IDbDataParameter for the IDbCommand. It does not add the IDbDataParameter to the IDbCommand's + /// Parameter collection. + /// </summary> + /// <param name="command">The IDbCommand to use to create the IDbDataParameter.</param> + /// <param name="name">The name to set for IDbDataParameter.Name</param> + /// <param name="sqlType">The SqlType to set for IDbDataParameter.</param> + /// <returns>An IDbDataParameter ready to be added to an IDbCommand.</returns> + IDbDataParameter GenerateParameter(IDbCommand command, string name, SqlType sqlType); } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs 2009-02-06 18:25:52 UTC (rev 4061) +++ trunk/nhibernate/src/NHibernate/Id/IdentifierGeneratorFactory.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -171,6 +171,7 @@ idgenerators.Add("guid.comb", typeof(GuidCombGenerator)); idgenerators.Add("guid.native", typeof(NativeGuidGenerator)); idgenerators.Add("select", typeof(SelectGenerator)); + idgenerators.Add("sequence-identity", typeof(SequenceIdentityGenerator)); } private IdentifierGeneratorFactory() Modified: trunk/nhibernate/src/NHibernate/Id/Insert/AbstractReturningDelegate.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/Insert/AbstractReturningDelegate.cs 2009-02-06 18:25:52 UTC (rev 4061) +++ trunk/nhibernate/src/NHibernate/Id/Insert/AbstractReturningDelegate.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -21,7 +21,7 @@ this.persister = persister; } - protected internal virtual IPostInsertIdentityPersister Persister + protected IPostInsertIdentityPersister Persister { get { return persister; } } Added: trunk/nhibernate/src/NHibernate/Id/Insert/OutputParamReturningDelegate.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/Insert/OutputParamReturningDelegate.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Id/Insert/OutputParamReturningDelegate.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -0,0 +1,62 @@ +using System.Data; +using NHibernate.Engine; +using NHibernate.SqlCommand; +using NHibernate.SqlTypes; + +namespace NHibernate.Id.Insert +{ + /// <summary> + /// <see cref="IInsertGeneratedIdentifierDelegate"/> implementation where the + /// underlying strategy causes the generated identitifer to be returned, as an + /// effect of performing the insert statement, in a Output parameter. + /// Thus, there is no need for an additional sql statement to determine the generated identitifer. + /// </summary> + public class OutputParamReturningDelegate : AbstractReturningDelegate + { + private const string ReturnParameterName = "nhIdOutParam"; + private readonly ISessionFactoryImplementor factory; + private readonly string idColumnName; + private readonly SqlType paramType; + private string driveGeneratedParamName = ReturnParameterName; + + public OutputParamReturningDelegate(IPostInsertIdentityPersister persister, ISessionFactoryImplementor factory) + : base(persister) + { + if (Persister.RootTableKeyColumnNames.Length > 1) + { + throw new HibernateException("identity-style generator cannot be used with multi-column keys"); + } + paramType = Persister.IdentifierType.SqlTypes(factory)[0]; + idColumnName = Persister.RootTableKeyColumnNames[0]; + this.factory = factory; + } + + #region Overrides of AbstractReturningDelegate + + public override IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() + { + return new ReturningIdentifierInsert(factory, idColumnName, ReturnParameterName); + } + + protected internal override IDbCommand Prepare(SqlCommandInfo insertSQL, ISessionImplementor session) + { + IDbCommand command = session.Batcher.PrepareCommand(CommandType.Text, insertSQL.Text, insertSQL.ParameterTypes); + //Add the output parameter + IDbDataParameter idParameter = factory.ConnectionProvider.Driver.GenerateParameter(command, ReturnParameterName, + paramType); + driveGeneratedParamName = idParameter.ParameterName; + idParameter.Direction = ParameterDirection.ReturnValue; + + command.Parameters.Add(idParameter); + return command; + } + + public override object ExecuteAndExtract(IDbCommand insert, ISessionImplementor session) + { + session.Batcher.ExecuteNonQuery(insert); + return ((IDbDataParameter)insert.Parameters[driveGeneratedParamName]).Value; + } + + #endregion + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Id/Insert/ReturningIdentifierInsert.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/Insert/ReturningIdentifierInsert.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Id/Insert/ReturningIdentifierInsert.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -0,0 +1,30 @@ +using NHibernate.Engine; +using NHibernate.SqlCommand; + +namespace NHibernate.Id.Insert +{ + /// <summary> + /// Specialized IdentifierGeneratingInsert which appends the database + /// specific clause which signifies to return generated identifier values + /// to the end of the insert statement. + /// </summary> + /// <remarks> + /// </remarks> + public class ReturningIdentifierInsert : NoCommentsInsert + { + private readonly string identifierColumnName; + private readonly string returnParameterName; + + public ReturningIdentifierInsert(ISessionFactoryImplementor factory, string identifierColumnName, + string returnParameterName) : base(factory) + { + this.returnParameterName = returnParameterName; + this.identifierColumnName = identifierColumnName; + } + + public override SqlString ToSqlString() + { + return Dialect.AddIdentifierOutParameterToInsert(base.ToSqlString(), identifierColumnName, returnParameterName); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs 2009-02-06 18:25:52 UTC (rev 4061) +++ trunk/nhibernate/src/NHibernate/Id/SequenceGenerator.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -52,6 +52,11 @@ private SqlString sql; private string parameters; + public string SequenceName + { + get { return sequenceName; } + } + #region IConfigurable Members /// <summary> Added: trunk/nhibernate/src/NHibernate/Id/SequenceIdentityGenerator.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/SequenceIdentityGenerator.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Id/SequenceIdentityGenerator.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -0,0 +1,55 @@ +using NHibernate.Engine; +using NHibernate.Id.Insert; + +namespace NHibernate.Id +{ + /// <summary> + /// A generator which combines sequence generation with immediate retrieval + /// by attaching a output parameter to the SQL command + /// In this respect it works much like ANSI-SQL IDENTITY generation. + /// </summary> + public class SequenceIdentityGenerator : SequenceGenerator, IPostInsertIdentifierGenerator + { + #region IPostInsertIdentifierGenerator Members + + public override object Generate(ISessionImplementor session, object obj) + { + return IdentifierGeneratorFactory.PostInsertIndicator; + } + + #endregion + + #region Implementation of IPostInsertIdentifierGenerator + + public IInsertGeneratedIdentifierDelegate GetInsertGeneratedIdentifierDelegate(IPostInsertIdentityPersister persister, + ISessionFactoryImplementor factory, + bool isGetGeneratedKeysEnabled) + { + return new SequenceIdentityDelegate(persister, factory, SequenceName); + } + + #endregion + + #region Nested type: SequenceIdentityDelegate + + public class SequenceIdentityDelegate : OutputParamReturningDelegate + { + private readonly string sequenceNextValFragment; + + public SequenceIdentityDelegate(IPostInsertIdentityPersister persister, ISessionFactoryImplementor factory, + string sequenceName) : base(persister, factory) + { + sequenceNextValFragment = factory.Dialect.GetSelectSequenceNextValString(sequenceName); + } + + public override IdentifierGeneratingInsert PrepareIdentifierGeneratingInsert() + { + IdentifierGeneratingInsert insert = base.PrepareIdentifierGeneratingInsert(); + insert.AddColumn(Persister.RootTableKeyColumnNames[0], sequenceNextValFragment); + return insert; + } + } + + #endregion + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-06 18:25:52 UTC (rev 4061) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-06 20:28:16 UTC (rev 4062) @@ -465,8 +465,11 @@ <Compile Include="Exceptions\SqlStateExtracter.cs" /> <Compile Include="Exceptions\TemplatedViolatedConstraintNameExtracter.cs" /> <Compile Include="Id\Insert\NoCommentsInsert.cs" /> + <Compile Include="Id\Insert\ReturningIdentifierInsert.cs" /> + <Compile Include="Id\Insert\OutputParamReturningDelegate.cs" /> <Compile Include="Id\NativeGuidGenerator.cs" /> <Compile Include="Id\SelectGenerator.cs" /> + <Compile Include="Id\SequenceIdentityGenerator.cs" /> <Compile Include="IFutureValue.cs" /> <Compile Include="Impl\DelayedEnumerator.cs" /> <Compile Include="Impl\FutureQueryBatch.cs" /> Modified: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/SequenceIdentityFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/SequenceIdentityFixture.cs 2009-02-06 18:25:52 UTC (rev 4061) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/SequenceIdentityFixture.cs 2009-02-06 20:28:16 UTC (rev 4062) @@ -3,7 +3,7 @@ namespace NHibernate.Test.Generatedkeys.Seqidentity { - [TestFixture, Ignore("Solution not implemented yet.")] + [TestFixture] public class SequenceIdentityFixture : TestCase { protected override IList Mappings This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2009-02-06 18:25:57
|
Revision: 4061 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4061&view=rev Author: tehlike Date: 2009-02-06 18:25:52 +0000 (Fri, 06 Feb 2009) Log Message: ----------- Ignored test that verifies SessionFactory is Serializable Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/ trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/Item.cs trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/Item.hbm.xml trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/SessionFactorySerializationFixture.cs Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-06 17:27:04 UTC (rev 4060) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-06 18:25:52 UTC (rev 4061) @@ -920,6 +920,8 @@ <Compile Include="QueryTest\PositionalParametersFixture.cs" /> <Compile Include="QueryTest\QueryParametersFixture.cs" /> <Compile Include="ReflectionOptimizerTest\LcgFixture.cs" /> + <Compile Include="SessionFactoryTest\Item.cs" /> + <Compile Include="SessionFactoryTest\SessionFactorySerializationFixture.cs" /> <Compile Include="Tools\hbm2ddl\SchemaUpdate\MigrationFixture.cs" /> <Compile Include="Tools\hbm2ddl\SchemaUpdate\Version.cs" /> <Compile Include="SecondLevelCacheTest\AnotherItem.cs" /> @@ -1643,6 +1645,7 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="SessionFactoryTest\Item.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1289\Mappings.hbm.xml" /> <EmbeddedResource Include="TypesTest\TimeSpanClass.hbm.xml" /> <EmbeddedResource Include="TypesTest\TimeSpanInt64Class.hbm.xml" /> @@ -1771,4 +1774,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 Property changes on: trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest ___________________________________________________________________ Added: svn:mergeinfo + Added: trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/Item.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/Item.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/Item.cs 2009-02-06 18:25:52 UTC (rev 4061) @@ -0,0 +1,66 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Text; + +namespace NHibernate.Test.SessionFactoryTest +{ + public class Item + { + private int id; + private IList children = new ArrayList(); + private Item parent; + private string name; + + public virtual string Name + { + get { return name; } + set { name = value; } + } + + public virtual Item Parent + { + get { return parent; } + set { parent = value; } + } + + public virtual int Id + { + get { return id; } + set { id = value; } + } + + public virtual IList Children + { + get { return children; } + set { children = value; } + } + } + public class AnotherItem + { + private int id; + private string name; + + public AnotherItem() + { + + } + + public AnotherItem(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; } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/Item.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/Item.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/Item.hbm.xml 2009-02-06 18:25:52 UTC (rev 4061) @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.SessionFactoryTest" + assembly="NHibernate.Test"> + <class name="Item"> + <cache usage="read-write"/> + <id name="Id"> + <generator class="assigned"/> + </id> + <property name="Name"/> + <many-to-one name="Parent" column="ParentId" + lazy="proxy" not-found="ignore" + class="Item"/> + <bag name="Children" + table="Item" + lazy="true"> + <cache usage="read-write"/> + <key column="ParentId" foreign-key="none"/> + <one-to-many class="Item"/> + </bag> + </class> +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/SessionFactorySerializationFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/SessionFactorySerializationFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/SessionFactoryTest/SessionFactorySerializationFixture.cs 2009-02-06 18:25:52 UTC (rev 4061) @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Runtime.Serialization.Formatters.Binary; +using System.Text; +using NHibernate.Engine; +using NHibernate.Impl; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; + +namespace NHibernate.Test.SessionFactoryTest +{ + [TestFixture,Ignore] + public class SessionFactorySerializationFixture:TestCase + { + protected ISessionFactory SerializeAndDeserialize() + { + var ncfg = base.cfg; + ncfg.Properties["session_factory_name"] = "myfactory"; + var sessionFactory = ncfg.BuildSessionFactory(); + var uuidField = typeof (SessionFactoryImpl).GetField("uuid", + BindingFlags.Instance | + BindingFlags.NonPublic | + BindingFlags.GetField); + var uuid = uuidField.GetValue(sessionFactory) as string; + var stream = new MemoryStream(); + var formatter = new BinaryFormatter(); + formatter.Serialize(stream, sessionFactory); + sessionFactory.Dispose(); + stream.Position = 0; + var factory = formatter.Deserialize(stream) as ISessionFactoryImplementor; + stream.Dispose(); + return factory; + } + protected void Serialize(ISessionFactoryImplementor factory,MemoryStream ms) + { + var formatter = new BinaryFormatter(); + formatter.Serialize(ms, this.sessions); + } + [Test] + public void SessionFactory_should_be_serializable() + { + using (var stream = new MemoryStream()) + { + Serialize(this.sessions, stream); + Assert.That(stream.Length, Is.Not.EqualTo(0)); + } + } + + [Test] + public void SessionFactory_should_be_deserialized() + { + var factory = SerializeAndDeserialize(); + Assert.That(factory, Is.Not.Null); + } + [Test] + public void CRUD_works_correctly_after_deserialization() + { + var sessionFactory = SerializeAndDeserialize(); + + using(var session=sessionFactory.OpenSession()) + using(var tran=session.BeginTransaction()) + { + var obj = new Item {Name = "object1"}; + var obj2 = new Item {Name = "object2"}; + obj.Children.Add(obj2); + obj2.Parent = obj; + session.Save(obj); + session.Save(obj); + tran.Commit(); + } + + using (var session = sessionFactory.OpenSession()) + using (var tran = session.BeginTransaction()) + { + var item = session.Get<Item>(1); + Assert.That(item, Is.Not.Null); + Assert.That(item.Children.Count, Is.EqualTo(1)); + + item.Name = "object5"; + session.Save(item); + tran.Commit(); + } + + using(var session=sessionFactory.OpenSession()) + { + var item = session.Get<Item>(1); + Assert.That(item.Name, Is.EqualTo("object5")); + } + + using (var session = sessionFactory.OpenSession()) + { + var item = session.Get<Item>(1); + session.Delete(item); + session.Evict(item); + item = session.Get<Item>(1); + Assert.That(item, Is.Null); + } + + } + protected override System.Collections.IList Mappings + { + get + { + return new string[] + { + "SessionFactoryTest.Item.hbm.xml", + + }; + } + } + protected override string MappingsAssembly + { + get + { + return "NHibernate.Test"; + } + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2009-02-06 17:27:07
|
Revision: 4060 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4060&view=rev Author: darioquintana Date: 2009-02-06 17:27:04 +0000 (Fri, 06 Feb 2009) Log Message: ----------- Test passing for dialect supporting SupportsIfExistsBeforeTableName (Postgres) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1274ExportExclude/NH1274ExportExcludeFixture.cs Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1274ExportExclude/NH1274ExportExcludeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1274ExportExclude/NH1274ExportExcludeFixture.cs 2009-02-06 16:42:39 UTC (rev 4059) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1274ExportExclude/NH1274ExportExcludeFixture.cs 2009-02-06 17:27:04 UTC (rev 4060) @@ -14,7 +14,6 @@ [TestFixture] public class NH1274ExportExcludeFixture { - [Test] public void SchemaExport_Drop_CreatesDropScript() { @@ -24,8 +23,19 @@ Console.SetOut(tw); export.Drop(true, false); string s = tw.ToString(); - Assert.IsTrue(s.Contains("drop table Home_Drop")); - Assert.IsTrue(s.Contains("drop table Home_All")); + + var dialect = Dialect.Dialect.GetDialect(configuration.Properties); + + if (dialect.SupportsIfExistsBeforeTableName) + { + Assert.IsTrue(s.Contains("drop table if exists Home_Drop")); + Assert.IsTrue(s.Contains("drop table if exists Home_All")); + } + else + { + Assert.IsTrue(s.Contains("drop table Home_Drop")); + Assert.IsTrue(s.Contains("drop table Home_All")); + } } [Test] @@ -37,8 +47,19 @@ Console.SetOut(tw); export.Create(true, false); string s = tw.ToString(); - Assert.IsTrue(s.Contains("drop table Home_Drop")); - Assert.IsTrue(s.Contains("drop table Home_All")); + + var dialect = Dialect.Dialect.GetDialect(configuration.Properties); + if (dialect.SupportsIfExistsBeforeTableName) + { + Assert.IsTrue(s.Contains("drop table if exists Home_Drop")); + Assert.IsTrue(s.Contains("drop table if exists Home_All")); + } + else + { + Assert.IsTrue(s.Contains("drop table Home_Drop")); + Assert.IsTrue(s.Contains("drop table Home_All")); + } + Assert.IsTrue(s.Contains("create table Home_All")); Assert.IsTrue(s.Contains("create table Home_Export")); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2009-02-06 16:44:14
|
Revision: 4059 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4059&view=rev Author: darioquintana Date: 2009-02-06 16:42:39 +0000 (Fri, 06 Feb 2009) Log Message: ----------- bug fixed: now it's contemplating scale and precision. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/PostgreSQLDialect.cs Modified: trunk/nhibernate/src/NHibernate/Dialect/PostgreSQLDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/PostgreSQLDialect.cs 2009-02-06 14:58:31 UTC (rev 4058) +++ trunk/nhibernate/src/NHibernate/Dialect/PostgreSQLDialect.cs 2009-02-06 16:42:39 UTC (rev 4059) @@ -45,6 +45,7 @@ RegisterColumnType(DbType.DateTime, "timestamp"); RegisterColumnType(DbType.Decimal, "decimal(19,5)"); RegisterColumnType(DbType.Decimal, 19, "decimal(18, $l)"); + RegisterColumnType(DbType.Decimal, 19, "decimal($p, $s)"); RegisterColumnType(DbType.Double, "float8"); RegisterColumnType(DbType.Int16, "int2"); RegisterColumnType(DbType.Int32, "int4"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2009-02-06 14:58:53
|
Revision: 4058 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4058&view=rev Author: darioquintana Date: 2009-02-06 14:58:31 +0000 (Fri, 06 Feb 2009) Log Message: ----------- - Bug fixed: TimeSpanType prepared to work with TimeSpan or DateTime, depends on dialect. - Tests specifics for DbType supported - Fixes in Tests Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/FixtureBase.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs Modified: trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs 2009-02-06 13:40:28 UTC (rev 4057) +++ trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs 2009-02-06 14:58:31 UTC (rev 4058) @@ -29,7 +29,12 @@ { try { - return (TimeSpan)rs[index]; + object value = rs[index]; + if(value is TimeSpan) + return (TimeSpan)value; + + DateTime time = (DateTime)rs[index]; + return new TimeSpan(Convert.ToInt64(time.Ticks)); } catch (Exception ex) { @@ -41,9 +46,12 @@ { try { - //DateTime time = (DateTime)rs[name]; - //return new TimeSpan(Convert.ToInt64(time.Ticks)); - return (TimeSpan)rs[name]; + object value = rs[name]; + if (value is TimeSpan) //For those dialects where DbType.Time means TimeSpan. + return (TimeSpan)value; + + DateTime time = (DateTime)rs[name]; + return new TimeSpan(Convert.ToInt64(time.Ticks)); } catch (Exception ex) { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs 2009-02-06 13:40:28 UTC (rev 4057) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs 2009-02-06 14:58:31 UTC (rev 4058) @@ -1,5 +1,6 @@ using System; using System.Collections; +using System.Data; using NUnit.Framework; namespace NHibernate.Test.NHSpecificTest.Dates @@ -12,6 +13,11 @@ get { return new[] {"NHSpecificTest.Dates.Mappings.DateTime2.hbm.xml"}; } } + protected override DbType? AppliesTo() + { + return DbType.DateTime2; + } + [Test] public void SavingAndRetrievingTest() { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs 2009-02-06 13:40:28 UTC (rev 4057) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs 2009-02-06 14:58:31 UTC (rev 4058) @@ -1,5 +1,6 @@ using System; using System.Collections; +using System.Data; using NUnit.Framework; namespace NHibernate.Test.NHSpecificTest.Dates @@ -12,6 +13,11 @@ get { return new[] {"NHSpecificTest.Dates.Mappings.DateTimeOffset.hbm.xml"}; } } + protected override DbType? AppliesTo() + { + return DbType.DateTimeOffset; + } + [Test] public void SavingAndRetrievingTest() { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/FixtureBase.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/FixtureBase.cs 2009-02-06 13:40:28 UTC (rev 4057) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/FixtureBase.cs 2009-02-06 14:58:31 UTC (rev 4058) @@ -1,6 +1,8 @@ using System; using System.Collections; +using System.Data; using NHibernate.Dialect; +using NHibernate.Util; using NUnit.Framework; namespace NHibernate.Test.NHSpecificTest.Dates @@ -17,7 +19,25 @@ protected override bool AppliesTo(Dialect.Dialect dialect) { - return dialect is MsSql2008Dialect; + var typeNames = (TypeNames)typeof(Dialect.Dialect).GetField("typeNames", ReflectHelper.AnyVisibilityInstance).GetValue(Dialect); + try + { + var value = AppliesTo(); + + if (value == null) return true; + + typeNames.Get(value.Value); + } + catch (ArgumentException arg) + { + return false; + } + catch (Exception arg) + { + Assert.Fail("Probably a bug in the test case."); + } + + return true; } protected void SavingAndRetrievingAction(AllDates entity, Action<AllDates> action) @@ -47,5 +67,10 @@ tx.Commit(); } } + + protected virtual DbType? AppliesTo() + { + return null; + } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs 2009-02-06 13:40:28 UTC (rev 4057) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs 2009-02-06 14:58:31 UTC (rev 4058) @@ -1,5 +1,6 @@ using System; using System.Collections; +using NHibernate.Dialect; using NUnit.Framework; namespace NHibernate.Test.NHSpecificTest.Dates @@ -16,8 +17,17 @@ public void SavingAndRetrievingTest() { var now = DateTime.Parse("23:59:59").TimeOfDay; + SavingAndRetrievingAction(new AllDates {Sql_time = now}, - entity => Assert.AreEqual(entity.Sql_time, now)); + entity => + { + Assert.AreEqual(entity.Sql_time.Hours, now.Hours); + Assert.AreEqual(entity.Sql_time.Minutes, now.Minutes); + Assert.AreEqual(entity.Sql_time.Seconds, now.Seconds); + }); + + if(Dialect is MsSql2008Dialect) + SavingAndRetrievingAction(new AllDates { Sql_time = now }, entity => Assert.AreEqual(entity.Sql_time, now)); } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs 2009-02-06 13:40:28 UTC (rev 4057) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs 2009-02-06 14:58:31 UTC (rev 4058) @@ -1,4 +1,5 @@ using System; +using NHibernate.Dialect; using NHibernate.Type; using NUnit.Framework; @@ -61,7 +62,13 @@ using (ITransaction tx = s.BeginTransaction()) { entityReturned = s.CreateQuery("from TimeSpanClass").UniqueResult<TimeSpanClass>(); - Assert.AreEqual(ticks, entityReturned.TimeSpanValue); + + if(Dialect is MsSql2008Dialect) + Assert.AreEqual(ticks, entityReturned.TimeSpanValue); + + Assert.AreEqual(entityReturned.TimeSpanValue.Hours,ticks.Hours); + Assert.AreEqual(entityReturned.TimeSpanValue.Minutes, ticks.Minutes); + Assert.AreEqual(entityReturned.TimeSpanValue.Seconds, ticks.Seconds); } using (ISession s = OpenSession()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2009-02-06 13:40:31
|
Revision: 4057 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4057&view=rev Author: darioquintana Date: 2009-02-06 13:40:28 +0000 (Fri, 06 Feb 2009) Log Message: ----------- Passing test for NH-1656 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Time.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Time.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Time.hbm.xml 2009-02-06 13:22:50 UTC (rev 4056) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Time.hbm.xml 2009-02-06 13:40:28 UTC (rev 4057) @@ -9,7 +9,7 @@ <generator class="native"/> </id> - <property name="Sql_time" type="time" /> + <property name="Sql_time" type="TimeSpan" /> </class> Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs 2009-02-06 13:22:50 UTC (rev 4056) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs 2009-02-06 13:40:28 UTC (rev 4057) @@ -12,12 +12,12 @@ get { return new[] {"NHSpecificTest.Dates.Mappings.Time.hbm.xml"}; } } - [Test,Ignore] + [Test] public void SavingAndRetrievingTest() { - TimeSpan Now = TimeSpan.MaxValue; - SavingAndRetrievingAction(new AllDates {Sql_time = Now}, - entity => Assert.AreEqual(entity.Sql_time, Now)); + var now = DateTime.Parse("23:59:59").TimeOfDay; + SavingAndRetrievingAction(new AllDates {Sql_time = now}, + entity => Assert.AreEqual(entity.Sql_time, now)); } } } \ 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: <dar...@us...> - 2009-02-06 13:23:11
|
Revision: 4056 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4056&view=rev Author: darioquintana Date: 2009-02-06 13:22:50 +0000 (Fri, 06 Feb 2009) Log Message: ----------- Breaking change NH-1657. - Now type="TimeSpan" maps a TimeSpan (CLR) to a DbTime.Time (DbType) - TimeType prepared to work with TimeSpan or DateTime, depends the dialect. - Old TimeSpanType was moved to TimeSpanInt64Type (type="TimeSpanInt64") Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs trunk/nhibernate/src/NHibernate/NHibernate.csproj trunk/nhibernate/src/NHibernate/NHibernateUtil.cs trunk/nhibernate/src/NHibernate/Type/TimeType.cs trunk/nhibernate/src/NHibernate/Type/TypeFactory.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate/Type/TimeSpanInt64Type.cs trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanClass.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanClass.hbm.xml trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64Class.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64Class.hbm.xml trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64TypeFixture.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs 2009-02-05 23:34:48 UTC (rev 4055) +++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -10,7 +10,7 @@ RegisterColumnType(DbType.DateTime2, "DATETIME2"); RegisterColumnType(DbType.DateTimeOffset, "DATETIMEOFFSET"); RegisterColumnType(DbType.Date, "DATE"); - //RegisterColumnType(DbType.Time, "TIME"); + RegisterColumnType(DbType.Time, "TIME"); RegisterFunction("current_timestamp", new NoArgSQLFunction("sysdatetime", NHibernateUtil.DateTime2, true)); RegisterFunction("current_timestamp_offset", new NoArgSQLFunction("sysdatetimeoffset", NHibernateUtil.DateTimeOffset, true)); Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-05 23:34:48 UTC (rev 4055) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-06 13:22:50 UTC (rev 4056) @@ -396,7 +396,7 @@ <Compile Include="Type\StringClobType.cs" /> <Compile Include="Type\StringType.cs" /> <Compile Include="Type\TicksType.cs" /> - <Compile Include="Type\TimeSpanType.cs" /> + <Compile Include="Type\TimeSpanInt64Type.cs" /> <Compile Include="Type\TimestampType.cs" /> <Compile Include="Type\TimeType.cs" /> <Compile Include="Type\TrueFalseType.cs" /> @@ -1084,6 +1084,7 @@ <Compile Include="Type\AnsiCharType.cs" /> <Compile Include="Type\AnyType.cs" /> <Compile Include="Type\AbstractCharType.cs" /> + <Compile Include="Type\TimeSpanType.cs" /> <Compile Include="Type\DateTime2Type.cs" /> <Compile Include="Type\ClassMetaType.cs" /> <Compile Include="Type\CollectionType.cs" /> Modified: trunk/nhibernate/src/NHibernate/NHibernateUtil.cs =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernateUtil.cs 2009-02-05 23:34:48 UTC (rev 4055) +++ trunk/nhibernate/src/NHibernate/NHibernateUtil.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -211,6 +211,11 @@ public static readonly NullableType TimeSpan = new TimeSpanType(); /// <summary> + /// NHibernate Ticks type + /// </summary> + public static readonly NullableType TimeSpanInt64 = new TimeSpanInt64Type(); + + /// <summary> /// NHibernate Timestamp type /// </summary> public static readonly NullableType Timestamp = new TimestampType(); Copied: trunk/nhibernate/src/NHibernate/Type/TimeSpanInt64Type.cs (from rev 4049, trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs) =================================================================== --- trunk/nhibernate/src/NHibernate/Type/TimeSpanInt64Type.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Type/TimeSpanInt64Type.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -0,0 +1,119 @@ +using System; +using System.Collections; +using System.Data; +using NHibernate.Engine; +using NHibernate.SqlTypes; +using System.Collections.Generic; + +namespace NHibernate.Type +{ + /// <summary> + /// Maps a <see cref="System.TimeSpan" /> Property to an <see cref="DbType.Int64" /> column + /// </summary> + [Serializable] + public class TimeSpanInt64Type : PrimitiveType, IVersionType, ILiteralType + { + /// <summary></summary> + internal TimeSpanInt64Type() + : base(SqlTypeFactory.Int64) + { + } + + /// <summary></summary> + public override string Name + { + get { return "TimeSpanInt64"; } + } + + public override object Get(IDataReader rs, int index) + { + try + { + return new TimeSpan(Convert.ToInt64(rs[index])); + } + catch (Exception ex) + { + throw new FormatException(string.Format("Input string '{0}' was not in the correct format.", rs[index]), ex); + } + } + + public override object Get(IDataReader rs, string name) + { + try + { + return new TimeSpan(Convert.ToInt64(rs[name])); + } + catch (Exception ex) + { + throw new FormatException(string.Format("Input string '{0}' was not in the correct format.", rs[name]), ex); + } + } + + /// <summary></summary> + public override System.Type ReturnedClass + { + get { return typeof(TimeSpan); } + } + + /// <summary> + /// + /// </summary> + /// <param name="st"></param> + /// <param name="value"></param> + /// <param name="index"></param> + public override void Set(IDbCommand st, object value, int index) + { + ((IDataParameter)st.Parameters[index]).Value = ((TimeSpan)value).Ticks; + } + + public override string ToString(object val) + { + return ((TimeSpan)val).Ticks.ToString(); + } + + #region IVersionType Members + + public object Next(object current, ISessionImplementor session) + { + return Seed(session); + } + + /// <summary></summary> + public virtual object Seed(ISessionImplementor session) + { + return new TimeSpan(DateTime.Now.Ticks); + } + + public object StringToObject(string xml) + { + return TimeSpan.Parse(xml); + } + + public IComparer Comparator + { + get { return Comparer<TimeSpan>.Default; } + } + + #endregion + + public override object FromStringValue(string xml) + { + return TimeSpan.Parse(xml); + } + + public override System.Type PrimitiveClass + { + get { return typeof(TimeSpan); } + } + + public override object DefaultValue + { + get { return TimeSpan.Zero; } + } + + public override string ObjectToSQLString(object value, Dialect.Dialect dialect) + { + return '\'' + ((TimeSpan)value).Ticks.ToString() + '\''; + } + } +} \ No newline at end of file Deleted: trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs 2009-02-05 23:34:48 UTC (rev 4055) +++ trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -1,119 +0,0 @@ -using System; -using System.Collections; -using System.Data; -using NHibernate.Engine; -using NHibernate.SqlTypes; -using System.Collections.Generic; - -namespace NHibernate.Type -{ - /// <summary> - /// Maps a <see cref="System.TimeSpan" /> Property to an <see cref="DbType.Int64" /> column - /// </summary> - [Serializable] - public class TimeSpanType : PrimitiveType, IVersionType, ILiteralType - { - /// <summary></summary> - internal TimeSpanType() - : base(SqlTypeFactory.Int64) - { - } - - /// <summary></summary> - public override string Name - { - get { return "TimeSpan"; } - } - - public override object Get(IDataReader rs, int index) - { - try - { - return new TimeSpan(Convert.ToInt64(rs[index])); - } - catch (Exception ex) - { - throw new FormatException(string.Format("Input string '{0}' was not in the correct format.", rs[index]), ex); - } - } - - public override object Get(IDataReader rs, string name) - { - try - { - return new TimeSpan(Convert.ToInt64(rs[name])); - } - catch (Exception ex) - { - throw new FormatException(string.Format("Input string '{0}' was not in the correct format.", rs[name]), ex); - } - } - - /// <summary></summary> - public override System.Type ReturnedClass - { - get { return typeof(TimeSpan); } - } - - /// <summary> - /// - /// </summary> - /// <param name="st"></param> - /// <param name="value"></param> - /// <param name="index"></param> - public override void Set(IDbCommand st, object value, int index) - { - ((IDataParameter)st.Parameters[index]).Value = ((TimeSpan)value).Ticks; - } - - public override string ToString(object val) - { - return ((TimeSpan)val).Ticks.ToString(); - } - - #region IVersionType Members - - public object Next(object current, ISessionImplementor session) - { - return Seed(session); - } - - /// <summary></summary> - public virtual object Seed(ISessionImplementor session) - { - return new TimeSpan(DateTime.Now.Ticks); - } - - public object StringToObject(string xml) - { - return TimeSpan.Parse(xml); - } - - public IComparer Comparator - { - get { return Comparer<TimeSpan>.Default; } - } - - #endregion - - public override object FromStringValue(string xml) - { - return TimeSpan.Parse(xml); - } - - public override System.Type PrimitiveClass - { - get { return typeof(TimeSpan); } - } - - public override object DefaultValue - { - get { return TimeSpan.Zero; } - } - - public override string ObjectToSQLString(object value, Dialect.Dialect dialect) - { - return '\'' + ((TimeSpan)value).Ticks.ToString() + '\''; - } - } -} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Type/TimeSpanType.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -0,0 +1,114 @@ +using System; +using System.Collections; +using System.Data; +using NHibernate.Engine; +using NHibernate.SqlTypes; +using System.Collections.Generic; + +namespace NHibernate.Type +{ + /// <summary> + /// Maps a <see cref="System.TimeSpan" /> Property to an <see cref="DbType.Time" /> column + /// </summary> + [Serializable] + public class TimeSpanType : PrimitiveType, IVersionType, ILiteralType + { + private static readonly DateTime BaseDateValue = new DateTime(1753, 01, 01); + + internal TimeSpanType() + : base(SqlTypeFactory.Time) + { + } + + public override string Name + { + get { return "TimeSpan"; } + } + + public override object Get(IDataReader rs, int index) + { + try + { + return (TimeSpan)rs[index]; + } + catch (Exception ex) + { + throw new FormatException(string.Format("Input string '{0}' was not in the correct format.", rs[index]), ex); + } + } + + public override object Get(IDataReader rs, string name) + { + try + { + //DateTime time = (DateTime)rs[name]; + //return new TimeSpan(Convert.ToInt64(time.Ticks)); + return (TimeSpan)rs[name]; + } + catch (Exception ex) + { + throw new FormatException(string.Format("Input string '{0}' was not in the correct format.", rs[name]), ex); + } + } + + public override void Set(IDbCommand st, object value, int index) + { + DateTime date = BaseDateValue.AddTicks(((TimeSpan)value).Ticks); + ((IDataParameter) st.Parameters[index]).Value = date; + } + + public override System.Type ReturnedClass + { + get { return typeof(TimeSpan); } + } + + public override string ToString(object val) + { + return ((TimeSpan)val).Ticks.ToString(); + } + + #region IVersionType Members + + public object Next(object current, ISessionImplementor session) + { + return Seed(session); + } + + public virtual object Seed(ISessionImplementor session) + { + return new TimeSpan(DateTime.Now.Ticks); + } + + public object StringToObject(string xml) + { + return TimeSpan.Parse(xml); + } + + public IComparer Comparator + { + get { return Comparer<TimeSpan>.Default; } + } + + #endregion + + public override object FromStringValue(string xml) + { + return TimeSpan.Parse(xml); + } + + public override System.Type PrimitiveClass + { + get { return typeof(TimeSpan); } + } + + public override object DefaultValue + { + get { return TimeSpan.Zero; } + } + + public override string ObjectToSQLString(object value, Dialect.Dialect dialect) + { + return '\'' + ((TimeSpan)value).Ticks.ToString() + '\''; + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/Type/TimeType.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/TimeType.cs 2009-02-05 23:34:48 UTC (rev 4055) +++ trunk/nhibernate/src/NHibernate/Type/TimeType.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -14,7 +14,7 @@ /// using this Type indicates that you don't care about the Date portion of the DateTime. /// </para> /// <para> - /// A more appropriate choice to store the duration/time is the <see cref="TimeSpanType"/>. + /// A more appropriate choice to store the duration/time is the <see cref="TimeSpanInt64Type"/>. /// The underlying <see cref="DbType.Time"/> tends to be handled differently by different /// DataProviders. /// </para> @@ -37,6 +37,12 @@ { try { + if(rs[index] is TimeSpan) //For those dialects where DbType.Time means TimeSpan. + { + TimeSpan time = (TimeSpan) rs[index]; + return BaseDateValue.AddTicks(time.Ticks); + } + DateTime dbValue = Convert.ToDateTime(rs[index]); return new DateTime(1753, 01, 01, dbValue.Hour, dbValue.Minute, dbValue.Second); } Modified: trunk/nhibernate/src/NHibernate/Type/TypeFactory.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Type/TypeFactory.cs 2009-02-05 23:34:48 UTC (rev 4055) +++ trunk/nhibernate/src/NHibernate/Type/TypeFactory.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -122,6 +122,7 @@ RegisterType(typeof(SByte), NHibernateUtil.SByte, null); RegisterType(typeof(Single), NHibernateUtil.Single, "float"); RegisterType(typeof(String), NHibernateUtil.String, "string"); + RegisterType(typeof(TimeSpan), NHibernateUtil.TimeSpanInt64,null); RegisterType(typeof(TimeSpan), NHibernateUtil.TimeSpan, null); RegisterType(typeof(System.Type), NHibernateUtil.Class, "class"); @@ -142,6 +143,7 @@ typeByTypeOfName[NHibernateUtil.TrueFalse.Name] = NHibernateUtil.TrueFalse; typeByTypeOfName[NHibernateUtil.YesNo.Name] = NHibernateUtil.YesNo; typeByTypeOfName[NHibernateUtil.Ticks.Name] = NHibernateUtil.Ticks; + typeByTypeOfName[NHibernateUtil.TimeSpanInt64.Name] = NHibernateUtil.TimeSpanInt64; typeByTypeOfName[NHibernateUtil.TimeSpan.Name] = NHibernateUtil.TimeSpan; // need to do add the key "Serializable" because the hbm files will have a Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-05 23:34:48 UTC (rev 4055) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-06 13:22:50 UTC (rev 4056) @@ -1004,6 +1004,9 @@ <Compile Include="TypesTest\BooleanTypeFixture.cs" /> <Compile Include="TypesTest\ByteClass.cs" /> <Compile Include="TypesTest\ByteTypeFixture.cs" /> + <Compile Include="TypesTest\TimeSpanClass.cs" /> + <Compile Include="TypesTest\TimeSpanTypeFixture.cs" /> + <Compile Include="TypesTest\TimeSpanInt64Class.cs" /> <Compile Include="TypesTest\Decima2lTypeFixture.cs" /> <Compile Include="TypesTest\DateTimeTypeFixture.cs" /> <Compile Include="TypesTest\DecimalClass.cs" /> @@ -1032,7 +1035,7 @@ <Compile Include="TypesTest\StringClobTypeFixture.cs" /> <Compile Include="TypesTest\StringTypeFixture.cs" /> <Compile Include="TypesTest\TicksTypeFixture.cs" /> - <Compile Include="TypesTest\TimeSpanTypeFixture.cs" /> + <Compile Include="TypesTest\TimeSpanInt64TypeFixture.cs" /> <Compile Include="TypesTest\TimestampTypeFixture.cs" /> <Compile Include="TypesTest\TypeFactoryFixture.cs" /> <Compile Include="TypesTest\TypeFixtureBase.cs" /> @@ -1641,6 +1644,8 @@ <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> <EmbeddedResource Include="NHSpecificTest\NH1289\Mappings.hbm.xml" /> + <EmbeddedResource Include="TypesTest\TimeSpanClass.hbm.xml" /> + <EmbeddedResource Include="TypesTest\TimeSpanInt64Class.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\FileStreamSql2008\Mappings.hbm.xml" /> <EmbeddedResource Include="Generatedkeys\Seqidentity\MyEntity.hbm.xml" /> <EmbeddedResource Include="IdGen\NativeGuid\NativeGuidPoid.hbm.xml" /> Added: trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanClass.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanClass.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanClass.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -0,0 +1,10 @@ +using System; + +namespace NHibernate.Test.TypesTest +{ + public class TimeSpanClass + { + public int Id { get; set; } + public TimeSpan TimeSpanValue { get; set; } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanClass.hbm.xml (from rev 4049, trunk/nhibernate/src/NHibernate.Test/TypesTest/StringClobClass.hbm.xml) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanClass.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanClass.hbm.xml 2009-02-06 13:22:50 UTC (rev 4056) @@ -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.TimeSpanClass, NHibernate.Test"> + <id name="Id"> + <generator class="native" /> + </id> + <property name="TimeSpanValue" type="TimeSpan" /> + </class> + +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64Class.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64Class.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64Class.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -0,0 +1,10 @@ +using System; + +namespace NHibernate.Test.TypesTest +{ + public class TimeSpanInt64Class + { + public int Id { get; set; } + public TimeSpan TimeSpanValue { get; set; } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64Class.hbm.xml (from rev 4049, trunk/nhibernate/src/NHibernate.Test/TypesTest/StringClobClass.hbm.xml) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64Class.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64Class.hbm.xml 2009-02-06 13:22:50 UTC (rev 4056) @@ -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.TimeSpanInt64Class, NHibernate.Test"> + <id name="Id"> + <generator class="native" /> + </id> + <property name="TimeSpanValue" type="TimeSpanInt64" /> + </class> + +</hibernate-mapping> Copied: trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64TypeFixture.cs (from rev 4049, trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64TypeFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanInt64TypeFixture.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -0,0 +1,75 @@ +using System; +using NHibernate.Type; +using NUnit.Framework; + +namespace NHibernate.Test.TypesTest +{ + /// <summary> + /// Summary description for TimeSpanTypeFixture. + /// </summary> + [TestFixture] + public class TimeSpanInt64TypeFixture + { + [Test] + public void Next() + { + var type = (TimeSpanInt64Type) NHibernateUtil.TimeSpanInt64; + object current = new TimeSpan(DateTime.Now.Ticks - 5); + object next = type.Next(current, null); + + Assert.IsTrue(next is TimeSpan, "Next should be TimeSpan"); + Assert.IsTrue((TimeSpan) next > (TimeSpan) current, + "next should be greater than current (could be equal depending on how quickly this occurs)"); + } + + [Test] + public void Seed() + { + var type = (TimeSpanInt64Type) NHibernateUtil.TimeSpanInt64; + Assert.IsTrue(type.Seed(null) is TimeSpan, "seed should be TimeSpan"); + } + } + + [TestFixture] + public class TimeSpanInt64Fixture2 : TypeFixtureBase + { + protected override string TypeName + { + get { return "TimeSpanInt64"; } + } + + [Test] + public void SavingAndRetrieving() + { + var ticks = new TimeSpan(1982); + + var entity = new TimeSpanInt64Class + { + TimeSpanValue = ticks + }; + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Save(entity); + tx.Commit(); + } + + TimeSpanInt64Class entityReturned; + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + entityReturned = s.CreateQuery("from TimeSpanInt64Class").UniqueResult<TimeSpanInt64Class>(); + Assert.AreEqual(ticks, entityReturned.TimeSpanValue); + } + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Delete(entityReturned); + tx.Commit(); + } + } + } +} \ No newline at end of file Deleted: trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs 2009-02-05 23:34:48 UTC (rev 4055) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -1,32 +0,0 @@ -using System; -using NHibernate.Type; -using NUnit.Framework; - -namespace NHibernate.Test.TypesTest -{ - /// <summary> - /// Summary description for TimeSpanTypeFixture. - /// </summary> - [TestFixture] - public class TimeSpanTypeFixture - { - [Test] - public void Next() - { - TimeSpanType type = (TimeSpanType) NHibernateUtil.TimeSpan; - object current = new TimeSpan(DateTime.Now.Ticks - 5); - object next = type.Next(current, null); - - Assert.IsTrue(next is TimeSpan, "Next should be TimeSpan"); - Assert.IsTrue((TimeSpan) next > (TimeSpan) current, - "next should be greater than current (could be equal depending on how quickly this occurs)"); - } - - [Test] - public void Seed() - { - TimeSpanType type = (TimeSpanType) NHibernateUtil.TimeSpan; - Assert.IsTrue(type.Seed(null) is TimeSpan, "seed should be TimeSpan"); - } - } -} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/TimeSpanTypeFixture.cs 2009-02-06 13:22:50 UTC (rev 4056) @@ -0,0 +1,75 @@ +using System; +using NHibernate.Type; +using NUnit.Framework; + +namespace NHibernate.Test.TypesTest +{ + /// <summary> + /// Summary description for TimeSpanTypeFixture. + /// </summary> + [TestFixture] + public class TimeSpanTypeFixture + { + [Test] + public void Next() + { + var type = (TimeSpanType) NHibernateUtil.TimeSpan; + object current = new TimeSpan(DateTime.Now.Ticks - 5); + object next = type.Next(current, null); + + Assert.IsTrue(next is TimeSpan, "Next should be TimeSpan"); + Assert.IsTrue((TimeSpan) next > (TimeSpan) current, + "next should be greater than current (could be equal depending on how quickly this occurs)"); + } + + [Test] + public void Seed() + { + var type = (TimeSpanType) NHibernateUtil.TimeSpan; + Assert.IsTrue(type.Seed(null) is TimeSpan, "seed should be TimeSpan"); + } + } + + [TestFixture] + public class TimeSpanFixture2 : TypeFixtureBase + { + protected override string TypeName + { + get { return "TimeSpan"; } + } + + [Test] + public void SavingAndRetrieving() + { + var ticks = DateTime.Parse("23:59:59").TimeOfDay; + + var entity = new TimeSpanClass + { + TimeSpanValue = ticks + }; + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Save(entity); + tx.Commit(); + } + + TimeSpanClass entityReturned; + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + entityReturned = s.CreateQuery("from TimeSpanClass").UniqueResult<TimeSpanClass>(); + Assert.AreEqual(ticks, entityReturned.TimeSpanValue); + } + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Delete(entityReturned); + tx.Commit(); + } + } + } +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2009-02-05 23:34:50
|
Revision: 4055 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4055&view=rev Author: tehlike Date: 2009-02-05 23:34:48 +0000 (Thu, 05 Feb 2009) Log Message: ----------- Removing Castle folder. Modified Paths: -------------- trunk/nhibernate/src/NHibernate/NHibernate.csproj Removed Paths: ------------- trunk/nhibernate/src/NHibernate/Intercept/Castle/ Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-05 22:15:53 UTC (rev 4054) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-05 23:34:48 UTC (rev 4055) @@ -1162,7 +1162,6 @@ <Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" /> </ItemGroup> <ItemGroup> - <Folder Include="Intercept\Castle\" /> <Folder Include="Loader\Hql\" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2009-02-05 23:22:21
|
Revision: 4053 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4053&view=rev Author: tehlike Date: 2009-02-05 21:57:10 +0000 (Thu, 05 Feb 2009) Log Message: ----------- Fixing a failing test. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs Modified: trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs 2009-02-05 13:24:13 UTC (rev 4052) +++ trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs 2009-02-05 21:57:10 UTC (rev 4053) @@ -750,6 +750,8 @@ [Test] public void Current_TimeStamp_Offset() { + if (!Dialect.Functions.ContainsKey("current_timestamp_offset")) + Assert.Ignore(Dialect + " doesn't support current_timestamp_offset function"); IgnoreIfNotSupported("current_timestamp_offset"); using (ISession s = OpenSession()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <te...@us...> - 2009-02-05 23:22:19
|
Revision: 4054 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4054&view=rev Author: tehlike Date: 2009-02-05 22:15:53 +0000 (Thu, 05 Feb 2009) Log Message: ----------- Ignored test for NH-1289 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_Product.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_PurchaseItem.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_PurchaseOrder.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Product.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/PurchaseItem.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/PurchaseOrder.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/WorkflowItem.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_Product.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_Product.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_Product.cs 2009-02-05 22:15:53 UTC (rev 4054) @@ -0,0 +1,19 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH1289 +{ + [Serializable] + public class Cons_Product : Product + { + #region Fields + + + public virtual string ImageName + { + get; + set; + } + + #endregion + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_PurchaseItem.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_PurchaseItem.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_PurchaseItem.cs 2009-02-05 22:15:53 UTC (rev 4054) @@ -0,0 +1,9 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH1289 +{ + public class Cons_PurchaseItem : PurchaseItem + { + + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_PurchaseOrder.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_PurchaseOrder.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Cons_PurchaseOrder.cs 2009-02-05 22:15:53 UTC (rev 4054) @@ -0,0 +1,11 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH1289 +{ + + [Serializable] + public class Cons_PurchaseOrder : PurchaseOrder + { + + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Fixture.cs 2009-02-05 22:15:53 UTC (rev 4054) @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Iesi.Collections.Generic; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; + +namespace NHibernate.Test.NHSpecificTest.NH1289 +{ + [TestFixture,Ignore] + public class Fixture:BugTestCase + { + protected override void OnSetUp() + { + using(var ses=OpenSession()) + using(var tran=ses.BeginTransaction()) + { + var purchaseOrder = new Cons_PurchaseOrder + { + PurchaseItems = new HashedSet<PurchaseItem>(), + }; + var product = new Cons_Product + { + ProductName = "abc", + Units = 5, + Price = "123", + Description = "desc", + ImageName = "abc" + }; + + + var purchaseItem = new Cons_PurchaseItem + { + Product = product, + PurchaseOrder = purchaseOrder + }; + purchaseOrder.PurchaseItems.Add(purchaseItem); + ses.Save(product); + ses.Save(purchaseOrder); + ses.Save(purchaseItem); + + tran.Commit(); + } + + + } + protected override void OnTearDown() + { + using (var ses = OpenSession()) + using (var tran = ses.BeginTransaction()) + { + ses.Delete("from Cons_PurchaseOrder"); + ses.Delete("from Cons_PurchaseItem"); + ses.Delete("from Cons_Product"); + tran.Commit(); + } + } + + [Test] + public void ManyToOne_gets_implicit_polymorphism_correctly() + { + using (var ses = OpenSession()) + using (var tran = ses.BeginTransaction()) + { + var purchaseItem = ses.Get<PurchaseItem>(1); + Assert.That(purchaseItem, Is.AssignableFrom(typeof(Cons_PurchaseItem))); + Assert.That(purchaseItem.Product, Is.AssignableFrom(typeof(Cons_Product))); + tran.Commit(); + } + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Mappings.hbm.xml 2009-02-05 22:15:53 UTC (rev 4054) @@ -0,0 +1,54 @@ +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" namespace="NHibernate.Test.NHSpecificTest.NH1289"> + <joined-subclass name="PurchaseOrder" table="PurchaseOrder" + extends="WorkflowItem"> + <key column="Id"/> + + <set name="PurchaseItems" lazy="true" inverse="true" cascade="all" table="PurchaseItem"> + <key column="PurchaseOrderId" /> + <one-to-many class="PurchaseItem" /> + </set> + </joined-subclass> + + <joined-subclass name="Cons_Product" table="Cons_Product" extends="Product"> + <key column="Id"/> + <property name="ImageName" column="ImageName" not-null="false" /> + </joined-subclass> + + <joined-subclass name="Cons_PurchaseItem" table="Cons_PurchaseItem" extends="PurchaseItem"> + <key column="Id"/> + </joined-subclass> + + <joined-subclass name="Cons_PurchaseOrder" table="Cons_PurchaseOrder" extends="PurchaseOrder" > + <key column="Id"/> + </joined-subclass> + + <class name="Product" table="Product"> + + <id name="Id" column="Id" type="System.Int32"> + <generator class="native"/> + </id> + <property name="Description" column="Description" not-null="false" /> + <property name="Price" column="Price" not-null="false" /> + <property name="ProductName" column="ProductName" not-null="false" /> + <property name="Units" column="Units" not-null="false" /> + + </class> + + <class name="PurchaseItem" table="PurchaseItem"> + <id name="Id" column="Id" type="System.Int32"> + <generator class="native"/> + </id> + <many-to-one name="Product" column="ProductId" not-null="true" /> + <many-to-one name="PurchaseOrder" column="PurchaseOrderId" not-null="true" /> + </class> + + + + <class name="WorkflowItem" table="WorkflowItem"> + + <id name="Id" column="Id" type="System.Int32"> + <generator class="native"> + </generator> + </id> + </class> +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Product.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Product.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/Product.cs 2009-02-05 22:15:53 UTC (rev 4054) @@ -0,0 +1,43 @@ +using System; +using Iesi.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH1289 +{ + [Serializable] + public class Product + { + #region Fields + public virtual String Description + { + get; + set; + } + + public virtual Int32 Id + { + get; + set; + } + + public virtual String Price + { + get; + set; + } + + public virtual String ProductName + { + get; + set; + } + + + public virtual Int32? Units + { + get; + set; + } + + #endregion + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/PurchaseItem.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/PurchaseItem.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/PurchaseItem.cs 2009-02-05 22:15:53 UTC (rev 4054) @@ -0,0 +1,31 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH1289 +{ + public class PurchaseItem + { + #region Fields + + public virtual Int32 Id + { + get; + set; + } + + #endregion + + + public virtual PurchaseOrder PurchaseOrder + { + get; + set; + } + + + public virtual Product Product + { + get; + set; + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/PurchaseOrder.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/PurchaseOrder.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/PurchaseOrder.cs 2009-02-05 22:15:53 UTC (rev 4054) @@ -0,0 +1,14 @@ +using System; +using Iesi.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH1289 +{ + public class PurchaseOrder : WorkflowItem + { + public virtual ISet<PurchaseItem> PurchaseItems + { + get; + set; + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/WorkflowItem.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/WorkflowItem.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1289/WorkflowItem.cs 2009-02-05 22:15:53 UTC (rev 4054) @@ -0,0 +1,10 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH1289 +{ + [Serializable] + public class WorkflowItem + { + public virtual int Id { get; set; } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-05 21:57:10 UTC (rev 4053) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-05 22:15:53 UTC (rev 4054) @@ -401,6 +401,14 @@ <Compile Include="NHSpecificTest\NH1274ExportExclude\Home.cs" /> <Compile Include="NHSpecificTest\NH1274ExportExclude\NH1274ExportExcludeFixture.cs" /> <Compile Include="NHSpecificTest\NH1274ExportExclude\Person.cs" /> + <Compile Include="NHSpecificTest\NH1289\Cons_Product.cs" /> + <Compile Include="NHSpecificTest\NH1289\Cons_PurchaseItem.cs" /> + <Compile Include="NHSpecificTest\NH1289\Cons_PurchaseOrder.cs" /> + <Compile Include="NHSpecificTest\NH1289\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1289\Product.cs" /> + <Compile Include="NHSpecificTest\NH1289\PurchaseItem.cs" /> + <Compile Include="NHSpecificTest\NH1289\PurchaseOrder.cs" /> + <Compile Include="NHSpecificTest\NH1289\WorkflowItem.cs" /> <Compile Include="NHSpecificTest\NH1443\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1521\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1549\CategoryWithInheritedId.cs" /> @@ -1632,6 +1640,7 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1289\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\FileStreamSql2008\Mappings.hbm.xml" /> <EmbeddedResource Include="Generatedkeys\Seqidentity\MyEntity.hbm.xml" /> <EmbeddedResource Include="IdGen\NativeGuid\NativeGuidPoid.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2009-02-05 13:24:16
|
Revision: 4052 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4052&view=rev Author: darioquintana Date: 2009-02-05 13:24:13 +0000 (Thu, 05 Feb 2009) Log Message: ----------- NH-1659: current_timestamp in MsSql2008Dialect using SYSDATETIME() NH-1658: current_timestamp_offset: current_timestamp for DateTimeOffset Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs 2009-02-05 12:06:08 UTC (rev 4051) +++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs 2009-02-05 13:24:13 UTC (rev 4052) @@ -1,4 +1,5 @@ using System.Data; +using NHibernate.Dialect.Function; namespace NHibernate.Dialect { @@ -10,6 +11,9 @@ RegisterColumnType(DbType.DateTimeOffset, "DATETIMEOFFSET"); RegisterColumnType(DbType.Date, "DATE"); //RegisterColumnType(DbType.Time, "TIME"); + + RegisterFunction("current_timestamp", new NoArgSQLFunction("sysdatetime", NHibernateUtil.DateTime2, true)); + RegisterFunction("current_timestamp_offset", new NoArgSQLFunction("sysdatetimeoffset", NHibernateUtil.DateTimeOffset, true)); } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs 2009-02-05 12:06:08 UTC (rev 4051) +++ trunk/nhibernate/src/NHibernate.Test/HQL/HQLFunctions.cs 2009-02-05 13:24:13 UTC (rev 4052) @@ -744,7 +744,27 @@ } } + /// <summary> + /// NH-1658 + /// </summary> [Test] + public void Current_TimeStamp_Offset() + { + IgnoreIfNotSupported("current_timestamp_offset"); + using (ISession s = OpenSession()) + { + Animal a1 = new Animal("abcdef", 1.3f); + s.Save(a1); + s.Flush(); + } + using (ISession s = OpenSession()) + { + string hql = "select current_timestamp_offset() from Animal"; + IList result = s.CreateQuery(hql).List(); + } + } + + [Test] public void Extract() { IgnoreIfNotSupported("extract"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2009-02-05 13:22:31
|
Revision: 4051 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4051&view=rev Author: darioquintana Date: 2009-02-05 12:06:08 +0000 (Thu, 05 Feb 2009) Log Message: ----------- minor bug: DbType.Binary declared twice Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs Modified: trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs 2009-02-05 06:50:53 UTC (rev 4050) +++ trunk/nhibernate/src/NHibernate/Dialect/Dialect.cs 2009-02-05 12:06:08 UTC (rev 4051) @@ -138,7 +138,6 @@ RegisterHibernateType(DbType.Time, NHibernateUtil.Time.Name); RegisterHibernateType(DbType.DateTime, NHibernateUtil.Timestamp.Name); RegisterHibernateType(DbType.String, NHibernateUtil.String.Name); - RegisterHibernateType(DbType.Binary, NHibernateUtil.Binary.Name); RegisterHibernateType(DbType.VarNumeric, NHibernateUtil.Decimal.Name); RegisterHibernateType(DbType.Decimal, NHibernateUtil.Decimal.Name); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2009-02-05 06:51:14
|
Revision: 4050 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4050&view=rev Author: darioquintana Date: 2009-02-05 06:50:53 +0000 (Thu, 05 Feb 2009) Log Message: ----------- Workaround to use SqlServer2008 FileStream Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Convert.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/VendorCatalog.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Convert.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Convert.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Convert.cs 2009-02-05 06:50:53 UTC (rev 4050) @@ -0,0 +1,20 @@ +using System.Text; + +namespace NHibernate.Test.NHSpecificTest.FileStreamSql2008 +{ + /// <summary> + /// Byte[]-to-String and String-to-Byte[] converter + /// </summary> + public class Convert + { + public static byte[] ToBytes(string str) + { + return new ASCIIEncoding().GetBytes(str); + } + + public static string ToStr(byte[] bytes) + { + return new ASCIIEncoding().GetString(bytes); + } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Fixture.cs (from rev 4046, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/FixtureBase.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Fixture.cs 2009-02-05 06:50:53 UTC (rev 4050) @@ -0,0 +1,102 @@ +using System; +using System.Collections; +using NHibernate.Cfg; +using NHibernate.Dialect; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.FileStreamSql2008 +{ + /// <summary> + /// Workaround to use FileStream feature + /// http://blogs.msdn.com/manisblog/archive/2007/10/21/filestream-data-type-sql-server-2008.aspx + /// </summary> + [TestFixture] + public class Fixture : TestCase + { + protected override IList Mappings + { + get { return new[] {"NHSpecificTest.FileStreamSql2008.Mappings.hbm.xml"}; } + } + + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect is MsSql2008Dialect; + } + + protected override void Configure(Configuration cfg) + { + //Points to the database created with FileStream Filegroup. + cfg.Properties["connection.connection_string"] = + @"Data Source=localhost\SQLEXPRESS;Initial Catalog=FileStreamDB;Integrated Security=True;Pooling=False"; + + #region CREATE DATABASE example +/* + CREATE DATABASE FileStreamDB ON PRIMARY + ( NAME = FileStreamDB_data, + FILENAME = N'C:\FSDemo\FileStreamDB_data.mdf', + SIZE = 10MB, + MAXSIZE = 50MB, + FILEGROWTH = 10%), + FILEGROUP RowGroup1 + ( NAME = FileStreamDB_group1, + FILENAME = N'C:\FSDemo\FileStreamDB_group1.ndf', + SIZE = 10MB, + MAXSIZE = 50MB, + FILEGROWTH = 5MB), + FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM + ( NAME = FileStreamDBResumes, + FILENAME = N'C:\FSDemo\VendorCatalog') + LOG ON + ( NAME = 'FileStreamDB_log', + FILENAME = N'C:\FSDemo\FileStreamDB_log.ldf', + SIZE = 5MB, + MAXSIZE = 25MB, + FILEGROWTH = 5MB); +*/ +#endregion + } + + [Test] + public void SavingAndRetrieving() + { + Guid rowId = Guid.NewGuid(); + + var entity = new VendorCatalog + { + Name = "Dario", + CatalogID = rowId, + Catalog = Convert.ToBytes("Aqui me pongo a cantar...al compas de la viguela") + }; + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Save(entity); + tx.Commit(); + } + + VendorCatalog entityReturned = null; + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + entityReturned = s.CreateQuery("from VendorCatalog").UniqueResult<VendorCatalog>(); + + Assert.AreEqual("Dario", entityReturned.Name); + Assert.AreEqual(rowId.ToString(), entityReturned.CatalogID.ToString()); + Assert.AreEqual("Aqui me pongo a cantar...al compas de la viguela",Convert.ToStr(entityReturned.Catalog)); + } + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Delete(entityReturned); + tx.Commit(); + } + } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Mappings.hbm.xml (from rev 4046, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Futures/Mappings.hbm.xml) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/Mappings.hbm.xml 2009-02-05 06:50:53 UTC (rev 4050) @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.FileStreamSql2008" + assembly="NHibernate.Test"> + + <!-- Mapping the entity as usual --> + <class name="VendorCatalog"> + <id name="Id"> + <generator class="native"/> + </id> + <property name="Name"/> + <property name="CatalogID"/> + <property name="Catalog"/> + </class> + + <!-- + The workaround consist in alter the table with the special + columns needed to support the FileStream feature. + --> + <database-object> + <create> + <![CDATA[ + + ALTER TABLE VendorCatalog DROP COLUMN CatalogID + ALTER TABLE VendorCatalog ADD CatalogID UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE + ALTER TABLE VendorCatalog DROP COLUMN Catalog + ALTER TABLE VendorCatalog ADD Catalog varbinary(max) FILESTREAM + + ]]> + </create> + <drop/> + </database-object> + +</hibernate-mapping> Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/VendorCatalog.cs (from rev 4046, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Futures/Person.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/VendorCatalog.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/FileStreamSql2008/VendorCatalog.cs 2009-02-05 06:50:53 UTC (rev 4050) @@ -0,0 +1,27 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.FileStreamSql2008 +{ + public class VendorCatalog + { + /// <summary> + /// Usual Object Id, nothing weird + /// </summary> + public virtual int Id { get; set; } + + /// <summary> + /// Simple string property, nothing weird + /// </summary> + public virtual string Name { get; set; } + + /// <summary> + /// Represents the mandatory UNIQUEIDENTIFIER ROWGUIDCOL + /// </summary> + public virtual Guid CatalogID { get; set; } + + /// <summary> + /// FileStream property + /// </summary> + public virtual Byte[] Catalog { get; set; } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-05 04:59:33 UTC (rev 4049) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-05 06:50:53 UTC (rev 4050) @@ -390,6 +390,9 @@ <Compile Include="NHSpecificTest\Dates\FixtureBase.cs" /> <Compile Include="NHSpecificTest\Dates\DateTime2Fixture.cs" /> <Compile Include="NHSpecificTest\Dates\DateTimeAssert.cs" /> + <Compile Include="NHSpecificTest\FileStreamSql2008\VendorCatalog.cs" /> + <Compile Include="NHSpecificTest\FileStreamSql2008\Fixture.cs" /> + <Compile Include="NHSpecificTest\FileStreamSql2008\Convert.cs" /> <Compile Include="NHSpecificTest\Futures\FutureQueryFixture.cs" /> <Compile Include="NHSpecificTest\Futures\FutureCriteriaFixture.cs" /> <Compile Include="NHSpecificTest\Futures\Person.cs" /> @@ -1629,6 +1632,7 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\FileStreamSql2008\Mappings.hbm.xml" /> <EmbeddedResource Include="Generatedkeys\Seqidentity\MyEntity.hbm.xml" /> <EmbeddedResource Include="IdGen\NativeGuid\NativeGuidPoid.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\Dates\Mappings\Time.hbm.xml" /> @@ -1753,4 +1757,4 @@ if exist "$(ProjectDir)hibernate.cfg.xml" (copy "$(ProjectDir)hibernate.cfg.xml" "hibernate.cfg.xml") copy /y "..\..\..\NHibernate.DomainModel\ABC.hbm.xml" "ABC.hbm.xml"</PostBuildEvent> </PropertyGroup> -</Project> \ No newline at end of file +</Project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-02-05 04:59:35
|
Revision: 4049 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4049&view=rev Author: fabiomaulo Date: 2009-02-05 04:59:33 +0000 (Thu, 05 Feb 2009) Log Message: ----------- Minor Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Id/Insert/AbstractReturningDelegate.cs Modified: trunk/nhibernate/src/NHibernate/Id/Insert/AbstractReturningDelegate.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/Insert/AbstractReturningDelegate.cs 2009-02-05 04:57:35 UTC (rev 4048) +++ trunk/nhibernate/src/NHibernate/Id/Insert/AbstractReturningDelegate.cs 2009-02-05 04:59:33 UTC (rev 4049) @@ -16,7 +16,7 @@ { private readonly IPostInsertIdentityPersister persister; - public AbstractReturningDelegate(IPostInsertIdentityPersister persister) + protected AbstractReturningDelegate(IPostInsertIdentityPersister persister) { this.persister = persister; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-02-05 04:57:37
|
Revision: 4048 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4048&view=rev Author: fabiomaulo Date: 2009-02-05 04:57:35 +0000 (Thu, 05 Feb 2009) Log Message: ----------- Class for future usage Modified Paths: -------------- trunk/nhibernate/src/NHibernate/NHibernate.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate/Id/Insert/NoCommentsInsert.cs Added: trunk/nhibernate/src/NHibernate/Id/Insert/NoCommentsInsert.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Id/Insert/NoCommentsInsert.cs (rev 0) +++ trunk/nhibernate/src/NHibernate/Id/Insert/NoCommentsInsert.cs 2009-02-05 04:57:35 UTC (rev 4048) @@ -0,0 +1,17 @@ +using NHibernate.Engine; +using NHibernate.SqlCommand; + +namespace NHibernate.Id.Insert +{ + /// <summary> + /// Disable comments on insert. + /// </summary> + public class NoCommentsInsert : IdentifierGeneratingInsert + { + public NoCommentsInsert(ISessionFactoryImplementor factory) : base(factory) {} + public override SqlInsertBuilder SetComment(string comment) + { + return this; + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate/NHibernate.csproj =================================================================== --- trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-05 04:47:03 UTC (rev 4047) +++ trunk/nhibernate/src/NHibernate/NHibernate.csproj 2009-02-05 04:57:35 UTC (rev 4048) @@ -464,6 +464,7 @@ <Compile Include="Exceptions\ReflectionBasedSqlStateExtracter.cs" /> <Compile Include="Exceptions\SqlStateExtracter.cs" /> <Compile Include="Exceptions\TemplatedViolatedConstraintNameExtracter.cs" /> + <Compile Include="Id\Insert\NoCommentsInsert.cs" /> <Compile Include="Id\NativeGuidGenerator.cs" /> <Compile Include="Id\SelectGenerator.cs" /> <Compile Include="IFutureValue.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2009-02-05 04:47:08
|
Revision: 4047 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4047&view=rev Author: fabiomaulo Date: 2009-02-05 04:47:03 +0000 (Thu, 05 Feb 2009) Log Message: ----------- Test for SequenceIdentity feature Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/MyEntity.cs trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/MyEntity.hbm.xml trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/SequenceIdentityFixture.cs Added: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/MyEntity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/MyEntity.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/MyEntity.cs 2009-02-05 04:47:03 UTC (rev 4047) @@ -0,0 +1,19 @@ +namespace NHibernate.Test.Generatedkeys.Seqidentity +{ + public class MyEntity + { + private int id; + private string name; + + public virtual int Id + { + get { return id; } + } + + public virtual string Name + { + get { return name; } + set { name = value; } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/MyEntity.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/MyEntity.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/MyEntity.hbm.xml 2009-02-05 04:47:03 UTC (rev 4047) @@ -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.Generatedkeys.Seqidentity" + default-access="field"> + + <class name="MyEntity" table="my_entity"> + + <id name="id"> + <generator class="sequence-identity"/> + </id> + <natural-id> + <property name="name"/> + </natural-id> + </class> + +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/SequenceIdentityFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/SequenceIdentityFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Generatedkeys/Seqidentity/SequenceIdentityFixture.cs 2009-02-05 04:47:03 UTC (rev 4047) @@ -0,0 +1,41 @@ +using System.Collections; +using NUnit.Framework; + +namespace NHibernate.Test.Generatedkeys.Seqidentity +{ + [TestFixture, Ignore("Solution not implemented yet.")] + public class SequenceIdentityFixture : TestCase + { + protected override IList Mappings + { + get { return new[] { "Generatedkeys.Seqidentity.MyEntity.hbm.xml" }; } + } + + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect.SupportsSequences; + } + + [Test] + public void SequenceIdentityGenerator() + { + ISession session = OpenSession(); + session.BeginTransaction(); + + var e = new MyEntity{Name="entity-1"}; + session.Save(e); + + // this insert should happen immediately! + Assert.AreEqual(1, e.Id, "id not generated through forced insertion"); + + session.Delete(e); + session.Transaction.Commit(); + session.Close(); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-04 22:54:43 UTC (rev 4046) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-05 04:47:03 UTC (rev 4047) @@ -250,6 +250,8 @@ <Compile Include="Generatedkeys\Identity\MySibling.cs" /> <Compile Include="Generatedkeys\Select\MyEntity.cs" /> <Compile Include="Generatedkeys\Select\SelectGeneratorTest.cs" /> + <Compile Include="Generatedkeys\Seqidentity\MyEntity.cs" /> + <Compile Include="Generatedkeys\Seqidentity\SequenceIdentityFixture.cs" /> <Compile Include="GeneratedTest\AbstractGeneratedPropertyTest.cs" /> <Compile Include="GeneratedTest\Component.cs" /> <Compile Include="GeneratedTest\ComponentOwner.cs" /> @@ -1627,6 +1629,7 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="Generatedkeys\Seqidentity\MyEntity.hbm.xml" /> <EmbeddedResource Include="IdGen\NativeGuid\NativeGuidPoid.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\Dates\Mappings\Time.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\Dates\Mappings\Date.hbm.xml" /> @@ -1750,4 +1753,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: <dar...@us...> - 2009-02-04 22:55:07
|
Revision: 4046 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4046&view=rev Author: darioquintana Date: 2009-02-04 22:54:43 +0000 (Wed, 04 Feb 2009) Log Message: ----------- - Add DbType.Date support to MsSql2008Dialect. - Test for DbType.Time support (not implemented yet) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/AllDates.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeAssert.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateFixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/FixtureBase.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Date.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Time.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DatesFixtureBase.cs Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs 2009-02-04 22:15:23 UTC (rev 4045) +++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2008Dialect.cs 2009-02-04 22:54:43 UTC (rev 4046) @@ -8,6 +8,8 @@ { RegisterColumnType(DbType.DateTime2, "DATETIME2"); RegisterColumnType(DbType.DateTimeOffset, "DATETIMEOFFSET"); + RegisterColumnType(DbType.Date, "DATE"); + //RegisterColumnType(DbType.Time, "TIME"); } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/AllDates.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/AllDates.cs 2009-02-04 22:15:23 UTC (rev 4045) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/AllDates.cs 2009-02-04 22:54:43 UTC (rev 4046) @@ -11,5 +11,9 @@ public DateTime Sql_datetime2 { get; set; } public DateTimeOffset Sql_datetimeoffset { get; set; } + + public TimeSpan Sql_time { get; set; } + + public DateTime Sql_date { get; set; } } } \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateFixture.cs (from rev 4044, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateFixture.cs 2009-02-04 22:54:43 UTC (rev 4046) @@ -0,0 +1,23 @@ +using System; +using System.Collections; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.Dates +{ + [TestFixture] + public class DateFixture : FixtureBase + { + protected override IList Mappings + { + get { return new[] {"NHSpecificTest.Dates.Mappings.Date.hbm.xml"}; } + } + + [Test] + public void SavingAndRetrievingTest() + { + DateTime Now = DateTime.Now; + SavingAndRetrievingAction(new AllDates {Sql_date = Now}, + entity => DateTimeAssert.AreEqual(entity.Sql_date, Now, true)); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs 2009-02-04 22:15:23 UTC (rev 4045) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs 2009-02-04 22:54:43 UTC (rev 4046) @@ -5,7 +5,7 @@ namespace NHibernate.Test.NHSpecificTest.Dates { [TestFixture] - public class DateTime2Fixture : DatesFixtureBase + public class DateTime2Fixture : FixtureBase { protected override IList Mappings { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeAssert.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeAssert.cs 2009-02-04 22:15:23 UTC (rev 4045) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeAssert.cs 2009-02-04 22:54:43 UTC (rev 4046) @@ -4,6 +4,9 @@ namespace NHibernate.Test.NHSpecificTest.Dates { + /// <summary> + /// Useful assert to work with datetimes types. + /// </summary> public class DateTimeAssert { public static void AreEqual(DateTime dt1, DateTime dt2) @@ -11,9 +14,21 @@ bool areEqual = new DateTimeType().IsEqual(dt1, dt2); if (!areEqual) - Assert.Fail(string.Format("Expected {0} but was {1}",dt1,dt2)); + Assert.Fail(string.Format("Expected {0} but was {1}", dt1, dt2)); } + public static void AreEqual(DateTime dt1, DateTime dt2, bool OnlyDatePart) + { + if (!OnlyDatePart) + throw new NotSupportedException(); + + bool areEqual = DatePartAreEqual(dt1, dt2); + + if (!areEqual) + Assert.Fail(string.Format("Expected {0} but was {1}", dt1, dt2)); + } + + public static void AreEqual(DateTimeOffset dt1, DateTimeOffset dt2) { bool areEqual = new DateTimeOffsetType().IsEqual(dt1, dt2); @@ -21,5 +36,27 @@ if (!areEqual) Assert.Fail(string.Format("Expected {0} but was {1}", dt1, dt2)); } + + /// <summary> + /// Compare only the date part. + /// </summary> + /// <returns>true if are equal, false otherwise</returns> + private static bool DatePartAreEqual(DateTime x, DateTime y) + { + if (x == y) + { + return true; + } + + DateTime date1 = x; + DateTime date2 = y; + + if (date1.Equals(date2)) + return true; + + return (date1.Year == date2.Year && + date1.Month == date2.Month && + date1.Day == date2.Day); + } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs 2009-02-04 22:15:23 UTC (rev 4045) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs 2009-02-04 22:54:43 UTC (rev 4046) @@ -5,7 +5,7 @@ namespace NHibernate.Test.NHSpecificTest.Dates { [TestFixture] - public class DateTimeOffSetFixture : DatesFixtureBase + public class DateTimeOffSetFixture : FixtureBase { protected override IList Mappings { Deleted: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DatesFixtureBase.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DatesFixtureBase.cs 2009-02-04 22:15:23 UTC (rev 4045) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DatesFixtureBase.cs 2009-02-04 22:54:43 UTC (rev 4046) @@ -1,51 +0,0 @@ -using System; -using System.Collections; -using NHibernate.Dialect; -using NUnit.Framework; - -namespace NHibernate.Test.NHSpecificTest.Dates -{ - [TestFixture] - public abstract class DatesFixtureBase : TestCase - { - protected abstract override IList Mappings { get; } - - protected override string MappingsAssembly - { - get { return "NHibernate.Test"; } - } - - protected override bool AppliesTo(Dialect.Dialect dialect) - { - return dialect is MsSql2008Dialect; - } - - protected void SavingAndRetrievingAction(AllDates entity, Action<AllDates> action) - { - AllDates dates = entity; - - using (ISession s = OpenSession()) - using (ITransaction tx = s.BeginTransaction()) - { - s.Save(dates); - tx.Commit(); - } - - using (ISession s = OpenSession()) - using (ITransaction tx = s.BeginTransaction()) - { - var datesRecovered = s.CreateQuery("from AllDates").UniqueResult<AllDates>(); - - action.Invoke(datesRecovered); - } - - using (ISession s = OpenSession()) - using (ITransaction tx = s.BeginTransaction()) - { - var datesRecovered = s.CreateQuery("from AllDates").UniqueResult<AllDates>(); - s.Delete(datesRecovered); - tx.Commit(); - } - } - } -} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/FixtureBase.cs (from rev 4044, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DatesFixtureBase.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/FixtureBase.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/FixtureBase.cs 2009-02-04 22:54:43 UTC (rev 4046) @@ -0,0 +1,51 @@ +using System; +using System.Collections; +using NHibernate.Dialect; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.Dates +{ + [TestFixture] + public abstract class FixtureBase : TestCase + { + protected abstract override IList Mappings { get; } + + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect is MsSql2008Dialect; + } + + protected void SavingAndRetrievingAction(AllDates entity, Action<AllDates> action) + { + AllDates dates = entity; + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Save(dates); + tx.Commit(); + } + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + var datesRecovered = s.CreateQuery("from AllDates").UniqueResult<AllDates>(); + + action.Invoke(datesRecovered); + } + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + var datesRecovered = s.CreateQuery("from AllDates").UniqueResult<AllDates>(); + s.Delete(datesRecovered); + tx.Commit(); + } + } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Date.hbm.xml (from rev 4044, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/DateTime2.hbm.xml) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Date.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Date.hbm.xml 2009-02-04 22:54:43 UTC (rev 4046) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.Dates" + assembly="NHibernate.Test"> + + <class name="AllDates" lazy="false"> + + <id name="Id"> + <generator class="native"/> + </id> + + <property name="Sql_date" type="date" /> + + </class> + +</hibernate-mapping> Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Time.hbm.xml (from rev 4044, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/DateTimeOffset.hbm.xml) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Time.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/Time.hbm.xml 2009-02-04 22:54:43 UTC (rev 4046) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.Dates" + assembly="NHibernate.Test"> + + <class name="AllDates" lazy="false"> + + <id name="Id"> + <generator class="native"/> + </id> + + <property name="Sql_time" type="time" /> + + </class> + +</hibernate-mapping> Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs (from rev 4044, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/TimeFixture.cs 2009-02-04 22:54:43 UTC (rev 4046) @@ -0,0 +1,23 @@ +using System; +using System.Collections; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.Dates +{ + [TestFixture] + public class TimeFixture : FixtureBase + { + protected override IList Mappings + { + get { return new[] {"NHSpecificTest.Dates.Mappings.Time.hbm.xml"}; } + } + + [Test,Ignore] + public void SavingAndRetrievingTest() + { + TimeSpan Now = TimeSpan.MaxValue; + SavingAndRetrievingAction(new AllDates {Sql_time = Now}, + entity => Assert.AreEqual(entity.Sql_time, Now)); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-04 22:15:23 UTC (rev 4045) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-04 22:54:43 UTC (rev 4046) @@ -383,7 +383,9 @@ <Compile Include="NHSpecificTest\BasicTimeFixture.cs" /> <Compile Include="NHSpecificTest\BugTestCase.cs" /> <Compile Include="NHSpecificTest\CollectionFixture.cs" /> - <Compile Include="NHSpecificTest\Dates\DatesFixtureBase.cs" /> + <Compile Include="NHSpecificTest\Dates\TimeFixture.cs" /> + <Compile Include="NHSpecificTest\Dates\DateFixture.cs" /> + <Compile Include="NHSpecificTest\Dates\FixtureBase.cs" /> <Compile Include="NHSpecificTest\Dates\DateTime2Fixture.cs" /> <Compile Include="NHSpecificTest\Dates\DateTimeAssert.cs" /> <Compile Include="NHSpecificTest\Futures\FutureQueryFixture.cs" /> @@ -1626,6 +1628,8 @@ <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> <EmbeddedResource Include="IdGen\NativeGuid\NativeGuidPoid.hbm.xml" /> + <EmbeddedResource Include="NHSpecificTest\Dates\Mappings\Time.hbm.xml" /> + <EmbeddedResource Include="NHSpecificTest\Dates\Mappings\Date.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\Dates\Mappings\DateTimeOffset.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1654\Mappings.hbm.xml" /> <EmbeddedResource Include="Pagination\DataPoint.hbm.xml" /> @@ -1746,4 +1750,4 @@ if exist "$(ProjectDir)hibernate.cfg.xml" (copy "$(ProjectDir)hibernate.cfg.xml" "hibernate.cfg.xml") copy /y "..\..\..\NHibernate.DomainModel\ABC.hbm.xml" "ABC.hbm.xml"</PostBuildEvent> </PropertyGroup> -</Project> \ No newline at end of file +</Project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dar...@us...> - 2009-02-04 22:19:13
|
Revision: 4044 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4044&view=rev Author: darioquintana Date: 2009-02-04 21:49:37 +0000 (Wed, 04 Feb 2009) Log Message: ----------- Refactoring: running datetimes test in a separated way Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/AllDates.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeAssert.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DatesFixtureBase.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/DateTime2.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/DateTimeOffset.hbm.xml Removed Paths: ------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DateTime2AndDateTimeOffSet/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2AndDateTimeOffSetFixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings.hbm.xml Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/AllDates.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DateTime2AndDateTimeOffSet/AllDates.cs 2009-02-04 04:46:26 UTC (rev 4033) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/AllDates.cs 2009-02-04 21:49:37 UTC (rev 4044) @@ -1,6 +1,6 @@ using System; -namespace NHibernate.Test.NHSpecificTest.DateTime2AndDateTimeOffSet +namespace NHibernate.Test.NHSpecificTest.Dates { public class AllDates { Deleted: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2AndDateTimeOffSetFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DateTime2AndDateTimeOffSet/DateTime2AndDateTimeOffSetFixture.cs 2009-02-04 04:46:26 UTC (rev 4033) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2AndDateTimeOffSetFixture.cs 2009-02-04 21:49:37 UTC (rev 4044) @@ -1,85 +0,0 @@ -using System; -using System.Collections; -using NHibernate.Dialect; -using NHibernate.Type; -using NUnit.Framework; - -namespace NHibernate.Test.NHSpecificTest.DateTime2AndDateTimeOffSet -{ - [TestFixture] - public class DateTime2AndDateTimeOffSetFixture : TestCase - { - protected override IList Mappings - { - get { return new[] {"NHSpecificTest.DateTime2AndDateTimeOffSet.Mappings.hbm.xml"}; } - } - - protected override string MappingsAssembly - { - get { return "NHibernate.Test"; } - } - - protected override bool AppliesTo(Dialect.Dialect dialect) - { - return dialect is MsSql2008Dialect; - } - - - public class DateTimeAssert - { - public static void AreEqual(DateTime dt1, DateTime dt2) - { - bool areEqual = new DateTimeType().IsEqual(dt1, dt2); - - if (!areEqual) - Assert.Fail("Expected {0} but was {1}"); - } - - public static void AreEqual(DateTimeOffset dt1, DateTimeOffset dt2) - { - bool areEqual = new DateTimeOffsetType().IsEqual(dt1, dt2); - - if (!areEqual) - Assert.Fail("Expected {0} but was {1}"); - } - } - - [Test] - public void SavingAndRetrieving() - { - DateTime Now = DateTime.Now; - DateTimeOffset NowOS = DateTimeOffset.Now; - var dates = new AllDates - { - Sql_datetime = Now, - Sql_datetime2 = DateTime.MinValue, - Sql_datetimeoffset = NowOS, - }; - - using (ISession s = OpenSession()) - using (ITransaction tx = s.BeginTransaction()) - { - s.Save(dates); - tx.Commit(); - } - - using (ISession s = OpenSession()) - using (ITransaction tx = s.BeginTransaction()) - { - var datesRecovered = s.CreateQuery("from AllDates").UniqueResult<AllDates>(); - - DateTimeAssert.AreEqual(datesRecovered.Sql_datetime, Now); - DateTimeAssert.AreEqual(datesRecovered.Sql_datetime2, DateTime.MinValue); - DateTimeAssert.AreEqual(datesRecovered.Sql_datetimeoffset, NowOS); - } - - using (ISession s = OpenSession()) - using (ITransaction tx = s.BeginTransaction()) - { - var datesRecovered = s.CreateQuery("from AllDates").UniqueResult<AllDates>(); - s.Delete(datesRecovered); - tx.Commit(); - } - } - } -} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTime2Fixture.cs 2009-02-04 21:49:37 UTC (rev 4044) @@ -0,0 +1,31 @@ +using System; +using System.Collections; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.Dates +{ + [TestFixture] + public class DateTime2Fixture : DatesFixtureBase + { + protected override IList Mappings + { + get { return new[] {"NHSpecificTest.Dates.Mappings.DateTime2.hbm.xml"}; } + } + + [Test] + public void SavingAndRetrievingTest() + { + DateTime Now = DateTime.Now; + + SavingAndRetrievingAction(new AllDates {Sql_datetime2 = Now}, + entity => DateTimeAssert.AreEqual(entity.Sql_datetime2, Now)); + + + SavingAndRetrievingAction(new AllDates { Sql_datetime2 = DateTime.MinValue }, + entity => DateTimeAssert.AreEqual(entity.Sql_datetime2, DateTime.MinValue)); + + SavingAndRetrievingAction(new AllDates { Sql_datetime2 = DateTime.MaxValue }, + entity => DateTimeAssert.AreEqual(entity.Sql_datetime2, DateTime.MaxValue)); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeAssert.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeAssert.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeAssert.cs 2009-02-04 21:49:37 UTC (rev 4044) @@ -0,0 +1,25 @@ +using System; +using NHibernate.Type; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.Dates +{ + public class DateTimeAssert + { + public static void AreEqual(DateTime dt1, DateTime dt2) + { + bool areEqual = new DateTimeType().IsEqual(dt1, dt2); + + if (!areEqual) + Assert.Fail(string.Format("Expected {0} but was {1}",dt1,dt2)); + } + + public static void AreEqual(DateTimeOffset dt1, DateTimeOffset dt2) + { + bool areEqual = new DateTimeOffsetType().IsEqual(dt1, dt2); + + if (!areEqual) + Assert.Fail(string.Format("Expected {0} but was {1}", dt1, dt2)); + } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs (from rev 4033, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DateTime2AndDateTimeOffSet/DateTime2AndDateTimeOffSetFixture.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DateTimeOffSetFixture.cs 2009-02-04 21:49:37 UTC (rev 4044) @@ -0,0 +1,24 @@ +using System; +using System.Collections; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.Dates +{ + [TestFixture] + public class DateTimeOffSetFixture : DatesFixtureBase + { + protected override IList Mappings + { + get { return new[] {"NHSpecificTest.Dates.Mappings.DateTimeOffset.hbm.xml"}; } + } + + [Test] + public void SavingAndRetrievingTest() + { + DateTimeOffset NowOS = DateTimeOffset.Now; + + SavingAndRetrievingAction(new AllDates {Sql_datetimeoffset = NowOS}, + entity => DateTimeAssert.AreEqual(entity.Sql_datetimeoffset, NowOS)); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DatesFixtureBase.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DatesFixtureBase.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/DatesFixtureBase.cs 2009-02-04 21:49:37 UTC (rev 4044) @@ -0,0 +1,51 @@ +using System; +using System.Collections; +using NHibernate.Dialect; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.Dates +{ + [TestFixture] + public abstract class DatesFixtureBase : TestCase + { + protected abstract override IList Mappings { get; } + + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect is MsSql2008Dialect; + } + + protected void SavingAndRetrievingAction(AllDates entity, Action<AllDates> action) + { + AllDates dates = entity; + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + s.Save(dates); + tx.Commit(); + } + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + var datesRecovered = s.CreateQuery("from AllDates").UniqueResult<AllDates>(); + + action.Invoke(datesRecovered); + } + + using (ISession s = OpenSession()) + using (ITransaction tx = s.BeginTransaction()) + { + var datesRecovered = s.CreateQuery("from AllDates").UniqueResult<AllDates>(); + s.Delete(datesRecovered); + tx.Commit(); + } + } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/DateTime2.hbm.xml (from rev 4033, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DateTime2AndDateTimeOffSet/Mappings.hbm.xml) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/DateTime2.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/DateTime2.hbm.xml 2009-02-04 21:49:37 UTC (rev 4044) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.Dates" + assembly="NHibernate.Test"> + + <class name="AllDates" lazy="false"> + + <id name="Id"> + <generator class="native"/> + </id> + + <property name="Sql_datetime2" type="datetime2" /> + + </class> + +</hibernate-mapping> Copied: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/DateTimeOffset.hbm.xml (from rev 4033, trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DateTime2AndDateTimeOffSet/Mappings.hbm.xml) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/DateTimeOffset.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings/DateTimeOffset.hbm.xml 2009-02-04 21:49:37 UTC (rev 4044) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.Dates" + assembly="NHibernate.Test"> + + <class name="AllDates" lazy="false"> + + <id name="Id"> + <generator class="native"/> + </id> + + <property name="Sql_datetimeoffset" type="datetimeoffset" /> + + </class> + +</hibernate-mapping> Deleted: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DateTime2AndDateTimeOffSet/Mappings.hbm.xml 2009-02-04 04:46:26 UTC (rev 4033) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/Dates/Mappings.hbm.xml 2009-02-04 21:49:37 UTC (rev 4044) @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" - namespace="NHibernate.Test.NHSpecificTest.DateTime2AndDateTimeOffSet" - assembly="NHibernate.Test"> - - <class name="AllDates" lazy="false"> - - <id name="Id"> - <generator class="identity"/> - </id> - - <property name="Sql_datetime" /> - <property name="Sql_datetime2" type="datetime2" /> - <property name="Sql_datetimeoffset" type="datetimeoffset" /> - - </class> - -</hibernate-mapping> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-04 20:49:36 UTC (rev 4043) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-02-04 21:49:37 UTC (rev 4044) @@ -380,11 +380,14 @@ <Compile Include="NHSpecificTest\BasicTimeFixture.cs" /> <Compile Include="NHSpecificTest\BugTestCase.cs" /> <Compile Include="NHSpecificTest\CollectionFixture.cs" /> + <Compile Include="NHSpecificTest\Dates\DatesFixtureBase.cs" /> + <Compile Include="NHSpecificTest\Dates\DateTime2Fixture.cs" /> + <Compile Include="NHSpecificTest\Dates\DateTimeAssert.cs" /> <Compile Include="NHSpecificTest\Futures\FutureQueryFixture.cs" /> <Compile Include="NHSpecificTest\Futures\FutureCriteriaFixture.cs" /> <Compile Include="NHSpecificTest\Futures\Person.cs" /> - <Compile Include="NHSpecificTest\DateTime2AndDateTimeOffSet\AllDates.cs" /> - <Compile Include="NHSpecificTest\DateTime2AndDateTimeOffSet\DateTime2AndDateTimeOffSetFixture.cs" /> + <Compile Include="NHSpecificTest\Dates\AllDates.cs" /> + <Compile Include="NHSpecificTest\Dates\DateTimeOffSetFixture.cs" /> <Compile Include="NHSpecificTest\NH1274ExportExclude\Home.cs" /> <Compile Include="NHSpecificTest\NH1274ExportExclude\NH1274ExportExcludeFixture.cs" /> <Compile Include="NHSpecificTest\NH1274ExportExclude\Person.cs" /> @@ -1619,9 +1622,10 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\Dates\Mappings\DateTimeOffset.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1654\Mappings.hbm.xml" /> <EmbeddedResource Include="Pagination\DataPoint.hbm.xml" /> - <EmbeddedResource Include="NHSpecificTest\DateTime2AndDateTimeOffSet\Mappings.hbm.xml" /> + <EmbeddedResource Include="NHSpecificTest\Dates\Mappings\DateTime2.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\Futures\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1643\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1640\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |