From: <pa...@us...> - 2011-03-06 20:46:17
|
Revision: 5439 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5439&view=rev Author: patearl Date: 2011-03-06 20:46:10 +0000 (Sun, 06 Mar 2011) Log Message: ----------- Tests: Added test dialect indicator for "= some (subquery)". Don't test for it when it's not supported. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs trunk/nhibernate/src/NHibernate.Test/Legacy/SQLFunctionsTest.cs trunk/nhibernate/src/NHibernate.Test/TestDialect.cs trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs Modified: trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs 2011-03-06 20:39:29 UTC (rev 5438) +++ trunk/nhibernate/src/NHibernate.Test/Legacy/FooBarTest.cs 2011-03-06 20:46:10 UTC (rev 5439) @@ -510,7 +510,7 @@ foo.TheFoo.TheFoo = foo; foo.String = "fizard"; - if (Dialect.SupportsSubSelects) + if (Dialect.SupportsSubSelects && TestDialect.SupportsOperatorSome) { if (!(Dialect is FirebirdDialect)) { Modified: trunk/nhibernate/src/NHibernate.Test/Legacy/SQLFunctionsTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Legacy/SQLFunctionsTest.cs 2011-03-06 20:39:29 UTC (rev 5438) +++ trunk/nhibernate/src/NHibernate.Test/Legacy/SQLFunctionsTest.cs 2011-03-06 20:46:10 UTC (rev 5439) @@ -478,7 +478,7 @@ s.Save(min, (long) 30); - if (Dialect.SupportsSubSelects) + if (Dialect.SupportsSubSelects && TestDialect.SupportsOperatorSome) { Assert.AreEqual(2, s.CreateQuery( Modified: trunk/nhibernate/src/NHibernate.Test/TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-06 20:39:29 UTC (rev 5438) +++ trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-06 20:46:10 UTC (rev 5439) @@ -22,5 +22,6 @@ } public virtual bool SupportsOperatorAll { get { return true; } } + public virtual bool SupportsOperatorSome { get { return true; } } } } Modified: trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-03-06 20:39:29 UTC (rev 5438) +++ trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-03-06 20:46:10 UTC (rev 5439) @@ -11,5 +11,10 @@ { get { return false; } } + + public override bool SupportsOperatorSome + { + get { return false; } + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-03-06 21:13:36
|
Revision: 5440 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5440&view=rev Author: patearl Date: 2011-03-06 21:13:30 +0000 (Sun, 06 Mar 2011) Log Message: ----------- Ignore tests relying on locate when locate function is not available. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Linq/FunctionTests.cs trunk/nhibernate/src/NHibernate.Test/Linq/ReadonlyTestCase.cs trunk/nhibernate/src/NHibernate.Test/TestDialect.cs Modified: trunk/nhibernate/src/NHibernate.Test/Linq/FunctionTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/FunctionTests.cs 2011-03-06 20:46:10 UTC (rev 5439) +++ trunk/nhibernate/src/NHibernate.Test/Linq/FunctionTests.cs 2011-03-06 21:13:30 UTC (rev 5440) @@ -45,6 +45,9 @@ [Test] public void CharIndexFunction() { + if (!TestDialect.SupportsLocate) + Assert.Ignore("Locate function not supported."); + var query = from e in db.Employees where e.FirstName.IndexOf('A') == 1 select e.FirstName; @@ -55,6 +58,9 @@ [Test] public void IndexOfFunctionExpression() { + if (!TestDialect.SupportsLocate) + Assert.Ignore("Locate function not supported."); + var query = from e in db.Employees where e.FirstName.IndexOf("An") == 1 select e.FirstName; @@ -75,7 +81,10 @@ [Test] public void TwoFunctionExpression() { - var query = from e in db.Employees + if (!TestDialect.SupportsLocate) + Assert.Ignore("Locate function not supported."); + + var query = from e in db.Employees where e.FirstName.IndexOf("A") == e.BirthDate.Value.Month select e.FirstName; Modified: trunk/nhibernate/src/NHibernate.Test/Linq/ReadonlyTestCase.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/ReadonlyTestCase.cs 2011-03-06 20:46:10 UTC (rev 5439) +++ trunk/nhibernate/src/NHibernate.Test/Linq/ReadonlyTestCase.cs 2011-03-06 21:13:30 UTC (rev 5440) @@ -23,6 +23,11 @@ get { return NHibernate.Dialect.Dialect.GetDialect(_cfg.Properties); } } + protected TestDialect TestDialect + { + get { return TestDialect.GetTestDialect(Dialect); } + } + /// <summary> /// To use in in-line test /// </summary> Modified: trunk/nhibernate/src/NHibernate.Test/TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-06 20:46:10 UTC (rev 5439) +++ trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-06 21:13:30 UTC (rev 5440) @@ -23,5 +23,6 @@ public virtual bool SupportsOperatorAll { get { return true; } } public virtual bool SupportsOperatorSome { get { return true; } } + public virtual bool SupportsLocate { get { return true; } } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ric...@us...> - 2011-03-09 17:07:15
|
Revision: 5449 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5449&view=rev Author: ricbrown Date: 2011-03-09 17:07:09 +0000 (Wed, 09 Mar 2011) Log Message: ----------- Escaped column names for tests failing on Firebird. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Join/Person.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH750/Mappings.hbm.xml Modified: trunk/nhibernate/src/NHibernate.Test/Join/Person.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Join/Person.hbm.xml 2011-03-09 12:24:56 UTC (rev 5448) +++ trunk/nhibernate/src/NHibernate.Test/Join/Person.hbm.xml 2011-03-09 17:07:09 UTC (rev 5449) @@ -66,7 +66,7 @@ </join> <join table="t_silly" fetch="select" optional="true"> <key column="person_id"/> - <property name="_Silly" access="field"/> + <property name="_Silly" column="`_Silly`" access="field"/> </join> </subclass> </class> Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH750/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH750/Mappings.hbm.xml 2011-03-09 12:24:56 UTC (rev 5448) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH750/Mappings.hbm.xml 2011-03-09 17:07:09 UTC (rev 5449) @@ -5,7 +5,7 @@ default-access="field.camelcase-underscore" default-lazy="false"> <class name="Device"> - <id name="_id" type="Int32" access="field"> + <id name="_id" column="`_id`" type="Int32" access="field"> <generator class="native"/> </id> <property name="Manifacturer"/> @@ -16,7 +16,7 @@ </class> <class name="Drive"> - <id name="_id" type="Int32" access="field"> + <id name="_id" column="`_id`" type="Int32" access="field"> <generator class="native"/> </id> <property name="ClassFullName"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-03-13 03:34:18
|
Revision: 5464 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5464&view=rev Author: patearl Date: 2011-03-13 03:34:12 +0000 (Sun, 13 Mar 2011) Log Message: ----------- Tests: Fixed some mismatched test data. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/DbScripts/PostgreSQL82DialectLinqReadonlyCreateScript.sql trunk/nhibernate/src/NHibernate.Test/Linq/NorthwindDbCreator.cs Modified: trunk/nhibernate/src/NHibernate.Test/DbScripts/PostgreSQL82DialectLinqReadonlyCreateScript.sql =================================================================== (Binary files differ) Modified: trunk/nhibernate/src/NHibernate.Test/Linq/NorthwindDbCreator.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Linq/NorthwindDbCreator.cs 2011-03-13 03:23:57 UTC (rev 5463) +++ trunk/nhibernate/src/NHibernate.Test/Linq/NorthwindDbCreator.cs 2011-03-13 03:34:12 UTC (rev 5464) @@ -62,7 +62,8 @@ { InvalidLoginAttempts = 6, LastLoginDate = DateTime.Now.AddDays(-1), - Enum1 = EnumStoredAsString.Medium + Enum1 = EnumStoredAsString.Medium, + Features = FeatureSet.HasAll } }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-03-13 23:01:03
|
Revision: 5468 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5468&view=rev Author: patearl Date: 2011-03-13 23:00:55 +0000 (Sun, 13 Mar 2011) Log Message: ----------- Tests: Improved support for SQLite in some tests. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Fixture.cs trunk/nhibernate/src/NHibernate.Test/TestDialect.cs trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs 2011-03-13 04:56:18 UTC (rev 5467) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/DtcFailures/DtcFailuresFixture.cs 2011-03-13 23:00:55 UTC (rev 5468) @@ -23,6 +23,11 @@ get { return "NHibernate.Test"; } } + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return TestDialect.GetTestDialect(dialect).SupportsDistributedTransactions; + } + [Test] public void WillNotCrashOnDtcPrepareFailure() { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Fixture.cs 2011-03-13 04:56:18 UTC (rev 5467) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1632/Fixture.cs 2011-03-13 23:00:55 UTC (rev 5468) @@ -31,7 +31,7 @@ using (var session = sessions.OpenSession()) using (var command = session.Connection.CreateCommand()) { - command.CommandText = "select next_hi from hibernate_unique_key with (updlock, rowlock)"; + command.CommandText = "select next_hi from hibernate_unique_key"; scalar1 = command.ExecuteScalar(); } @@ -52,7 +52,7 @@ using (var session = sessions.OpenSession()) using (var command = session.Connection.CreateCommand()) { - command.CommandText = "select next_hi from hibernate_unique_key with (updlock, rowlock)"; + command.CommandText = "select next_hi from hibernate_unique_key"; scalar2 = command.ExecuteScalar(); } @@ -174,6 +174,9 @@ [Test] public void When_using_two_sessions_with_explicit_flush() { + if (!TestDialect.SupportsConcurrentTransactions) + Assert.Ignore(Dialect.GetType().Name + " does not support concurrent transactions."); + object id1, id2; using (var tx = new TransactionScope()) { @@ -209,6 +212,9 @@ [Test] public void When_using_two_sessions() { + if (!TestDialect.SupportsConcurrentTransactions) + Assert.Ignore(Dialect.GetType().Name + " does not support concurrent transactions."); + object id1, id2; using (var tx = new TransactionScope()) { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Fixture.cs 2011-03-13 04:56:18 UTC (rev 5467) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1792/Fixture.cs 2011-03-13 23:00:55 UTC (rev 5468) @@ -81,7 +81,7 @@ { IList<Product> results = session.CreateCriteria<Product>().Add( - Expression.Sql("{alias}.Id in (Select top 5 p.Id from Product p order by Name)")).Add(Restrictions.Gt("Id", 0)). + Expression.Sql("{alias}.Id in (Select p.Id from Product p order by Name)")).Add(Restrictions.Gt("Id", 0)). SetMaxResults(3).List<Product>(); Assert.AreEqual(3, results.Count); Modified: trunk/nhibernate/src/NHibernate.Test/TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-13 04:56:18 UTC (rev 5467) +++ trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-13 23:00:55 UTC (rev 5468) @@ -24,5 +24,14 @@ public virtual bool SupportsOperatorAll { get { return true; } } public virtual bool SupportsOperatorSome { get { return true; } } public virtual bool SupportsLocate { get { return true; } } + + public virtual bool SupportsDistributedTransactions { get { return true; } } + + /// <summary> + /// Whether two transactions can be run at the same time. For example, with SQLite + /// the database is locked when one transaction is run, so running a second transaction + /// will cause a "database is locked" error message. + /// </summary> + public virtual bool SupportsConcurrentTransactions { get { return true; } } } } Modified: trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-03-13 04:56:18 UTC (rev 5467) +++ trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-03-13 23:00:55 UTC (rev 5468) @@ -21,5 +21,15 @@ { get { return false; } } + + public override bool SupportsDistributedTransactions + { + get { return false; } + } + + public override bool SupportsConcurrentTransactions + { + get { return false; } + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-03-16 04:24:26
|
Revision: 5474 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5474&view=rev Author: patearl Date: 2011-03-16 04:24:20 +0000 (Wed, 16 Mar 2011) Log Message: ----------- Tests: Avoid full join test with SQLite since it doesn't look like it can be emulated within the existing dialect structure for join formulation. This may be worth revisiting. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1857/FullJoinTest.cs trunk/nhibernate/src/NHibernate.Test/TestDialect.cs trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1857/FullJoinTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1857/FullJoinTest.cs 2011-03-14 20:21:30 UTC (rev 5473) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1857/FullJoinTest.cs 2011-03-16 04:24:20 UTC (rev 5474) @@ -42,6 +42,11 @@ } } + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return TestDialect.GetTestDialect(dialect).SupportsFullJoin; + } + [Test] public void TestFullJoin() { Modified: trunk/nhibernate/src/NHibernate.Test/TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-14 20:21:30 UTC (rev 5473) +++ trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-16 04:24:20 UTC (rev 5474) @@ -33,5 +33,7 @@ /// will cause a "database is locked" error message. /// </summary> public virtual bool SupportsConcurrentTransactions { get { return true; } } + + public virtual bool SupportsFullJoin { get { return true; } } } } Modified: trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-03-14 20:21:30 UTC (rev 5473) +++ trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-03-16 04:24:20 UTC (rev 5474) @@ -31,5 +31,10 @@ { get { return false; } } + + public override bool SupportsFullJoin + { + get { return false; } + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-03-20 20:20:42
|
Revision: 5480 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5480&view=rev Author: fabiomaulo Date: 2011-03-20 20:20:35 +0000 (Sun, 20 Mar 2011) Log Message: ----------- Removed Bytecode.Castle from tests; all tests running using our default proxy (even lazy-properties are supported ;) ) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs trunk/nhibernate/src/NHibernate.Test/LazyOneToOne/LazyOneToOneTest.cs trunk/nhibernate/src/NHibernate.Test/LazyProperty/LazyPropertyFixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2092/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2093/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2094/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2102/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2148/BugFixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2565/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.build trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Modified: trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/GhostProperty/GhostPropertyFixture.cs 2011-03-20 20:20:35 UTC (rev 5480) @@ -1,6 +1,4 @@ using System.Collections; -using NHibernate.ByteCode.Castle; -using NHibernate.Cfg; using NHibernate.Tuple.Entity; using NUnit.Framework; @@ -21,12 +19,6 @@ get { return new[] { "GhostProperty.Mappings.hbm.xml" }; } } - protected override void Configure(NHibernate.Cfg.Configuration configuration) - { - configuration.SetProperty(Environment.ProxyFactoryFactoryClass, - typeof(ProxyFactoryFactory).AssemblyQualifiedName); - } - protected override void OnSetUp() { using (var s = OpenSession()) Modified: trunk/nhibernate/src/NHibernate.Test/LazyOneToOne/LazyOneToOneTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/LazyOneToOne/LazyOneToOneTest.cs 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/LazyOneToOne/LazyOneToOneTest.cs 2011-03-20 20:20:35 UTC (rev 5480) @@ -26,8 +26,6 @@ //} protected override void Configure(Cfg.Configuration configuration) { - configuration.SetProperty(Environment.ProxyFactoryFactoryClass, - typeof(NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName); configuration.SetProperty(Environment.MaxFetchDepth, "2"); configuration.SetProperty(Environment.UseSecondLevelCache, "false"); } Modified: trunk/nhibernate/src/NHibernate.Test/LazyProperty/LazyPropertyFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/LazyProperty/LazyPropertyFixture.cs 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/LazyProperty/LazyPropertyFixture.cs 2011-03-20 20:20:35 UTC (rev 5480) @@ -1,7 +1,4 @@ using System.Collections; -using log4net.Core; -using NHibernate.ByteCode.Castle; -using NHibernate.Cfg; using NHibernate.Tuple.Entity; using NUnit.Framework; @@ -22,12 +19,6 @@ get { return new[] { "LazyProperty.Mappings.hbm.xml" }; } } - protected override void Configure(NHibernate.Cfg.Configuration configuration) - { - configuration.SetProperty(Environment.ProxyFactoryFactoryClass, - typeof(ProxyFactoryFactory).AssemblyQualifiedName); - } - protected override void BuildSessionFactory() { using (var logSpy = new LogSpy(typeof(EntityMetamodel))) Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2092/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2092/Fixture.cs 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2092/Fixture.cs 2011-03-20 20:20:35 UTC (rev 5480) @@ -1,5 +1,3 @@ -using NHibernate.ByteCode.Castle; -using NHibernate.Cfg; using NUnit.Framework; namespace NHibernate.Test.NHSpecificTest.NH2092 @@ -7,12 +5,6 @@ [TestFixture] public class Fixture : BugTestCase { - protected override void Configure(Configuration configuration) - { - configuration.SetProperty(Environment.ProxyFactoryFactoryClass, - typeof(ProxyFactoryFactory).AssemblyQualifiedName); - } - [Test] public void ConstrainedLazyLoadedOneToOneUsingCastleProxy() { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2093/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2093/Fixture.cs 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2093/Fixture.cs 2011-03-20 20:20:35 UTC (rev 5480) @@ -1,6 +1,3 @@ -using System.Linq; -using NHibernate.ByteCode.Castle; -using NHibernate.Cfg; using NHibernate.Proxy; using NUnit.Framework; @@ -9,12 +6,6 @@ [TestFixture] public class Fixture : BugTestCase { - protected override void Configure(Configuration configuration) - { - configuration.SetProperty(Environment.ProxyFactoryFactoryClass, - typeof(ProxyFactoryFactory).AssemblyQualifiedName); - } - [Test] public void NHibernateProxyHelperReturnsCorrectType() { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2094/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2094/Fixture.cs 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2094/Fixture.cs 2011-03-20 20:20:35 UTC (rev 5480) @@ -1,5 +1,3 @@ -using NHibernate.ByteCode.Castle; -using NHibernate.Cfg; using NUnit.Framework; using SharpTestsEx; @@ -8,12 +6,6 @@ [TestFixture] public class Fixture : BugTestCase { - protected override void Configure(Configuration configuration) - { - configuration.SetProperty(Environment.ProxyFactoryFactoryClass, - typeof(ProxyFactoryFactory).AssemblyQualifiedName); - } - [Test] public void CanAccessInitializedPropertiesOutsideOfSession() { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2102/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2102/Fixture.cs 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2102/Fixture.cs 2011-03-20 20:20:35 UTC (rev 5480) @@ -1,4 +1,3 @@ -using NHibernate.Cfg; using NUnit.Framework; using SharpTestsEx; @@ -7,12 +6,6 @@ [TestFixture] public class Fixture : BugTestCase { - protected override void Configure(Configuration configuration) - { - configuration.SetProperty(Environment.ProxyFactoryFactoryClass, - typeof(ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName); - } - [Test] public void EntityWithConstrainedLazyLoadedOneToOneShouldNotGenerateFieldInterceptingProxy() { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2148/BugFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2148/BugFixture.cs 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2148/BugFixture.cs 2011-03-20 20:20:35 UTC (rev 5480) @@ -1,16 +1,9 @@ -using NHibernate.ByteCode.Castle; -using NHibernate.Cfg; using NUnit.Framework; + namespace NHibernate.Test.NHSpecificTest.NH2148 { public class BugFixture : BugTestCase { - protected override void Configure(NHibernate.Cfg.Configuration configuration) - { - configuration.SetProperty(Environment.ProxyFactoryFactoryClass, - typeof(ProxyFactoryFactory).AssemblyQualifiedName); - } - protected override void OnSetUp() { using (var s = OpenSession()) Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2565/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2565/Fixture.cs 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2565/Fixture.cs 2011-03-20 20:20:35 UTC (rev 5480) @@ -41,12 +41,6 @@ } } - protected override void Configure(Cfg.Configuration configuration) - { - configuration.SetProperty(Cfg.Environment.ProxyFactoryFactoryClass, - typeof(ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName); - } - [Test] public void WhenUseLoadThenCanUsePersistToModify() { Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.build =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.build 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.build 2011-03-20 20:20:35 UTC (rev 5480) @@ -20,7 +20,6 @@ <include name="System.Data.OracleClient.dll" /> <include name="Iesi.Collections.dll" /> <include name="log4net.dll" /> - <include name="NHibernate.ByteCode.Castle.dll"/> <include name="NHibernate.DomainModel.dll" /> <include name="NHibernate.dll" /> <include name="nunit.framework.dll" /> Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-20 19:54:49 UTC (rev 5479) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-20 20:20:35 UTC (rev 5480) @@ -1988,10 +1988,6 @@ <EmbeddedResource Include="ReadOnly\VersionedNode.hbm.xml" /> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\NHibernate.ByteCode.Castle\NHibernate.ByteCode.Castle.csproj"> - <Project>{31C3F0EA-0FED-4A2F-B68D-96CE29844487}</Project> - <Name>NHibernate.ByteCode.Castle</Name> - </ProjectReference> <ProjectReference Include="..\NHibernate.DomainModel\NHibernate.DomainModel.csproj"> <Project>{5C649B55-1B3F-4C38-9998-1B043E94A244}</Project> <Name>NHibernate.DomainModel</Name> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-03-20 20:30:59
|
Revision: 5481 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5481&view=rev Author: fabiomaulo Date: 2011-03-20 20:30:53 +0000 (Sun, 20 Mar 2011) Log Message: ----------- Added base common test for interface proxy Serialization Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/IMyProxy.cs trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/MyProxyImpl.cs trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/ProxyFixture.cs trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/ProxyImpl.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/IMyProxy.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/IMyProxy.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/IMyProxy.cs 2011-03-20 20:30:53 UTC (rev 5481) @@ -0,0 +1,11 @@ +namespace NHibernate.Test.DynamicProxyTests.InterfaceProxySerializationTests +{ + public interface IMyProxy + { + int Id { get; set; } + + string Name { get; set; } + + void ThrowDeepException(); + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/MyProxyImpl.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/MyProxyImpl.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/MyProxyImpl.cs 2011-03-20 20:30:53 UTC (rev 5481) @@ -0,0 +1,32 @@ +using System; + +namespace NHibernate.Test.DynamicProxyTests.InterfaceProxySerializationTests +{ + public class MyProxyImpl: IMyProxy + { + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + private static void Level1() + { + Level2(); + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + private static void Level2() + { + throw new ArgumentException("thrown from Level2"); + } + + #region CastleProxy Members + + public int Id { get; set; } + + public string Name { get; set; } + + public void ThrowDeepException() + { + Level1(); + } + + #endregion + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/ProxyFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/ProxyFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/ProxyFixture.cs 2011-03-20 20:30:53 UTC (rev 5481) @@ -0,0 +1,142 @@ +using System; +using System.Collections; +using System.IO; +using System.Runtime.Serialization; +using System.Runtime.Serialization.Formatters.Binary; +using NUnit.Framework; + +namespace NHibernate.Test.DynamicProxyTests.InterfaceProxySerializationTests +{ + [TestFixture] + public class ProxyFixture : TestCase + { + protected override IList Mappings + { + get { return new[] { "DynamicProxyTests.InterfaceProxySerializationTests.ProxyImpl.hbm.xml" }; } + } + + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + private void SerializeAndDeserialize(ref ISession s) + { + // Serialize the session + using (Stream stream = new MemoryStream()) + { + IFormatter formatter = new BinaryFormatter(); + formatter.Serialize(stream, s); + + // Close the original session + s.Close(); + + // Deserialize the session + stream.Position = 0; + s = (ISession) formatter.Deserialize(stream); + } + } + + [Test] + public void ExceptionStackTrace() + { + ISession s = OpenSession(); + IMyProxy ap = new MyProxyImpl {Id = 1, Name = "first proxy"}; + s.Save(ap); + s.Flush(); + s.Close(); + + s = OpenSession(); + ap = (IMyProxy) s.Load(typeof (MyProxyImpl), ap.Id); + Assert.IsFalse(NHibernateUtil.IsInitialized(ap), "check we have a proxy"); + + try + { + ap.ThrowDeepException(); + Assert.Fail("Exception not thrown"); + } + catch (ArgumentException ae) + { + Assert.AreEqual("thrown from Level2", ae.Message); + + string[] stackTraceLines = ae.StackTrace.Split('\n'); + Assert.IsTrue(stackTraceLines[0].Contains("Level2"), "top of exception stack is Level2()"); + Assert.IsTrue(stackTraceLines[1].Contains("Level1"), "next on exception stack is Level1()"); + } + finally + { + s.Delete(ap); + s.Flush(); + s.Close(); + } + } + + [Test] + public void Proxy() + { + ISession s = OpenSession(); + IMyProxy ap = new MyProxyImpl {Id = 1, Name = "first proxy"}; + s.Save(ap); + s.Flush(); + s.Close(); + + s = OpenSession(); + ap = (IMyProxy) s.Load(typeof (MyProxyImpl), ap.Id); + Assert.IsFalse(NHibernateUtil.IsInitialized(ap)); + int id = ap.Id; + Assert.IsFalse(NHibernateUtil.IsInitialized(ap), "get id should not have initialized it."); + string name = ap.Name; + Assert.IsTrue(NHibernateUtil.IsInitialized(ap), "get name should have initialized it."); + s.Delete(ap); + s.Flush(); + s.Close(); + } + + [Test] + public void ProxySerialize() + { + ISession s = OpenSession(); + IMyProxy ap = new MyProxyImpl {Id = 1, Name = "first proxy"}; + s.Save(ap); + s.Flush(); + s.Close(); + + s = OpenSession(); + ap = (IMyProxy) s.Load(typeof (MyProxyImpl), ap.Id); + Assert.AreEqual(1, ap.Id); + s.Disconnect(); + + SerializeAndDeserialize(ref s); + + s.Reconnect(); + s.Disconnect(); + + // serialize and then deserialize the session again - make sure Castle.DynamicProxy + // has no problem with serializing two times - earlier versions of it did. + SerializeAndDeserialize(ref s); + + s.Close(); + + s = OpenSession(); + s.Delete(ap); + s.Flush(); + s.Close(); + } + + [Test] + public void SerializeNotFoundProxy() + { + ISession s = OpenSession(); + // this does not actually exists in db + var notThere = (IMyProxy) s.Load(typeof (MyProxyImpl), 5); + Assert.AreEqual(5, notThere.Id); + s.Disconnect(); + + // serialize and then deserialize the session. + SerializeAndDeserialize(ref s); + + Assert.IsNotNull(s.Load(typeof (MyProxyImpl), 5), "should be proxy - even though it doesn't exists in db"); + s.Close(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/ProxyImpl.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/ProxyImpl.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/InterfaceProxySerializationTests/ProxyImpl.hbm.xml 2011-03-20 20:30:53 UTC (rev 5481) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.DynamicProxyTests.InterfaceProxySerializationTests"> + <class name="MyProxyImpl" proxy="IMyProxy"> + <id name="Id"> + <generator class="assigned" /> + </id> + + <property name="Name" /> + </class> +</hibernate-mapping> \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-20 20:20:35 UTC (rev 5480) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-20 20:30:53 UTC (rev 5481) @@ -217,6 +217,9 @@ <Compile Include="DriverTest\Sql2008DateTime2Test.cs" /> <Compile Include="DriverTest\SqlClientDriverFixture.cs" /> <Compile Include="DriverTest\SqlServerCeDriverFixture.cs" /> + <Compile Include="DynamicProxyTests\InterfaceProxySerializationTests\IMyProxy.cs" /> + <Compile Include="DynamicProxyTests\InterfaceProxySerializationTests\MyProxyImpl.cs" /> + <Compile Include="DynamicProxyTests\InterfaceProxySerializationTests\ProxyFixture.cs" /> <Compile Include="DynamicProxyTests\InterfaceWithEqualsGethashcodeTests.cs" /> <Compile Include="EngineTest\CallableParserFixture.cs" /> <Compile Include="EngineTest\NativeSQLQueryNonScalarReturnTest.cs" /> @@ -2466,6 +2469,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="DynamicProxyTests\InterfaceProxySerializationTests\ProxyImpl.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2565\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\AccessAndCorrectPropertyName\DogMapping.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\AccessAndCorrectPropertyName\PersonMapping.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-03-20 20:35:01
|
Revision: 5482 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5482&view=rev Author: fabiomaulo Date: 2011-03-20 20:34:55 +0000 (Sun, 20 Mar 2011) Log Message: ----------- "lazy-field" interceptor proxy Serializable Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/LazyFieldInterceptorSerializable.cs Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/LazyFieldInterceptorSerializable.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/LazyFieldInterceptorSerializable.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/LazyFieldInterceptorSerializable.cs 2011-03-20 20:34:55 UTC (rev 5482) @@ -0,0 +1,37 @@ +using System; +using Iesi.Collections.Generic; +using NHibernate.Proxy; +using NUnit.Framework; +using NHibernate.Intercept; +using SharpTestsEx; + +namespace NHibernate.Test.DynamicProxyTests +{ + public class LazyFieldInterceptorSerializable + { + [Serializable] + public class MyClass + { + public virtual int Id { get; set; } + } + + [Test] + public void LazyFieldInterceptorMarkedAsSerializable() + { + typeof(DefaultDynamicLazyFieldInterceptor).Should().Have.Attribute<SerializableAttribute>(); + } + + [Test] + public void LazyFieldInterceptorIsBinarySerializable() + { + var pf = new DefaultProxyFactory(); + var propertyInfo = typeof(MyClass).GetProperty("Id"); + pf.PostInstantiate("MyClass", typeof(MyClass), new HashedSet<System.Type>(), propertyInfo.GetGetMethod(), propertyInfo.GetSetMethod(), null); + var fieldInterceptionProxy = (IFieldInterceptorAccessor)pf.GetFieldInterceptionProxy(new MyClass()); + fieldInterceptionProxy.FieldInterceptor = new DefaultFieldInterceptor(null, null, null, "MyClass", typeof(MyClass)); + + fieldInterceptionProxy.Should().Be.BinarySerializable(); + } + + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-20 20:30:53 UTC (rev 5481) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-20 20:34:55 UTC (rev 5482) @@ -221,6 +221,7 @@ <Compile Include="DynamicProxyTests\InterfaceProxySerializationTests\MyProxyImpl.cs" /> <Compile Include="DynamicProxyTests\InterfaceProxySerializationTests\ProxyFixture.cs" /> <Compile Include="DynamicProxyTests\InterfaceWithEqualsGethashcodeTests.cs" /> + <Compile Include="DynamicProxyTests\LazyFieldInterceptorSerializable.cs" /> <Compile Include="EngineTest\CallableParserFixture.cs" /> <Compile Include="EngineTest\NativeSQLQueryNonScalarReturnTest.cs" /> <Compile Include="EngineTest\NativeSQLQueryScalarReturnTest.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-03-22 23:28:36
|
Revision: 5507 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5507&view=rev Author: fabiomaulo Date: 2011-03-22 23:28:30 +0000 (Tue, 22 Mar 2011) Log Message: ----------- Test for NH-2390 (not fixed) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Domain.cs 2011-03-22 23:28:30 UTC (rev 5507) @@ -0,0 +1,13 @@ +namespace NHibernate.Test.NHSpecificTest.NH2390 +{ + public class Class1 + { + public long Id { get; private set; } + public int Property1 { get; set; } + public int Property2 { get; set; } + public int Property3 { get; set; } + public int Property4 { get; set; } + public int Property5 { get; set; } + public int Version { get; private set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Fixture.cs 2011-03-22 23:28:30 UTC (rev 5507) @@ -0,0 +1,63 @@ +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2390 +{ + [Ignore("Not fixed yet")] + public class Fixture : BugTestCase + { + protected override void OnSetUp() + { + base.OnSetUp(); + using (ISession s = OpenSession()) + using (ITransaction t = s.BeginTransaction()) + { + var class1 = new Class1(); + s.Save(class1); + t.Commit(); + } + } + + protected override void OnTearDown() + { + using (ISession s = OpenSession()) + using (ITransaction t = s.BeginTransaction()) + { + s.Delete("from Class1"); + t.Commit(); + } + base.OnTearDown(); + } + + [Test] + public void Test() + { + var rowsUpdated = 0; + using (ISession s = OpenSession()) + using (ITransaction t = s.BeginTransaction()) + { + rowsUpdated = s.CreateQuery("UPDATE VERSIONED Class1 c SET c.Property1 = :value1, c.Property2 = :value2, c.Property3 = :value3, c.Property4 = :value4, c.Property5 = :value5") + .SetParameter("value1", 1) + .SetParameter("value2", 2) + .SetParameter("value3", 3) + .SetParameter("value4", 4) + .SetParameter("value5", 5) + .ExecuteUpdate(); + t.Commit(); + } + + using (ISession s = OpenSession()) + using (ITransaction t = s.BeginTransaction()) + { + var class1 = (Class1)(s.CreateQuery("FROM Class1").UniqueResult()); + + Assert.That(rowsUpdated, Is.EqualTo(1), "UPDATE did not alter the expected number of rows"); + Assert.That(class1.Property1, Is.EqualTo(1), "UPDATE did not alter Property1"); + Assert.That(class1.Property2, Is.EqualTo(2), "UPDATE did not alter Property2"); + Assert.That(class1.Property3, Is.EqualTo(3), "UPDATE did not alter Property3"); + Assert.That(class1.Property4, Is.EqualTo(4), "UPDATE did not alter Property4"); + Assert.That(class1.Property5, Is.EqualTo(5), "UPDATE did not alter Property5"); + Assert.That(class1.Version, Is.EqualTo(2), "UPDATE did not increment the version"); + } + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2390/Mappings.hbm.xml 2011-03-22 23:28:30 UTC (rev 5507) @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping + xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH2390" + assembly="NHibernate.Test" + default-access="property" + default-lazy="false"> + + <class name="Class1"> + <id name="Id"> + <generator class="native" /> + </id> + <version name="Version" /> + <property name="Property1"/> + <property name="Property2"/> + <property name="Property3"/> + <property name="Property4"/> + <property name="Property5"/> + </class> +</hibernate-mapping> \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-22 23:02:09 UTC (rev 5506) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-22 23:28:30 UTC (rev 5507) @@ -615,6 +615,8 @@ <Compile Include="NHSpecificTest\NH2386\ResponsibleLegalPerson.cs" /> <Compile Include="NHSpecificTest\NH2386\Test.cs" /> <Compile Include="NHSpecificTest\NH2386\TradingName.cs" /> + <Compile Include="NHSpecificTest\NH2390\Domain.cs" /> + <Compile Include="NHSpecificTest\NH2390\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2392\A.cs" /> <Compile Include="NHSpecificTest\NH2392\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2392\PhoneNumber.cs" /> @@ -2477,6 +2479,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2390\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2491\Mappings.hbm.xml" /> <EmbeddedResource Include="Insertordering\Mapping.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2530\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-03-24 02:50:47
|
Revision: 5516 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5516&view=rev Author: patearl Date: 2011-03-24 02:50:41 +0000 (Thu, 24 Mar 2011) Log Message: ----------- Ignore XML data tests for databases that don't support XML. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/XDocTypeFixture.cs trunk/nhibernate/src/NHibernate.Test/TypesTest/XmlDocTypeFixture.cs Modified: trunk/nhibernate/src/NHibernate.Test/TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-24 02:50:00 UTC (rev 5515) +++ trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-24 02:50:41 UTC (rev 5516) @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; +using System.Data; using System.Linq; using System.Text; +using NHibernate.SqlTypes; namespace NHibernate.Test { @@ -17,10 +19,17 @@ string testDialectTypeName = "NHibernate.Test.TestDialects." + dialect.GetType().Name.Replace("Dialect", "TestDialect"); System.Type testDialectType = System.Type.GetType(testDialectTypeName); if (testDialectType != null) - return (TestDialect)Activator.CreateInstance(testDialectType); - return new TestDialect(); + return (TestDialect)Activator.CreateInstance(testDialectType, dialect); + return new TestDialect(dialect); } + private Dialect.Dialect dialect; + + public TestDialect(Dialect.Dialect dialect) + { + this.dialect = dialect; + } + public virtual bool SupportsOperatorAll { get { return true; } } public virtual bool SupportsOperatorSome { get { return true; } } public virtual bool SupportsLocate { get { return true; } } @@ -35,5 +44,18 @@ public virtual bool SupportsConcurrentTransactions { get { return true; } } public virtual bool SupportsFullJoin { get { return true; } } + + public bool SupportsSqlType(SqlType sqlType) + { + try + { + dialect.GetTypeName(sqlType); + return true; + } + catch + { + return false; + } + } } } Modified: trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-03-24 02:50:00 UTC (rev 5515) +++ trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-03-24 02:50:41 UTC (rev 5516) @@ -7,6 +7,11 @@ { public class SQLiteTestDialect : TestDialect { + public SQLiteTestDialect(Dialect.Dialect dialect) + : base(dialect) + { + } + public override bool SupportsOperatorAll { get { return false; } Modified: trunk/nhibernate/src/NHibernate.Test/TypesTest/XDocTypeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/XDocTypeFixture.cs 2011-03-24 02:50:00 UTC (rev 5515) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/XDocTypeFixture.cs 2011-03-24 02:50:41 UTC (rev 5516) @@ -1,4 +1,6 @@ +using System.Data; using System.Xml.Linq; +using NHibernate.SqlTypes; using NHibernate.Type; using NUnit.Framework; using SharpTestsEx; @@ -13,6 +15,11 @@ get { return "XDoc"; } } + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return TestDialect.SupportsSqlType(new SqlType(DbType.Xml)); + } + [Test] public void ReadWrite() { Modified: trunk/nhibernate/src/NHibernate.Test/TypesTest/XmlDocTypeFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TypesTest/XmlDocTypeFixture.cs 2011-03-24 02:50:00 UTC (rev 5515) +++ trunk/nhibernate/src/NHibernate.Test/TypesTest/XmlDocTypeFixture.cs 2011-03-24 02:50:41 UTC (rev 5516) @@ -1,4 +1,6 @@ +using System.Data; using System.Xml; +using NHibernate.SqlTypes; using NHibernate.Type; using NUnit.Framework; using SharpTestsEx; @@ -12,6 +14,11 @@ get { return "XmlDoc"; } } + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return TestDialect.SupportsSqlType(new SqlType(DbType.Xml)); + } + [Test] public void ReadWrite() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-03-24 18:47:48
|
Revision: 5522 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5522&view=rev Author: patearl Date: 2011-03-24 18:47:41 +0000 (Thu, 24 Mar 2011) Log Message: ----------- Made two tests ignore dialects without batchers. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs 2011-03-24 18:29:10 UTC (rev 5521) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1850/Fixture.cs 2011-03-24 18:47:41 UTC (rev 5522) @@ -14,6 +14,11 @@ configuration.SetProperty(Environment.BatchSize, "1"); } + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect.SupportsSqlBatches; + } + [Test] public void CanGetQueryDurationForDelete() { Modified: trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs 2011-03-24 18:29:10 UTC (rev 5521) +++ trunk/nhibernate/src/NHibernate.Test/Stateless/StatelessSessionFixture.cs 2011-03-24 18:47:41 UTC (rev 5522) @@ -183,6 +183,9 @@ [Test] public void WhenSetTheBatchSizeThenSetTheBatchSizeOfTheBatcher() { + if (!Dialect.SupportsSqlBatches) + Assert.Ignore("Dialect does not support sql batches."); + using (IStatelessSession ss = sessions.OpenStatelessSession()) { ss.SetBatchSize(37); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-03-24 20:38:30
|
Revision: 5523 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5523&view=rev Author: fabiomaulo Date: 2011-03-24 20:38:23 +0000 (Thu, 24 Mar 2011) Log Message: ----------- NH-1323 no viable Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/CheckViability.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/CheckViability.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/CheckViability.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/CheckViability.cs 2011-03-24 20:38:23 UTC (rev 5523) @@ -0,0 +1,202 @@ +using System; +using NHibernate.Collection; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH1323 +{ + [Explicit("Demonstration of not viability")] + public class CheckViability: BugTestCase + { + public class FullInitializedRetrievedEntity : IDisposable + { + private readonly ISessionFactory factory; + private readonly MyClass entity; + + public FullInitializedRetrievedEntity(ISessionFactory factory) + { + this.factory = factory; + object savedId; + using (var session = factory.OpenSession()) + using (session.BeginTransaction()) + { + var entity = new MyClass(); + entity.Children.Add(new MyChild { Parent = entity }); + entity.Components.Add(new MyComponent { Something = "something" }); + entity.Elements.Add("somethingelse"); + savedId = session.Save(entity); + session.Transaction.Commit(); + } + + using (var session = factory.OpenSession()) + using (session.BeginTransaction()) + { + entity = session.Get<MyClass>(savedId); + NHibernateUtil.Initialize(entity.Children); + NHibernateUtil.Initialize(entity.Components); + NHibernateUtil.Initialize(entity.Elements); + session.Transaction.Commit(); + } + } + + public MyClass Entity + { + get { return entity; } + } + + public void Dispose() + { + using (var s = factory.OpenSession()) + { + s.Delete("from MyClass"); + s.Flush(); + } + } + } + + [Test] + public void WhenReassociateCollectionUsingMergeThenReassingOwner() + { + using (var scenario = new FullInitializedRetrievedEntity(Sfi)) + { + ((IPersistentCollection)scenario.Entity.Children).Owner = null; + ((IPersistentCollection)scenario.Entity.Components).Owner = null; + ((IPersistentCollection)scenario.Entity.Elements).Owner = null; + + // When I reassociate the collections the Owner has value + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + var merged = (MyClass)session.Merge(scenario.Entity); + ((IPersistentCollection)merged.Children).Owner.Should().Not.Be.Null(); + ((IPersistentCollection)merged.Components).Owner.Should().Not.Be.Null(); + ((IPersistentCollection)merged.Elements).Owner.Should().Not.Be.Null(); + session.Transaction.Commit(); + } + } + } + + [Test] + public void WhenReassociateCollectionUsingLockThenTheCommitNotThrows() + { + using (var scenario = new FullInitializedRetrievedEntity(Sfi)) + { + ((IPersistentCollection)scenario.Entity.Children).Owner = null; + ((IPersistentCollection)scenario.Entity.Components).Owner = null; + ((IPersistentCollection)scenario.Entity.Elements).Owner = null; + + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + // When I reassociate the collections the Owner is null + session.Lock(scenario.Entity, LockMode.None); + // If I change something in each collection, there is no problems + scenario.Entity.Children.Add(new MyChild { Parent = scenario.Entity }); + scenario.Entity.Components.Add(new MyComponent { Something = "something" }); + scenario.Entity.Elements.Add("somethingelse"); + session.Transaction.Commit(); + } + + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + var fresh = session.Get<MyClass>(scenario.Entity.Id); + fresh.Children.Should().Have.Count.EqualTo(2); + fresh.Components.Should().Have.Count.EqualTo(2); + fresh.Elements.Should().Have.Count.EqualTo(2); + session.Transaction.Commit(); + } + } + } + + [Test] + public void WhenReassociateCollectionUsingUpdateThenTheCommitNotThrows() + { + using (var scenario = new FullInitializedRetrievedEntity(Sfi)) + { + ((IPersistentCollection)scenario.Entity.Children).Owner = null; + ((IPersistentCollection)scenario.Entity.Components).Owner = null; + ((IPersistentCollection)scenario.Entity.Elements).Owner = null; + + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + scenario.Entity.Children.Add(new MyChild { Parent = scenario.Entity }); + scenario.Entity.Components.Add(new MyComponent { Something = "something" }); + scenario.Entity.Elements.Add("somethingelse"); + // When I reassociate the collections the Owner is null + session.Update(scenario.Entity); + session.Transaction.Commit(); + } + + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + var fresh = session.Get<MyClass>(scenario.Entity.Id); + fresh.Children.Should().Have.Count.EqualTo(2); + fresh.Components.Should().Have.Count.EqualTo(2); + fresh.Elements.Should().Have.Count.EqualTo(2); + session.Transaction.Commit(); + } + } + } + + [Test] + public void WhenReassociateCollectionUsingSaveOrUpdateThenTheCommitNotThrows() + { + using (var scenario = new FullInitializedRetrievedEntity(Sfi)) + { + ((IPersistentCollection)scenario.Entity.Children).Owner = null; + ((IPersistentCollection)scenario.Entity.Components).Owner = null; + ((IPersistentCollection)scenario.Entity.Elements).Owner = null; + + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + scenario.Entity.Children.Add(new MyChild { Parent = scenario.Entity }); + scenario.Entity.Components.Add(new MyComponent { Something = "something" }); + scenario.Entity.Elements.Add("somethingelse"); + // When I reassociate the collections the Owner is null + session.SaveOrUpdate(scenario.Entity); + session.Transaction.Commit(); + } + + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + var fresh = session.Get<MyClass>(scenario.Entity.Id); + fresh.Children.Should().Have.Count.EqualTo(2); + fresh.Components.Should().Have.Count.EqualTo(2); + fresh.Elements.Should().Have.Count.EqualTo(2); + session.Transaction.Commit(); + } + } + } + + [Test] + public void WhenReassociateCollectionUsingDeleteThenTheCommitNotThrows() + { + using (var scenario = new FullInitializedRetrievedEntity(Sfi)) + { + ((IPersistentCollection)scenario.Entity.Children).Owner = null; + ((IPersistentCollection)scenario.Entity.Components).Owner = null; + ((IPersistentCollection)scenario.Entity.Elements).Owner = null; + + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + session.Delete(scenario.Entity); + session.Transaction.Commit(); + } + + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + var fresh = session.Get<MyClass>(scenario.Entity.Id); + fresh.Should().Be.Null(); + session.Transaction.Commit(); + } + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/Domain.cs 2011-03-24 20:38:23 UTC (rev 5523) @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH1323 +{ + [Serializable] + public class MyClass + { + public MyClass() + { + Children = new List<MyChild>(); + Components = new List<MyComponent>(); + Elements = new List<string>(); + } + public virtual string Description { get; set; } + public virtual Guid Id { get; set; } + public virtual IList<MyChild> Children { get; set; } + public virtual IList<MyComponent> Components { get; set; } + public virtual IList<string> Elements { get; set; } + } + + [Serializable] + public class MyChild + { + public virtual Guid Id { get; set; } + public virtual MyClass Parent { get; set; } + } + + [Serializable] + public class MyComponent + { + public virtual string Something { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1323/Mappings.hbm.xml 2011-03-24 20:38:23 UTC (rev 5523) @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1323" + assembly="NHibernate.Test"> + <class name="MyClass"> + <id name="Id" type="Guid"> + <generator class="guid.comb" /> + </id> + <property name="Description" /> + <bag name="Children" inverse="true" cascade="all,delete-orphan"> + <key column="ParentId" on-delete="cascade" /> + <one-to-many class="MyChild" /> + </bag> + <bag name="Components" table="MyClassComponents"> + <key column="MyClassId" /> + <composite-element class="MyComponent"> + <property name="Something" /> + </composite-element> + </bag> + <bag name="Elements" table="MyClassElements"> + <key column="MyClassId" /> + <element column="ElementsElement" type="String" /> + </bag> + </class> + <class name="MyChild"> + <id name="Id" type="Guid"> + <generator class="guid.comb" /> + </id> + <many-to-one name="Parent" column="ParentId" /> + </class> +</hibernate-mapping> \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-24 18:47:41 UTC (rev 5522) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-24 20:38:23 UTC (rev 5523) @@ -524,6 +524,8 @@ <Compile Include="NHSpecificTest\NH1136\Person.cs" /> <Compile Include="NHSpecificTest\NH1136\ReverseSortComparer.cs" /> <Compile Include="NHSpecificTest\NH1136\TemporalAddressType.cs" /> + <Compile Include="NHSpecificTest\NH1323\CheckViability.cs" /> + <Compile Include="NHSpecificTest\NH1323\Domain.cs" /> <Compile Include="NHSpecificTest\NH1421\AnEntity.cs" /> <Compile Include="NHSpecificTest\NH1421\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1836\Entity.cs" /> @@ -2484,6 +2486,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH1323\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2580\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2390\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2491\Mappings.hbm.xml" /> @@ -2879,7 +2882,6 @@ <EmbeddedResource Include="DynamicEntity\Tuplizer\Customer.hbm.xml" /> </ItemGroup> <ItemGroup> - <Folder Include="NHSpecificTest\NH2554" /> <Folder Include="Properties\" /> </ItemGroup> <ItemGroup> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-03-24 21:08:01
|
Revision: 5524 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5524&view=rev Author: fabiomaulo Date: 2011-03-24 21:07:55 +0000 (Thu, 24 Mar 2011) Log Message: ----------- Passing tests for NH-2527 using no-batcher Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/FixtureWithNoBatcher.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/Model.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/FixtureWithNoBatcher.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/FixtureWithNoBatcher.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/FixtureWithNoBatcher.cs 2011-03-24 21:07:55 UTC (rev 5524) @@ -0,0 +1,78 @@ +using NHibernate.AdoNet; +using NHibernate.Cfg.Loquacious; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2527 +{ + public class FixtureWithNoBatcher : BugTestCase + { + + protected override void Configure(Cfg.Configuration configuration) + { + configuration.DataBaseIntegration(x => + { + x.BatchSize = 0; + x.Batcher<NonBatchingBatcherFactory>(); + }); + } + + protected override void OnSetUp() + { + base.OnSetUp(); + + using (ISession session = OpenSession()) + { + using (ITransaction tx = session.BeginTransaction()) + { + var parent = new Parent(); + var childOne = new Child(); + parent.Childs.Add(childOne); + session.Save(parent); + + tx.Commit(); + } + } + } + + protected override void OnTearDown() + { + base.OnTearDown(); + + using (ISession session = OpenSession()) + { + using (ITransaction tx = session.BeginTransaction()) + { + session.Delete("from Child"); + session.Delete("from Parent"); + tx.Commit(); + } + } + } + + [Test] + public void DisposedCommandShouldNotBeReused() + { + using (ISession session = OpenSession()) + { + using (ITransaction tx = session.BeginTransaction()) + { + var parent = session.CreateCriteria<Parent>().UniqueResult<Parent>(); + + Child childOne = parent.Childs[0]; + + var childTwo = new Child(); + parent.Childs.Add(childTwo); + + Child childToMove = parent.Childs[1]; + parent.Childs.RemoveAt(1); + parent.Childs.Insert(0, childToMove); + + Assert.DoesNotThrow(() => { tx.Commit(); }); + + Assert.AreEqual(childTwo.Id, parent.Childs[0].Id); + Assert.AreEqual(childOne.Id, parent.Childs[1].Id); + } + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/Mappings.hbm.xml 2011-03-24 21:07:55 UTC (rev 5524) @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2527"> + <class name="Parent"> + <id name="Id"> + <generator class="guid" /> + </id> + <list name="Childs" cascade="all-delete-orphan" fetch="subselect"> + <key column="parent_id" /> + <index column="pos" /> + <one-to-many class="Child" /> + </list> + </class> + + <class name="Child"> + <id name="Id"> + <generator class="guid" /> + </id> + </class> +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/Model.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/Model.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2527/Model.cs 2011-03-24 21:07:55 UTC (rev 5524) @@ -0,0 +1,17 @@ +namespace NHibernate.Test.NHSpecificTest.NH2527 { + using System; + using System.Collections.Generic; + + public class Parent { + public Parent() { + Childs = new List<Child>(); + } + + public virtual Guid Id { get; set; } + public virtual IList<Child> Childs { get; set; } + } + + public class Child { + public virtual Guid Id { get; set; } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-24 20:38:23 UTC (rev 5523) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-24 21:07:55 UTC (rev 5524) @@ -655,6 +655,8 @@ <Compile Include="NHSpecificTest\NH2491\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2507\Animal.cs" /> <Compile Include="NHSpecificTest\NH2507\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2527\FixtureWithNoBatcher.cs" /> + <Compile Include="NHSpecificTest\NH2527\Model.cs" /> <Compile Include="NHSpecificTest\NH2530\Domain.cs" /> <Compile Include="NHSpecificTest\NH2530\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2554\Fixture.cs" /> @@ -2486,6 +2488,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2527\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1323\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2580\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2390\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-03-24 22:51:52
|
Revision: 5526 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5526&view=rev Author: fabiomaulo Date: 2011-03-24 22:51:46 +0000 (Thu, 24 Mar 2011) Log Message: ----------- Passing test of NH-1925 (was an issue but was fixed fixing something else) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Model.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Fixture.cs 2011-03-24 22:51:46 UTC (rev 5526) @@ -0,0 +1,101 @@ +using System.Collections; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1925 +{ + [TestFixture] + public class Fixture : BugTestCase + { + private const string NAME_JOE = "Joe"; + private const string NAME_ALLEN = "Allen"; + + protected override void OnSetUp() + { + base.OnSetUp(); + using (ISession session = OpenSession()) + { + using (ITransaction tx = session.BeginTransaction()) + { + var joe = new Customer {Name = NAME_JOE}; + session.Save(joe); + + var allen = new Customer {Name = NAME_ALLEN}; + session.Save(allen); + + var joeInvoice0 = new Invoice {Customer = joe, Number = 0}; + session.Save(joeInvoice0); + + var allenInvoice1 = new Invoice {Customer = allen, Number = 1}; + session.Save(allenInvoice1); + + tx.Commit(); + } + } + } + + protected override void OnTearDown() + { + using (ISession session = OpenSession()) + { + using (ITransaction tx = session.BeginTransaction()) + { + session.Delete("from Invoice"); + session.Delete("from Customer"); + tx.Commit(); + } + } + base.OnTearDown(); + } + + private void FindJoesLatestInvoice(string hql) + { + using (ISession session = OpenSession()) + { + using (ITransaction tx = session.BeginTransaction()) + { + IList list = session.CreateQuery(hql) + .SetString("name", NAME_JOE) + .List(); + + Assert.That(list, Is.Not.Empty); + tx.Commit(); + } + } + } + + [Test] + public void Query1() + { + FindJoesLatestInvoice( + @" + select invoice + from Invoice invoice + join invoice.Customer customer + where + invoice.Number = ( + select max(invoice2.Number) + from + invoice.Customer d2 + join d2.Invoices invoice2 + where + d2 = customer + ) + and customer.Name = :name + "); + } + + [Test] + public void Query2() + { + FindJoesLatestInvoice( + @" + select invoice + from Invoice invoice + join invoice.Customer customer + where + invoice.Number = (select max(invoice2.Number) from customer.Invoices invoice2) + and customer.Name = :name + "); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Mappings.hbm.xml 2011-03-24 22:51:46 UTC (rev 5526) @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH1925"> + + <class name="Customer" > + <id name="ID" type="Int32"> + <generator class="hilo" /> + </id> + <property name="Name" type="String" /> + + <set name="Invoices" inverse="true" > + <key column="CustomerID"/> + <one-to-many class="Invoice"/> + </set> + </class> + + <class name="Invoice"> + <id name="ID" type="Int32"> + <generator class="hilo" /> + </id> + + <property name="Number" type="Int32" /> + <many-to-one name="Customer" column="CustomerID" class="Customer" /> + </class> + +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Model.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Model.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1925/Model.cs 2011-03-24 22:51:46 UTC (rev 5526) @@ -0,0 +1,18 @@ +using Iesi.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH1925 +{ + public class Customer + { + public virtual int ID { get; private set; } + public virtual ISet<Invoice> Invoices { get; set; } + public virtual string Name { get; set; } + } + + public class Invoice + { + public virtual int ID { get; private set; } + public virtual Customer Customer { get; set; } + public virtual int Number { 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 2011-03-24 21:46:41 UTC (rev 5525) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-24 22:51:46 UTC (rev 5526) @@ -533,6 +533,8 @@ <Compile Include="NHSpecificTest\NH1836\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1869\Entities.cs" /> <Compile Include="NHSpecificTest\NH1869\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1925\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1925\Model.cs" /> <Compile Include="NHSpecificTest\NH2037\Domain.cs" /> <Compile Include="NHSpecificTest\NH2037\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2043\Domain.cs" /> @@ -2488,6 +2490,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH1925\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2527\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1323\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2580\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-03-26 16:27:46
|
Revision: 5541 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5541&view=rev Author: fabiomaulo Date: 2011-03-26 16:27:40 +0000 (Sat, 26 Mar 2011) Log Message: ----------- Test for NH-2602 (fixed) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/Subselect/ trunk/nhibernate/src/NHibernate.Test/Subselect/Beings.hbm.xml trunk/nhibernate/src/NHibernate.Test/Subselect/ClassSubselectFixture.cs trunk/nhibernate/src/NHibernate.Test/Subselect/Domain.cs Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-26 16:01:36 UTC (rev 5540) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-03-26 16:27:40 UTC (rev 5541) @@ -695,6 +695,8 @@ <Compile Include="ReadOnly\StudentDto.cs" /> <Compile Include="ReadOnly\TextHolder.cs" /> <Compile Include="ReadOnly\VersionedNode.cs" /> + <Compile Include="Subselect\ClassSubselectFixture.cs" /> + <Compile Include="Subselect\Domain.cs" /> <Compile Include="TestDialect.cs" /> <Compile Include="TestDialects\SQLiteTestDialect.cs" /> <Compile Include="TypesTest\CharClass.cs" /> @@ -2494,6 +2496,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="Subselect\Beings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2488\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2490\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1925\Mappings.hbm.xml" /> Added: trunk/nhibernate/src/NHibernate.Test/Subselect/Beings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Subselect/Beings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Subselect/Beings.hbm.xml 2011-03-26 16:27:40 UTC (rev 5541) @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- + + This mapping demonstrates + + (1) use of a class-to-subselect mapping, that allows data + defined in other classes to be exposed as a read-only + entity (you would do this if you really wanted a view, + but didn't or couldn't define one for some reason) + This is a "derived entity" mapping. + + (2) use of <synchronize/> to ensure that auto-flush happens + correctly, and that queries against the derived entity + do not return stale data + +--> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.Subselect" + assembly="NHibernate.Test"> + + <class name="Human" table="Humans"> + <id name="Id" column="bid"> + <generator class="hilo"/> + </id> + + <property name="Name" not-null="true"/> + <property name="Sex" not-null="true" update="false"/> + <property name="Address"/> + </class> + + <class name="Alien" table="Aliens"> + <id name="Id" column="bid"> + <generator class="hilo"/> + </id> + <property name="Identity" not-null="true" column="ident"/> + <property name="Planet"/> + <property name="Species" not-null="true" update="false"/> + + </class> + + <class name="Being" mutable="false"> + <subselect> + select bid, name as ident, address as loc, 'human' as species + from humans + union + select bid, ident, planet as loc, species + from aliens + </subselect> + + <synchronize table="Humans"/> + <synchronize table="Aliens"/> + + <id name="Id" column="bid"> + <generator class="native"/> + </id> + + <property name="Identity" column="ident"/> + <property name="Location" column="loc"/> + <property name="Species"/> + </class> + +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/Subselect/ClassSubselectFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Subselect/ClassSubselectFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Subselect/ClassSubselectFixture.cs 2011-03-26 16:27:40 UTC (rev 5541) @@ -0,0 +1,62 @@ +using System.Collections; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.Subselect +{ + public class ClassSubselectFixture: TestCase + { + protected override IList Mappings + { + get { return new[] {"Subselect.Beings.hbm.xml"}; } + } + + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + [Test] + public void EntitySubselect() + { + var s = OpenSession(); + var t = s.BeginTransaction(); + Human gavin = new Human(); + gavin.Name = "gavin"; + gavin.Sex = 'M'; + gavin.Address = "Melbourne, Australia"; + Alien x23y4 = new Alien(); + x23y4.Identity = "x23y4$$hu%3"; + x23y4.Planet = "Mars"; + x23y4.Species = "martian"; + s.Save(gavin); + s.Save(x23y4); + s.Flush(); + var beings = s.CreateQuery("from Being").List<Being>(); + beings.Should().Have.Count.GreaterThan(0); + foreach (var being in beings) + { + being.Location.Should().Not.Be.NullOrEmpty(); + being.Identity.Should().Not.Be.NullOrEmpty(); + being.Species.Should().Not.Be.NullOrEmpty(); + } + s.Clear(); + Sfi.Evict(typeof (Being)); + Being gav = s.Get<Being>(gavin.Id); + gav.Location.Should().Not.Be.NullOrEmpty(); + gav.Identity.Should().Not.Be.NullOrEmpty(); + gav.Species.Should().Not.Be.NullOrEmpty(); + s.Clear(); + //test the <synchronized> tag: + gavin = s.Get<Human>(gavin.Id); + gavin.Address = "Atlanta, GA"; + gav = s.CreateQuery("from Being b where b.Location like '%GA%'").UniqueResult<Being>(); + gav.Location.Should().Be(gavin.Address); + s.Delete(gavin); + s.Delete(x23y4); + s.CreateQuery("from Being").List<Being>().Should().Be.Empty(); + t.Commit(); + s.Close(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/Subselect/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Subselect/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/Subselect/Domain.cs 2011-03-26 16:27:40 UTC (rev 5541) @@ -0,0 +1,26 @@ +namespace NHibernate.Test.Subselect +{ + public class Human + { + public virtual int Id { get; set; } + public virtual char Sex { get; set; } + public virtual string Name { get; set; } + public virtual string Address { get; set; } + } + + public class Alien + { + public virtual int Id { get; set; } + public virtual string Identity { get; set; } + public virtual string Planet { get; set; } + public virtual string Species { get; set; } + } + + public class Being + { + public virtual int Id { get; set; } + public virtual string Identity { get; set; } + public virtual string Location { get; set; } + public virtual string Species { get; set; } + } +} \ 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: <pa...@us...> - 2011-03-27 02:18:12
|
Revision: 5547 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5547&view=rev Author: patearl Date: 2011-03-27 02:18:06 +0000 (Sun, 27 Mar 2011) Log Message: ----------- Ignore a broken decimal test on SQLite, adding an appropriate disappointing flag to TestDialect. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs trunk/nhibernate/src/NHibernate.Test/Unionsubclass2/UnionSubclassFixture.cs Modified: trunk/nhibernate/src/NHibernate.Test/TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-27 00:18:24 UTC (rev 5546) +++ trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-27 02:18:06 UTC (rev 5547) @@ -45,6 +45,8 @@ public virtual bool SupportsFullJoin { get { return true; } } + public virtual bool HasBrokenDecimalType { get { return false; } } + public bool SupportsSqlType(SqlType sqlType) { try Modified: trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-03-27 00:18:24 UTC (rev 5546) +++ trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-03-27 02:18:06 UTC (rev 5547) @@ -41,5 +41,10 @@ { get { return false; } } + + public override bool HasBrokenDecimalType + { + get { return true; } + } } } Modified: trunk/nhibernate/src/NHibernate.Test/Unionsubclass2/UnionSubclassFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Unionsubclass2/UnionSubclassFixture.cs 2011-03-27 00:18:24 UTC (rev 5546) +++ trunk/nhibernate/src/NHibernate.Test/Unionsubclass2/UnionSubclassFixture.cs 2011-03-27 02:18:06 UTC (rev 5547) @@ -114,11 +114,14 @@ result = s.CreateQuery("from Person p where p.salary > 100 or p.name like 'E%'").List(); Assert.AreEqual(2, result.Count); - result = s.CreateCriteria(typeof(Person)).Add(Property.ForName("salary").Gt(100m)).List(); - Assert.AreEqual(1, result.Count); - Assert.AreSame(q, result[0]); + if (!TestDialect.HasBrokenDecimalType) + { + result = s.CreateCriteria(typeof (Person)).Add(Property.ForName("salary").Gt(100m)).List(); + Assert.AreEqual(1, result.Count); + Assert.AreSame(q, result[0]); + } - result = s.CreateQuery("select p.salary from Person p where p.salary > 100").List(); + result = s.CreateQuery("select p.salary from Person p where p.salary > 100").List(); Assert.AreEqual(1, result.Count); Assert.AreEqual(1000m, (decimal)result[0]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-03-28 15:15:31
|
Revision: 5564 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5564&view=rev Author: patearl Date: 2011-03-28 15:15:24 +0000 (Mon, 28 Mar 2011) Log Message: ----------- Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/TestDialects/PostgreSQL82TestDialect.cs Modified: trunk/nhibernate/src/NHibernate.Test/TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-28 05:23:57 UTC (rev 5563) +++ trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-03-28 15:15:24 UTC (rev 5564) @@ -47,6 +47,8 @@ public virtual bool HasBrokenDecimalType { get { return false; } } + public virtual bool SupportsSelectForUpdateOnOuterJoin { get { return true; } } + public bool SupportsSqlType(SqlType sqlType) { try Added: trunk/nhibernate/src/NHibernate.Test/TestDialects/PostgreSQL82TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialects/PostgreSQL82TestDialect.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TestDialects/PostgreSQL82TestDialect.cs 2011-03-28 15:15:24 UTC (rev 5564) @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace NHibernate.Test.TestDialects +{ + public class PostgreSQL82TestDialect : TestDialect + { + public PostgreSQL82TestDialect(Dialect.Dialect dialect) + : base(dialect) + { + } + + public override bool SupportsSelectForUpdateOnOuterJoin + { + get { return false; } + } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-03 14:46:25
|
Revision: 5593 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5593&view=rev Author: fabiomaulo Date: 2011-04-03 14:46:14 +0000 (Sun, 03 Apr 2011) Log Message: ----------- Minor (reorganized namespace) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/BasicMappingOfSimpleClass.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ColumnsNamingConvetions.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/MappingOfPrivateMembersOnRootEntity.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/BasicMappingOfSimpleClass.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/ColumnsNamingConvetions.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappingOfPrivateMembersOnRootEntity.cs Deleted: trunk/nhibernate/src/NHibernate.Test/MappingByCode/BasicMappingOfSimpleClass.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/BasicMappingOfSimpleClass.cs 2011-04-03 14:03:09 UTC (rev 5592) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/BasicMappingOfSimpleClass.cs 2011-04-03 14:46:14 UTC (rev 5593) @@ -1,98 +0,0 @@ -using System.Linq; -using NHibernate.Cfg.MappingSchema; -using NHibernate.Mapping.ByCode; -using NHibernate.Mapping.ByCode.Impl; -using NUnit.Framework; -using SharpTestsEx; - -namespace NHibernate.Test.MappingByCode -{ - public class BasicMappingOfSimpleClass - { - public class MyClass - { - public int Id { get; set; } - public string Something { get; set; } - } - - [Test] - public void MapClassWithIdAndProperty() - { - var mapper = new ModelMapper(); - mapper.Class<MyClass>(ca => - { - ca.Id(x => x.Id, map => - { - map.Column("MyClassId"); - map.Generator(Generators.HighLow, gmap => gmap.Params(new { max_low = 100 })); - }); - ca.Property(x => x.Something, map => map.Length(150)); - }); - var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); - ModelIsWellFormed(hbmMapping); - } - - [Test] - public void WhenDuplicatePropertiesDoesNotDuplicateMapping() - { - var mapper = new ModelMapper(); - mapper.Class<MyClass>(ca => - { - ca.Id(x => x.Id, map => - { - map.Column("MyClassId"); - }); - ca.Id(x => x.Id, map => - { - map.Generator(Generators.HighLow, gmap => gmap.Params(new { max_low = 100 })); - }); - ca.Property(x => x.Something); - ca.Property(x => x.Something, map => map.Length(150)); - }); - var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); - ModelIsWellFormed(hbmMapping); - } - - [Test] - public void WhenDuplicateClassDoesNotDuplicateMapping() - { - var mapper = new ModelMapper(); - mapper.Class<MyClass>(ca => - { - ca.Id(x => x.Id, map => - { - map.Generator(Generators.HighLow, gmap => gmap.Params(new { max_low = 100 })); - }); - ca.Property(x => x.Something); - }); - - mapper.Class<MyClass>(ca => - { - ca.Id(x => x.Id, map => - { - map.Column("MyClassId"); - }); - ca.Property(x => x.Something, map => map.Length(150)); - }); - var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); - ModelIsWellFormed(hbmMapping); - } - - private void ModelIsWellFormed(HbmMapping hbmMapping) - { - var hbmClass = hbmMapping.RootClasses[0]; - hbmClass.Should().Not.Be.Null(); - var hbmId = hbmClass.Id; - hbmId.Should().Not.Be.Null(); - hbmId.name.Should().Be("Id"); - var hbmGenerator = hbmId.generator; - hbmGenerator.Should().Not.Be.Null(); - hbmGenerator.@class.Should().Be("hilo"); - hbmGenerator.param[0].name.Should().Be("max_low"); - hbmGenerator.param[0].GetText().Should().Be("100"); - var hbmProperty = hbmClass.Properties.OfType<HbmProperty>().Single(); - hbmProperty.name.Should().Be("Something"); - hbmProperty.length.Should().Be("150"); - } - } -} \ No newline at end of file Deleted: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ColumnsNamingConvetions.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ColumnsNamingConvetions.cs 2011-04-03 14:03:09 UTC (rev 5592) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ColumnsNamingConvetions.cs 2011-04-03 14:46:14 UTC (rev 5593) @@ -1,67 +0,0 @@ -using System.Linq; -using NHibernate.Cfg.MappingSchema; -using NHibernate.Mapping.ByCode; -using NUnit.Framework; -using SharpTestsEx; - -namespace NHibernate.Test.MappingByCode -{ - public class ColumnsNamingConvetions - { - public class MyClass - { - public int Id { get; set; } - public string Something { get; set; } - } - - [Test] - public void MapClassWithConventions() - { - var mapper = new ModelMapper(); - - mapper.BeforeMapClass += - (mi, t, map) => map.Id(x => x.Column((t.Name+"id").ToUpper())); - mapper.BeforeMapProperty += - (mi, propertyPath, map) => map.Column(propertyPath.ToColumnName().ToUpper()); - - mapper.Class<MyClass>(ca => - { - ca.Id(x => x.Id, map => { }); - ca.Property(x => x.Something); - }); - var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); - - var hbmClass = hbmMapping.RootClasses[0]; - hbmClass.Should().Not.Be.Null(); - var hbmId = hbmClass.Id; - hbmId.column1.Should().Be("MYCLASSID"); - var hbmProperty = hbmClass.Properties.OfType<HbmProperty>().Single(); - hbmProperty.column.Should().Be("SOMETHING"); - } - - [Test] - public void MapClassWithHardConventions() - { - var mapper = new ModelMapper(); - - mapper.AfterMapClass += - (mi, t, map) => map.Id(x => x.Column((t.Name + "id").ToUpper())); - mapper.AfterMapProperty += - (mi, propertyPath, map) => map.Column(propertyPath.ToColumnName().ToUpper()); - - mapper.Class<MyClass>(ca => - { - ca.Id(x => x.Id, map => map.Column("Whatever")); - ca.Property(x => x.Something, map => map.Column("Whatever")); - }); - var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); - - var hbmClass = hbmMapping.RootClasses[0]; - hbmClass.Should().Not.Be.Null(); - var hbmId = hbmClass.Id; - hbmId.column1.Should().Be("MYCLASSID"); - var hbmProperty = hbmClass.Properties.OfType<HbmProperty>().Single(); - hbmProperty.column.Should().Be("SOMETHING"); - } - } -} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/BasicMappingOfSimpleClass.cs (from rev 5587, trunk/nhibernate/src/NHibernate.Test/MappingByCode/BasicMappingOfSimpleClass.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/BasicMappingOfSimpleClass.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/BasicMappingOfSimpleClass.cs 2011-04-03 14:46:14 UTC (rev 5593) @@ -0,0 +1,97 @@ +using System.Linq; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.ExpliticMappingTests +{ + public class BasicMappingOfSimpleClass + { + public class MyClass + { + public int Id { get; set; } + public string Something { get; set; } + } + + [Test] + public void MapClassWithIdAndProperty() + { + var mapper = new ModelMapper(); + mapper.Class<MyClass>(ca => + { + ca.Id(x => x.Id, map => + { + map.Column("MyClassId"); + map.Generator(Generators.HighLow, gmap => gmap.Params(new { max_low = 100 })); + }); + ca.Property(x => x.Something, map => map.Length(150)); + }); + var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); + ModelIsWellFormed(hbmMapping); + } + + [Test] + public void WhenDuplicatePropertiesDoesNotDuplicateMapping() + { + var mapper = new ModelMapper(); + mapper.Class<MyClass>(ca => + { + ca.Id(x => x.Id, map => + { + map.Column("MyClassId"); + }); + ca.Id(x => x.Id, map => + { + map.Generator(Generators.HighLow, gmap => gmap.Params(new { max_low = 100 })); + }); + ca.Property(x => x.Something); + ca.Property(x => x.Something, map => map.Length(150)); + }); + var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); + ModelIsWellFormed(hbmMapping); + } + + [Test] + public void WhenDuplicateClassDoesNotDuplicateMapping() + { + var mapper = new ModelMapper(); + mapper.Class<MyClass>(ca => + { + ca.Id(x => x.Id, map => + { + map.Generator(Generators.HighLow, gmap => gmap.Params(new { max_low = 100 })); + }); + ca.Property(x => x.Something); + }); + + mapper.Class<MyClass>(ca => + { + ca.Id(x => x.Id, map => + { + map.Column("MyClassId"); + }); + ca.Property(x => x.Something, map => map.Length(150)); + }); + var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); + ModelIsWellFormed(hbmMapping); + } + + private void ModelIsWellFormed(HbmMapping hbmMapping) + { + var hbmClass = hbmMapping.RootClasses[0]; + hbmClass.Should().Not.Be.Null(); + var hbmId = hbmClass.Id; + hbmId.Should().Not.Be.Null(); + hbmId.name.Should().Be("Id"); + var hbmGenerator = hbmId.generator; + hbmGenerator.Should().Not.Be.Null(); + hbmGenerator.@class.Should().Be("hilo"); + hbmGenerator.param[0].name.Should().Be("max_low"); + hbmGenerator.param[0].GetText().Should().Be("100"); + var hbmProperty = hbmClass.Properties.OfType<HbmProperty>().Single(); + hbmProperty.name.Should().Be("Something"); + hbmProperty.length.Should().Be("150"); + } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ColumnsNamingConvetions.cs (from rev 5587, trunk/nhibernate/src/NHibernate.Test/MappingByCode/ColumnsNamingConvetions.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ColumnsNamingConvetions.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ColumnsNamingConvetions.cs 2011-04-03 14:46:14 UTC (rev 5593) @@ -0,0 +1,67 @@ +using System.Linq; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.ExpliticMappingTests +{ + public class ColumnsNamingConvetions + { + public class MyClass + { + public int Id { get; set; } + public string Something { get; set; } + } + + [Test] + public void MapClassWithConventions() + { + var mapper = new ModelMapper(); + + mapper.BeforeMapClass += + (mi, t, map) => map.Id(x => x.Column((t.Name+"id").ToUpper())); + mapper.BeforeMapProperty += + (mi, propertyPath, map) => map.Column(propertyPath.ToColumnName().ToUpper()); + + mapper.Class<MyClass>(ca => + { + ca.Id(x => x.Id, map => { }); + ca.Property(x => x.Something); + }); + var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); + + var hbmClass = hbmMapping.RootClasses[0]; + hbmClass.Should().Not.Be.Null(); + var hbmId = hbmClass.Id; + hbmId.column1.Should().Be("MYCLASSID"); + var hbmProperty = hbmClass.Properties.OfType<HbmProperty>().Single(); + hbmProperty.column.Should().Be("SOMETHING"); + } + + [Test] + public void MapClassWithHardConventions() + { + var mapper = new ModelMapper(); + + mapper.AfterMapClass += + (mi, t, map) => map.Id(x => x.Column((t.Name + "id").ToUpper())); + mapper.AfterMapProperty += + (mi, propertyPath, map) => map.Column(propertyPath.ToColumnName().ToUpper()); + + mapper.Class<MyClass>(ca => + { + ca.Id(x => x.Id, map => map.Column("Whatever")); + ca.Property(x => x.Something, map => map.Column("Whatever")); + }); + var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); + + var hbmClass = hbmMapping.RootClasses[0]; + hbmClass.Should().Not.Be.Null(); + var hbmId = hbmClass.Id; + hbmId.column1.Should().Be("MYCLASSID"); + var hbmProperty = hbmClass.Properties.OfType<HbmProperty>().Single(); + hbmProperty.column.Should().Be("SOMETHING"); + } + } +} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/MappingOfPrivateMembersOnRootEntity.cs (from rev 5587, trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappingOfPrivateMembersOnRootEntity.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/MappingOfPrivateMembersOnRootEntity.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/MappingOfPrivateMembersOnRootEntity.cs 2011-04-03 14:46:14 UTC (rev 5593) @@ -0,0 +1,48 @@ +using System.Linq; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.ExpliticMappingTests +{ + public class MappingOfPrivateMembersOnRootEntity + { + public class MyClass + { + private int id; + private string something; + } + + [Test] + public void MapClassWithIdAndProperty() + { + var mapper = new ModelMapper(); + mapper.Class<MyClass>(ca => + { + ca.Id(ForClass<MyClass>.Field("id"), map => + { + map.Column("MyClassId"); + map.Generator(Generators.HighLow, gmap => gmap.Params(new { max_low = 100 })); + }); + ca.Property(ForClass<MyClass>.Field("something"), map => map.Length(150)); + }); + var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); + var hbmClass = hbmMapping.RootClasses[0]; + hbmClass.Should().Not.Be.Null(); + var hbmId = hbmClass.Id; + hbmId.Should().Not.Be.Null(); + hbmId.name.Should().Be("id"); + hbmId.access.Should().Be("field"); + var hbmGenerator = hbmId.generator; + hbmGenerator.Should().Not.Be.Null(); + hbmGenerator.@class.Should().Be("hilo"); + hbmGenerator.param[0].name.Should().Be("max_low"); + hbmGenerator.param[0].GetText().Should().Be("100"); + var hbmProperty = hbmClass.Properties.OfType<HbmProperty>().Single(); + hbmProperty.name.Should().Be("something"); + hbmProperty.access.Should().Be("field"); + hbmProperty.length.Should().Be("150"); + } + } +} \ No newline at end of file Deleted: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappingOfPrivateMembersOnRootEntity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappingOfPrivateMembersOnRootEntity.cs 2011-04-03 14:03:09 UTC (rev 5592) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappingOfPrivateMembersOnRootEntity.cs 2011-04-03 14:46:14 UTC (rev 5593) @@ -1,49 +0,0 @@ -using System.Linq; -using NHibernate.Cfg.MappingSchema; -using NHibernate.Mapping.ByCode; -using NHibernate.Mapping.ByCode.Impl; -using NUnit.Framework; -using SharpTestsEx; - -namespace NHibernate.Test.MappingByCode -{ - public class MappingOfPrivateMembersOnRootEntity - { - public class MyClass - { - private int id; - private string something; - } - - [Test] - public void MapClassWithIdAndProperty() - { - var mapper = new ModelMapper(); - mapper.Class<MyClass>(ca => - { - ca.Id(ForClass<MyClass>.Field("id"), map => - { - map.Column("MyClassId"); - map.Generator(Generators.HighLow, gmap => gmap.Params(new { max_low = 100 })); - }); - ca.Property(ForClass<MyClass>.Field("something"), map => map.Length(150)); - }); - var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) }); - var hbmClass = hbmMapping.RootClasses[0]; - hbmClass.Should().Not.Be.Null(); - var hbmId = hbmClass.Id; - hbmId.Should().Not.Be.Null(); - hbmId.name.Should().Be("id"); - hbmId.access.Should().Be("field"); - var hbmGenerator = hbmId.generator; - hbmGenerator.Should().Not.Be.Null(); - hbmGenerator.@class.Should().Be("hilo"); - hbmGenerator.param[0].name.Should().Be("max_low"); - hbmGenerator.param[0].GetText().Should().Be("100"); - var hbmProperty = hbmClass.Properties.OfType<HbmProperty>().Single(); - hbmProperty.name.Should().Be("something"); - hbmProperty.access.Should().Be("field"); - hbmProperty.length.Should().Be("150"); - } - } -} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-03 14:03:09 UTC (rev 5592) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-03 14:46:14 UTC (rev 5593) @@ -506,8 +506,8 @@ <Compile Include="Linq\ByMethod\SumTests.cs" /> <Compile Include="Logging\Log4NetLoggerTest.cs" /> <Compile Include="Logging\LoggerProviderTest.cs" /> - <Compile Include="MappingByCode\BasicMappingOfSimpleClass.cs" /> - <Compile Include="MappingByCode\ColumnsNamingConvetions.cs" /> + <Compile Include="MappingByCode\ExpliticMappingTests\BasicMappingOfSimpleClass.cs" /> + <Compile Include="MappingByCode\ExpliticMappingTests\ColumnsNamingConvetions.cs" /> <Compile Include="MappingByCode\ExplicitlyDeclaredModelTests\ComponentMappingRegistrationTests.cs" /> <Compile Include="MappingByCode\ExplicitlyDeclaredModelTests\JoinedSubclassMappingStrategyTests.cs" /> <Compile Include="MappingByCode\ExplicitlyDeclaredModelTests\JoinedSubclassSequenceRegistrationTests.cs" /> @@ -518,7 +518,7 @@ <Compile Include="MappingByCode\ExplicitlyDeclaredModelTests\SubclassSequenceRegistrationTests.cs" /> <Compile Include="MappingByCode\ExplicitlyDeclaredModelTests\UnionSubclassMappingStrategyTests.cs" /> <Compile Include="MappingByCode\ExplicitlyDeclaredModelTests\UnionSubclassSequenceRegistrationTests.cs" /> - <Compile Include="MappingByCode\MappingOfPrivateMembersOnRootEntity.cs" /> + <Compile Include="MappingByCode\ExpliticMappingTests\MappingOfPrivateMembersOnRootEntity.cs" /> <Compile Include="MappingByCode\NatureDemo\Naturalness\Address.cs" /> <Compile Include="MappingByCode\NatureDemo\Naturalness\Animal.cs" /> <Compile Include="MappingByCode\NatureDemo\Naturalness\Classification.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-04 18:23:04
|
Revision: 5605 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5605&view=rev Author: fabiomaulo Date: 2011-04-04 18:22:58 +0000 (Mon, 04 Apr 2011) Log Message: ----------- Port test from ConfORM Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/AbstractPropertyContainerMapperTest.cs Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/AbstractPropertyContainerMapperTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/AbstractPropertyContainerMapperTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/AbstractPropertyContainerMapperTest.cs 2011-04-04 18:22:58 UTC (rev 5605) @@ -0,0 +1,148 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode.Impl; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.MappersTests +{ + public class AbstractPropertyContainerMapperTest + { + private class EntitySimple + { + public string Name { get; set; } + } + private class InheritedEntitySimple : EntitySimple + { + } + + private class OtherSimple + { + public string Name { get; set; } + } + + private class MyClass + { + public object Reference { get; set; } + } + private class MyClassWithDictionary + { + public IDictionary<string, string> Dictionary { get; set; } + } + + [Test] + public void CantCreateWithoutHbmMapping() + { + Executing.This(() => new HackPropertyContainerMapper(typeof(EntitySimple), null)).Should().Throw<ArgumentNullException>(); + } + + [Test] + public void CantCreateWithoutContainerType() + { + Executing.This(() => new HackPropertyContainerMapper(null, new HbmMapping())).Should().Throw<ArgumentNullException>(); + } + + [Test] + public void CanAddSimpleProperty() + { + var properties = new List<object>(); + var map = new StubPropertyContainerMapper<EntitySimple>(properties); + map.Property(typeof (EntitySimple).GetProperty("Name"), x => { }); + + properties.Should().Have.Count.EqualTo(1); + properties.First().Should().Be.OfType<HbmProperty>().And.ValueOf.Name.Should().Be.EqualTo("Name"); + } + + [Test] + public void CallPropertyMapper() + { + var properties = new List<object>(); + var map = new StubPropertyContainerMapper<EntitySimple>(properties); + var called = false; + map.Property(typeof(EntitySimple).GetProperty("Name"), x => called = true ); + + called.Should().Be.True(); + } + + [Test] + public void CantAddPropertyOfNotInheritedType() + { + var map = new StubPropertyContainerMapper<OtherSimple>(new List<object>()); + Executing.This(() => map.Property(typeof(EntitySimple).GetProperty("Name"), x => { })).Should().Throw<ArgumentOutOfRangeException>(); + } + + [Test] + public void CanAddPropertyOfInheritedType() + { + var properties = new List<object>(); + var map = new StubPropertyContainerMapper<InheritedEntitySimple>(properties); + map.Property(typeof(InheritedEntitySimple).GetProperty("Name"), x => { }); + + properties.Should().Have.Count.EqualTo(1); + properties.First().Should().Be.OfType<HbmProperty>().And.ValueOf.Name.Should().Be.EqualTo("Name"); + } + + [Test] + public void CallAnyMapper() + { + var properties = new List<object>(); + var map = new StubPropertyContainerMapper<EntitySimple>(properties); + var called = false; + map.Any(typeof(MyClass).GetProperty("Reference"), typeof(int), x => called = true); + + called.Should().Be.True(); + } + + [Test] + public void CallDictionaryMappers() + { + var properties = new List<object>(); + var map = new StubPropertyContainerMapper<EntitySimple>(properties); + var collectionPropsCalled = false; + var keyRelationCalled = false; + var elementRelationCalled = false; + map.Map(typeof (MyClassWithDictionary).GetProperty("Dictionary"), cp => collectionPropsCalled = true, + km => keyRelationCalled = true, er => elementRelationCalled = true); + + collectionPropsCalled.Should().Be.True(); + keyRelationCalled.Should().Be.True(); + elementRelationCalled.Should().Be.True(); + } + + private class HackPropertyContainerMapper : AbstractPropertyContainerMapper + { + public HackPropertyContainerMapper(System.Type container, HbmMapping mapDoc) : base(container, mapDoc) {} + + #region Overrides of AbstractPropertyContainerMapper + + protected override void AddProperty(object property) + { + throw new NotImplementedException(); + } + + #endregion + } + + private class StubPropertyContainerMapper<T> : AbstractPropertyContainerMapper + { + private readonly ICollection<object> elements; + + public StubPropertyContainerMapper(ICollection<object> elements) + : base(typeof(T), new HbmMapping()) + { + this.elements = elements; + } + + #region Overrides of AbstractClassMapping<StateProvince> + + protected override void AddProperty(object property) + { + elements.Add(property); + } + + #endregion + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-04 17:49:26 UTC (rev 5604) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-04 18:22:58 UTC (rev 5605) @@ -522,6 +522,7 @@ <Compile Include="MappingByCode\ExpliticMappingTests\RootClassPropertiesSplitsTests.cs" /> <Compile Include="MappingByCode\ExpliticMappingTests\VersionTests.cs" /> <Compile Include="MappingByCode\For.cs" /> + <Compile Include="MappingByCode\MappersTests\AbstractPropertyContainerMapperTest.cs" /> <Compile Include="MappingByCode\MappersTests\JoinMapperTests.cs" /> <Compile Include="MappingByCode\NatureDemo\Naturalness\Address.cs" /> <Compile Include="MappingByCode\NatureDemo\Naturalness\Animal.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-04-05 01:28:58
|
Revision: 5610 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5610&view=rev Author: patearl Date: 2011-04-05 01:28:51 +0000 (Tue, 05 Apr 2011) Log Message: ----------- Tests for proxied members with ref and out parameters. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/ClassWithVarietyOfMembers.cs trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Fixture.cs trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Mapping.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/ClassWithVarietyOfMembers.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/ClassWithVarietyOfMembers.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/ClassWithVarietyOfMembers.cs 2011-04-05 01:28:51 UTC (rev 5610) @@ -0,0 +1,20 @@ +using System; + +namespace NHibernate.Test.DynamicProxyTests.ProxiedMembers +{ + public class ClassWithVarietyOfMembers + { + public virtual int Id { get; set; } + public virtual string Data { get; set; } + + public virtual void Method1(out int x) + { + x = 3; + } + + public virtual void Method2(ref int x) + { + x++; + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Fixture.cs 2011-04-05 01:28:51 UTC (rev 5610) @@ -0,0 +1,50 @@ +using System; +using System.Collections; +using System.IO; +using System.Runtime.Serialization; +using System.Runtime.Serialization.Formatters.Binary; +using NUnit.Framework; + +namespace NHibernate.Test.DynamicProxyTests.ProxiedMembers +{ + [TestFixture] + public class Fixture : TestCase + { + protected override IList Mappings + { + get { return new[] { "DynamicProxyTests.ProxiedMembers.Mapping.hbm.xml" }; } + } + + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + [Test] + [Ignore] + public void Proxy() + { + ISession s = OpenSession(); + ClassWithVarietyOfMembers c = new ClassWithVarietyOfMembers {Id = 1, Data = "some data"}; + s.Save(c); + s.Flush(); + s.Close(); + + s = OpenSession(); + c = (ClassWithVarietyOfMembers)s.Load(typeof(ClassWithVarietyOfMembers), c.Id); + Assert.IsFalse(NHibernateUtil.IsInitialized(c)); + + int x; + c.Method1(out x); + Assert.AreEqual(3, x); + + x = 4; + c.Method2(ref x); + Assert.AreEqual(5, x); + + s.Delete(c); + s.Flush(); + s.Close(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Mapping.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Mapping.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Mapping.hbm.xml 2011-04-05 01:28:51 UTC (rev 5610) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.DynamicProxyTests.ProxiedMembers"> + <class name="ClassWithVarietyOfMembers"> + <id name="Id"> + <generator class="assigned" /> + </id> + <property name="Data" /> + </class> +</hibernate-mapping> \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-04 20:53:35 UTC (rev 5609) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-05 01:28:51 UTC (rev 5610) @@ -222,6 +222,8 @@ <Compile Include="DynamicProxyTests\InterfaceProxySerializationTests\ProxyFixture.cs" /> <Compile Include="DynamicProxyTests\InterfaceWithEqualsGethashcodeTests.cs" /> <Compile Include="DynamicProxyTests\LazyFieldInterceptorSerializable.cs" /> + <Compile Include="DynamicProxyTests\ProxiedMembers\ClassWithVarietyOfMembers.cs" /> + <Compile Include="DynamicProxyTests\ProxiedMembers\Fixture.cs" /> <Compile Include="EngineTest\CallableParserFixture.cs" /> <Compile Include="EngineTest\NativeSQLQueryNonScalarReturnTest.cs" /> <Compile Include="EngineTest\NativeSQLQueryScalarReturnTest.cs" /> @@ -2535,6 +2537,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="DynamicProxyTests\ProxiedMembers\Mapping.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\SqlConverterAndMultiQuery\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2489\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2603\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-06 21:06:36
|
Revision: 5628 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5628&view=rev Author: fabiomaulo Date: 2011-04-06 21:06:29 +0000 (Wed, 06 Apr 2011) Log Message: ----------- Fixed test to be only dyn-proxy test Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/PassThroughInterceptor.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/ClassWithVarietyOfMembers.cs trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Mapping.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/PassThroughInterceptor.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/PassThroughInterceptor.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/PassThroughInterceptor.cs 2011-04-06 21:06:29 UTC (rev 5628) @@ -0,0 +1,20 @@ +using System; +using NHibernate.Proxy.DynamicProxy; + +namespace NHibernate.Test.DynamicProxyTests +{ + public class PassThroughInterceptor : NHibernate.Proxy.DynamicProxy.IInterceptor + { + private readonly object targetInstance; + + public PassThroughInterceptor(object targetInstance) + { + this.targetInstance = targetInstance; + } + + public object Intercept(InvocationInfo info) + { + return info.TargetMethod.Invoke(targetInstance, info.Arguments); + } + } +} \ No newline at end of file Deleted: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/ClassWithVarietyOfMembers.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/ClassWithVarietyOfMembers.cs 2011-04-06 18:11:14 UTC (rev 5627) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/ClassWithVarietyOfMembers.cs 2011-04-06 21:06:29 UTC (rev 5628) @@ -1,20 +0,0 @@ -using System; - -namespace NHibernate.Test.DynamicProxyTests.ProxiedMembers -{ - public class ClassWithVarietyOfMembers - { - public virtual int Id { get; set; } - public virtual string Data { get; set; } - - public virtual void Method1(out int x) - { - x = 3; - } - - public virtual void Method2(ref int x) - { - x++; - } - } -} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Fixture.cs 2011-04-06 18:11:14 UTC (rev 5627) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Fixture.cs 2011-04-06 21:06:29 UTC (rev 5628) @@ -1,50 +1,38 @@ -using System; -using System.Collections; -using System.IO; -using System.Runtime.Serialization; -using System.Runtime.Serialization.Formatters.Binary; +using NHibernate.Proxy.DynamicProxy; using NUnit.Framework; +using SharpTestsEx; namespace NHibernate.Test.DynamicProxyTests.ProxiedMembers { - [TestFixture] - public class Fixture : TestCase + public class ClassWithVarietyOfMembers { - protected override IList Mappings + public virtual void Method1(out int x) { - get { return new[] { "DynamicProxyTests.ProxiedMembers.Mapping.hbm.xml" }; } + x = 3; } - protected override string MappingsAssembly + public virtual void Method2(ref int x) { - get { return "NHibernate.Test"; } + x++; } + } + public class Fixture + { [Test] - [Ignore] + [Ignore] public void Proxy() { - ISession s = OpenSession(); - ClassWithVarietyOfMembers c = new ClassWithVarietyOfMembers {Id = 1, Data = "some data"}; - s.Save(c); - s.Flush(); - s.Close(); + var factory = new ProxyFactory(); + var c = (ClassWithVarietyOfMembers)factory.CreateProxy(typeof(ClassWithVarietyOfMembers), new PassThroughInterceptor(new ClassWithVarietyOfMembers()), null); - s = OpenSession(); - c = (ClassWithVarietyOfMembers)s.Load(typeof(ClassWithVarietyOfMembers), c.Id); - Assert.IsFalse(NHibernateUtil.IsInitialized(c)); + int x; + c.Method1(out x); + x.Should().Be(3); - int x; - c.Method1(out x); - Assert.AreEqual(3, x); - - x = 4; - c.Method2(ref x); - Assert.AreEqual(5, x); - - s.Delete(c); - s.Flush(); - s.Close(); + x = 4; + c.Method2(ref x); + x.Should().Be(5); } } } \ No newline at end of file Deleted: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Mapping.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Mapping.hbm.xml 2011-04-06 18:11:14 UTC (rev 5627) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/Mapping.hbm.xml 2011-04-06 21:06:29 UTC (rev 5628) @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" - assembly="NHibernate.Test" - namespace="NHibernate.Test.DynamicProxyTests.ProxiedMembers"> - <class name="ClassWithVarietyOfMembers"> - <id name="Id"> - <generator class="assigned" /> - </id> - <property name="Data" /> - </class> -</hibernate-mapping> \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-06 18:11:14 UTC (rev 5627) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-06 21:06:29 UTC (rev 5628) @@ -222,7 +222,7 @@ <Compile Include="DynamicProxyTests\InterfaceProxySerializationTests\ProxyFixture.cs" /> <Compile Include="DynamicProxyTests\InterfaceWithEqualsGethashcodeTests.cs" /> <Compile Include="DynamicProxyTests\LazyFieldInterceptorSerializable.cs" /> - <Compile Include="DynamicProxyTests\ProxiedMembers\ClassWithVarietyOfMembers.cs" /> + <Compile Include="DynamicProxyTests\PassThroughInterceptor.cs" /> <Compile Include="DynamicProxyTests\ProxiedMembers\Fixture.cs" /> <Compile Include="EngineTest\CallableParserFixture.cs" /> <Compile Include="EngineTest\NativeSQLQueryNonScalarReturnTest.cs" /> @@ -2548,7 +2548,6 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> - <EmbeddedResource Include="DynamicProxyTests\ProxiedMembers\Mapping.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\SqlConverterAndMultiQuery\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2489\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2603\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-07 17:30:52
|
Revision: 5630 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5630&view=rev Author: fabiomaulo Date: 2011-04-07 17:30:46 +0000 (Thu, 07 Apr 2011) Log Message: ----------- passing test for NH-2628 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/MetodWithRefDictionaryTest.cs Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/MetodWithRefDictionaryTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/MetodWithRefDictionaryTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/ProxiedMembers/MetodWithRefDictionaryTest.cs 2011-04-07 17:30:46 UTC (rev 5630) @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using NHibernate.Proxy.DynamicProxy; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.DynamicProxyTests.ProxiedMembers +{ + public class MetodWithRefDictionaryTest + { + public class MyClass + { + public virtual void Method(ref Dictionary<string ,string> adictionary) + { + adictionary = new Dictionary<string, string>(); + } + } + + [Test] + public void Proxy() + { + var factory = new ProxyFactory(); + var c = (MyClass)factory.CreateProxy(typeof(MyClass), new PassThroughInterceptor(new MyClass()), null); + var dictionary = new Dictionary<string, string>(); + var myParam = dictionary; + c.Method(ref myParam); + myParam.Should().Not.Be.SameInstanceAs(dictionary); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-07 17:19:55 UTC (rev 5629) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-07 17:30:46 UTC (rev 5630) @@ -224,6 +224,7 @@ <Compile Include="DynamicProxyTests\LazyFieldInterceptorSerializable.cs" /> <Compile Include="DynamicProxyTests\PassThroughInterceptor.cs" /> <Compile Include="DynamicProxyTests\ProxiedMembers\Fixture.cs" /> + <Compile Include="DynamicProxyTests\ProxiedMembers\MetodWithRefDictionaryTest.cs" /> <Compile Include="EngineTest\CallableParserFixture.cs" /> <Compile Include="EngineTest\NativeSQLQueryNonScalarReturnTest.cs" /> <Compile Include="EngineTest\NativeSQLQueryScalarReturnTest.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-07 19:44:28
|
Revision: 5632 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5632&view=rev Author: fabiomaulo Date: 2011-04-07 19:44:21 +0000 (Thu, 07 Apr 2011) Log Message: ----------- Base test class to work with sexy mapping Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj trunk/nhibernate/src/NHibernate.Test/TestCase.cs Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/TestCaseMappingByCode.cs Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-07 19:30:49 UTC (rev 5631) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-07 19:44:21 UTC (rev 5632) @@ -749,6 +749,7 @@ <Compile Include="ReadOnly\VersionedNode.cs" /> <Compile Include="Subselect\ClassSubselectFixture.cs" /> <Compile Include="Subselect\Domain.cs" /> + <Compile Include="TestCaseMappingByCode.cs" /> <Compile Include="TestDialect.cs" /> <Compile Include="TestDialects\PostgreSQL82TestDialect.cs" /> <Compile Include="TestDialects\SQLiteTestDialect.cs" /> Modified: trunk/nhibernate/src/NHibernate.Test/TestCase.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestCase.cs 2011-04-07 19:30:49 UTC (rev 5631) +++ trunk/nhibernate/src/NHibernate.Test/TestCase.cs 2011-04-07 19:44:21 UTC (rev 5632) @@ -222,16 +222,21 @@ if (TestConfigurationHelper.hibernateConfigFile != null) cfg.Configure(TestConfigurationHelper.hibernateConfigFile); + AddMappings(cfg); + + Configure(cfg); + + ApplyCacheSettings(cfg); + } + + protected virtual void AddMappings(Configuration configuration) + { Assembly assembly = Assembly.Load(MappingsAssembly); foreach (string file in Mappings) { - cfg.AddResource(MappingsAssembly + "." + file, assembly); + configuration.AddResource(MappingsAssembly + "." + file, assembly); } - - Configure(cfg); - - ApplyCacheSettings(cfg); } protected virtual void CreateSchema() Added: trunk/nhibernate/src/NHibernate.Test/TestCaseMappingByCode.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestCaseMappingByCode.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TestCaseMappingByCode.cs 2011-04-07 19:44:21 UTC (rev 5632) @@ -0,0 +1,25 @@ +using System.Collections; +using NHibernate.Cfg.MappingSchema; + +namespace NHibernate.Test +{ + public abstract class TestCaseMappingByCode:TestCase + { + protected override IList Mappings + { + get { return new string[0]; } + } + + protected override string MappingsAssembly + { + get { return null; } + } + + protected override void AddMappings(Cfg.Configuration configuration) + { + configuration.AddDeserializedMapping(GetMappings(), "TestDomain"); + } + + protected abstract HbmMapping GetMappings(); + } +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-07 20:44:12
|
Revision: 5633 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5633&view=rev Author: fabiomaulo Date: 2011-04-07 20:44:05 +0000 (Thu, 07 Apr 2011) Log Message: ----------- Test for NH-2632 (not fixed yet) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2632/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2632/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2632/Fixture.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2632/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2632/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2632/Domain.cs 2011-04-07 20:44:05 UTC (rev 5633) @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH2632 +{ + public class Customer + { + public virtual Int64 Id + { + get; + private set; + } + public virtual String Name + { + get; + set; + } + public virtual String Address + { + get; + set; + } + public virtual IEnumerable<Order> Orders + { + get; + private set; + } + } + + public class Order + { + public virtual Int32 Id + { + get; + private set; + } + + public virtual DateTime Date + { + get; + set; + } + + public virtual Customer Customer + { + get; + set; + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2632/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2632/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2632/Fixture.cs 2011-04-07 20:44:05 UTC (rev 5633) @@ -0,0 +1,103 @@ +using System; +using NHibernate.Cfg; +using NHibernate.Cfg.Loquacious; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH2632 +{ + public class Fixture: TestCaseMappingByCode + { + protected override HbmMapping GetMappings() + { + // The impl/mapping of the bidirectional one-to-many sucks but was provided as is + var mapper = new ModelMapper(); + mapper.BeforeMapClass += (i, t, cm) => cm.Id(map => + { + map.Column((t.Name + "Id").ToUpperInvariant()); + map.Generator(Generators.HighLow, g => g.Params(new { max_lo = "1000" })); + }); + mapper.Class<Customer>(ca => + { + ca.Lazy(false); + ca.Id(x => x.Id, m => { }); + ca.NaturalId(x => x.Property(c => c.Name, p => p.NotNullable(true))); + ca.Property(x => x.Address, p => p.Lazy(true)); + ca.Set(c => c.Orders, c => + { + c.Key(x => x.Column("CUSTOMERID")); + c.Inverse(true); + c.Cascade(Mapping.ByCode.Cascade.All); + }, c => c.OneToMany()); + }); + mapper.Class<Order>(cm => + { + cm.Id(x => x.Id, m => { }); + cm.Property(x => x.Date); + cm.ManyToOne(x => x.Customer, map => map.Column("CUSTOMERID")); + }); + return mapper.CompileMappingForAllExplicitAddedEntities(); + } + + protected override void Configure(Cfg.Configuration configuration) + { + configuration.DataBaseIntegration(di => di.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote); + } + + private class Scenario : IDisposable + { + private readonly ISessionFactory factory; + private object customerId; + + public Scenario(ISessionFactory factory) + { + this.factory = factory; + using (ISession s = factory.OpenSession()) + { + using (ITransaction t = s.BeginTransaction()) + { + var customer = new Customer { Name="Zombi", Address = "Bah?!??"}; + var order = new Order { Date = DateTime.Today, Customer = customer }; + customerId = s.Save(customer); + s.Save(order); + t.Commit(); + } + } + } + + public object CustomerId + { + get { return customerId; } + } + + public void Dispose() + { + using (ISession s = factory.OpenSession()) + { + using (ITransaction t = s.BeginTransaction()) + { + s.Delete("from Order"); + s.Delete("from Customer"); + t.Commit(); + } + } + } + } + + [Test, Ignore("Not fixed yet")] + public void GettingCustomerDoesNotThrow() + { + using (var scenario = new Scenario(Sfi)) + { + using (var session = OpenSession()) + { + Customer customer = null; + Executing.This(()=> customer = session.Get<Customer>(scenario.CustomerId)).Should().NotThrow(); + NHibernateUtil.IsInitialized(customer.Address).Should().Be.False(); + } + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-07 19:44:21 UTC (rev 5632) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-07 20:44:05 UTC (rev 5633) @@ -719,6 +719,8 @@ <Compile Include="NHSpecificTest\NH2580\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2603\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2603\Model.cs" /> + <Compile Include="NHSpecificTest\NH2632\Domain.cs" /> + <Compile Include="NHSpecificTest\NH2632\Fixture.cs" /> <Compile Include="NHSpecificTest\Properties\CompositePropertyRefTest.cs" /> <Compile Include="NHSpecificTest\Properties\DynamicEntityTest.cs" /> <Compile Include="NHSpecificTest\Properties\Model.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |