From: <fab...@us...> - 2011-04-08 17:19:20
|
Revision: 5644 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5644&view=rev Author: fabiomaulo Date: 2011-04-08 17:19:14 +0000 (Fri, 08 Apr 2011) Log Message: ----------- Simple extension to show the mapping in console output Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/HbmMappingExtensions.cs Added: trunk/nhibernate/src/NHibernate.Test/HbmMappingExtensions.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/HbmMappingExtensions.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/HbmMappingExtensions.cs 2011-04-08 17:19:14 UTC (rev 5644) @@ -0,0 +1,14 @@ +using System; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode; + +namespace NHibernate.Test +{ + public static class HbmMappingExtensions + { + public static void ShowInConsole(this HbmMapping mapping) + { + Console.WriteLine(mapping.AsString()); + } + } +} \ 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-08 17:16:28 UTC (rev 5643) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-08 17:19:14 UTC (rev 5644) @@ -398,6 +398,7 @@ <Compile Include="GenericTest\SetGeneric\SetGenericFixture.cs" /> <Compile Include="GhostProperty\Order.cs" /> <Compile Include="GhostProperty\GhostPropertyFixture.cs" /> + <Compile Include="HbmMappingExtensions.cs" /> <Compile Include="HQL\Animal.cs" /> <Compile Include="HQL\Ast\Address.cs" /> <Compile Include="HQL\Ast\Animal.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2011-04-11 11:32:47
|
Revision: 5665 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5665&view=rev Author: julian-maughan Date: 2011-04-11 11:32:41 +0000 (Mon, 11 Apr 2011) Log Message: ----------- Unifying NHibernate.Test.Hql and NHibernate.Test.HQL namespaces (part 1 of 2) Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/Hql/ Removed Paths: ------------- trunk/nhibernate/src/NHibernate.Test/HQL/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jul...@us...> - 2011-04-11 11:41:16
|
Revision: 5666 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5666&view=rev Author: julian-maughan Date: 2011-04-11 11:41:09 +0000 (Mon, 11 Apr 2011) Log Message: ----------- Unified NHibernate.Test.Hql and NHibernate.Test.HQL namespaces (part 2 of 2) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Address.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Animal.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Animal.hbm.xml trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BaseFixture.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BooleanLiteralEntity.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BooleanLiteralEntity.hbm.xml trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BulkManipulation.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Classification.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/CrazyCompositeKey.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/DomesticAnimal.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/EntityWithCrazyCompositeKey.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/EntityWithCrazyCompositeKey.hbm.xml trunk/nhibernate/src/NHibernate.Test/Hql/Ast/HqlFixture.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Human.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/IntegerVersioned.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Joiner.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneEntity.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneEntity.hbm.xml trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneKeyEntity.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Mammal.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Name.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/ParsingFixture.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/QuerySubstitutionTest.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Reptile.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleAssociatedEntity.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleClass.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleClass.hbm.xml trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleEntityWithAssociation.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleEntityWithAssociation.hbm.xml trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SqlTranslationFixture.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/StateProvince.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/TimestampVersioned.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/User.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Vehicle.hbm.xml trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Vehicles.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Versions.hbm.xml trunk/nhibernate/src/NHibernate.Test/Hql/Ast/WithClauseFixture.cs trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Zoo.cs trunk/nhibernate/src/NHibernate.Test/Hql/HQLFunctions.cs trunk/nhibernate/src/NHibernate.Test/Hql/SqlCommentsFixture.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Address.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Address.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Address.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class Address { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Animal.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Animal.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Animal.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,6 +1,6 @@ using Iesi.Collections; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class Animal { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Animal.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Animal.hbm.xml 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Animal.hbm.xml 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.HQL.Ast" + namespace="NHibernate.Test.Hql.Ast" default-access="field"> <class name="Animal"> Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BaseFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BaseFixture.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BaseFixture.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,10 +1,10 @@ using System.Collections; +using System.Collections.Generic; using NHibernate.Hql.Ast.ANTLR; -using System.Collections.Generic; +using NHibernate.Hql.Classic; using NHibernate.Util; -using NHibernate.Hql.Classic; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class BaseFixture: TestCase { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BooleanLiteralEntity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BooleanLiteralEntity.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BooleanLiteralEntity.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class BooleanLiteralEntity { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BooleanLiteralEntity.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BooleanLiteralEntity.hbm.xml 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BooleanLiteralEntity.hbm.xml 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.HQL.Ast"> + namespace="NHibernate.Test.Hql.Ast"> <class name="BooleanLiteralEntity"> <id name="Id"> Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BulkManipulation.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BulkManipulation.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/BulkManipulation.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -8,7 +8,7 @@ using NUnit.Framework; using SharpTestsEx; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { [TestFixture] public class BulkManipulation : BaseFixture Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Classification.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Classification.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Classification.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public enum Classification { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/CrazyCompositeKey.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/CrazyCompositeKey.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/CrazyCompositeKey.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class CrazyCompositeKey { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/DomesticAnimal.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/DomesticAnimal.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/DomesticAnimal.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class DomesticAnimal: Mammal { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/EntityWithCrazyCompositeKey.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/EntityWithCrazyCompositeKey.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/EntityWithCrazyCompositeKey.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class EntityWithCrazyCompositeKey { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/EntityWithCrazyCompositeKey.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/EntityWithCrazyCompositeKey.hbm.xml 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/EntityWithCrazyCompositeKey.hbm.xml 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.HQL.Ast"> + namespace="NHibernate.Test.Hql.Ast"> <class name="EntityWithCrazyCompositeKey"> <composite-id name="Id" class="CrazyCompositeKey"> Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/HqlFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/HqlFixture.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/HqlFixture.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -6,7 +6,7 @@ using NHibernate.Util; using NUnit.Framework; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { [TestFixture] public class HqlFixture : BaseFixture Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Human.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Human.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Human.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,7 +1,7 @@ using System.Collections; using Iesi.Collections; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class Human: Mammal { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/IntegerVersioned.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/IntegerVersioned.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/IntegerVersioned.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class IntegerVersioned { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Joiner.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Joiner.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Joiner.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class Joiner { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneEntity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneEntity.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneEntity.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,6 +1,6 @@ using System; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class KeyManyToOneEntity { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneEntity.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneEntity.hbm.xml 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneEntity.hbm.xml 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.HQL.Ast"> + namespace="NHibernate.Test.Hql.Ast"> <class name="KeyManyToOneKeyEntity"> <id name="id" type="long" access="field" > Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneKeyEntity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneKeyEntity.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/KeyManyToOneKeyEntity.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class KeyManyToOneKeyEntity { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Mammal.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Mammal.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Mammal.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,6 +1,6 @@ using System; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class Mammal: Animal { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Name.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Name.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Name.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class Name { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/ParsingFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/ParsingFixture.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/ParsingFixture.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -7,7 +7,7 @@ using NHibernate.Tool.hbm2ddl; using NUnit.Framework; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { // This test need the new NUnit //[TestFixture] Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/QuerySubstitutionTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/QuerySubstitutionTest.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/QuerySubstitutionTest.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -4,7 +4,7 @@ using NHibernate.Cfg.Loquacious; using SharpTestsEx; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class QuerySubstitutionTest: BaseFixture { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Reptile.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Reptile.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Reptile.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class Reptile: Animal { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleAssociatedEntity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleAssociatedEntity.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleAssociatedEntity.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class SimpleAssociatedEntity { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleClass.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleClass.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleClass.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class SimpleClass { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleClass.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleClass.hbm.xml 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleClass.hbm.xml 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.HQL.Ast"> + namespace="NHibernate.Test.Hql.Ast"> <class name="SimpleClass"> <id type="int"> Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleEntityWithAssociation.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleEntityWithAssociation.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleEntityWithAssociation.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,7 +1,7 @@ using System; using Iesi.Collections; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class SimpleEntityWithAssociation { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleEntityWithAssociation.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleEntityWithAssociation.hbm.xml 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SimpleEntityWithAssociation.hbm.xml 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.HQL.Ast"> + namespace="NHibernate.Test.Hql.Ast"> <!-- *Very* important for the test cases that these entities have identically named columns! --> Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SqlTranslationFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SqlTranslationFixture.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/SqlTranslationFixture.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { [TestFixture] public class SqlTranslationFixture : BaseFixture Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/StateProvince.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/StateProvince.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/StateProvince.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class StateProvince { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/TimestampVersioned.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/TimestampVersioned.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/TimestampVersioned.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,6 +1,6 @@ using System; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class TimestampVersioned { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/User.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/User.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/User.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,6 +1,6 @@ using System.Collections; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class User { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Vehicle.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Vehicle.hbm.xml 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Vehicle.hbm.xml 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.HQL.Ast"> + namespace="NHibernate.Test.Hql.Ast"> <!-- Vehicle represents an abstract root of a union-subclass hierarchy --> <class name="Vehicle" abstract="true"> Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Vehicles.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Vehicles.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Vehicles.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,4 +1,4 @@ -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class Vehicle { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Versions.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Versions.hbm.xml 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Versions.hbm.xml 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" - namespace="NHibernate.Test.HQL.Ast" + namespace="NHibernate.Test.Hql.Ast" default-access="field"> <class name="IntegerVersioned"> Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/WithClauseFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/WithClauseFixture.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/WithClauseFixture.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -2,7 +2,7 @@ using NHibernate.Hql.Ast.ANTLR; using NUnit.Framework; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { [TestFixture] public class WithClauseFixture : BaseFixture Modified: trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Zoo.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Zoo.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/Ast/Zoo.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -1,6 +1,6 @@ using System.Collections; -namespace NHibernate.Test.HQL.Ast +namespace NHibernate.Test.Hql.Ast { public class Zoo { Modified: trunk/nhibernate/src/NHibernate.Test/Hql/HQLFunctions.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/HQLFunctions.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/HQLFunctions.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -49,7 +49,7 @@ protected override IList Mappings { - get { return new string[] { "HQL.Animal.hbm.xml", "HQL.MaterialResource.hbm.xml" }; } + get { return new string[] { "Hql.Animal.hbm.xml", "Hql.MaterialResource.hbm.xml" }; } } protected override void OnTearDown() Modified: trunk/nhibernate/src/NHibernate.Test/Hql/SqlCommentsFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/SqlCommentsFixture.cs 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/Hql/SqlCommentsFixture.cs 2011-04-11 11:41:09 UTC (rev 5666) @@ -2,7 +2,7 @@ using NHibernate.Cfg; using NUnit.Framework; -namespace NHibernate.Test.HQL +namespace NHibernate.Test.Hql { [TestFixture] public class SqlCommentsFixture : TestCase @@ -14,7 +14,7 @@ protected override IList Mappings { - get { return new[] { "HQL.Animal.hbm.xml" }; } + get { return new[] { "Hql.Animal.hbm.xml" }; } } protected override void Configure(Configuration configuration) Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-11 11:32:41 UTC (rev 5665) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-11 11:41:09 UTC (rev 5666) @@ -399,37 +399,37 @@ <Compile Include="GhostProperty\Order.cs" /> <Compile Include="GhostProperty\GhostPropertyFixture.cs" /> <Compile Include="HbmMappingExtensions.cs" /> - <Compile Include="HQL\Animal.cs" /> - <Compile Include="HQL\Ast\Address.cs" /> - <Compile Include="HQL\Ast\Animal.cs" /> - <Compile Include="HQL\Ast\BaseFixture.cs" /> - <Compile Include="HQL\Ast\BooleanLiteralEntity.cs" /> - <Compile Include="HQL\Ast\BulkManipulation.cs" /> - <Compile Include="HQL\Ast\Classification.cs" /> - <Compile Include="HQL\Ast\CrazyCompositeKey.cs" /> - <Compile Include="HQL\Ast\DomesticAnimal.cs" /> - <Compile Include="HQL\Ast\EntityWithCrazyCompositeKey.cs" /> - <Compile Include="HQL\Ast\Human.cs" /> - <Compile Include="HQL\Ast\IntegerVersioned.cs" /> - <Compile Include="HQL\Ast\Joiner.cs" /> - <Compile Include="HQL\Ast\KeyManyToOneEntity.cs" /> - <Compile Include="HQL\Ast\KeyManyToOneKeyEntity.cs" /> - <Compile Include="HQL\Ast\Mammal.cs" /> - <Compile Include="HQL\Ast\Name.cs" /> - <Compile Include="HQL\Ast\ParsingFixture.cs" /> - <Compile Include="HQL\Ast\QuerySubstitutionTest.cs" /> - <Compile Include="HQL\Ast\Reptile.cs" /> - <Compile Include="HQL\Ast\SimpleAssociatedEntity.cs" /> - <Compile Include="HQL\Ast\SimpleClass.cs" /> - <Compile Include="HQL\Ast\SimpleEntityWithAssociation.cs" /> - <Compile Include="HQL\Ast\SqlTranslationFixture.cs" /> - <Compile Include="HQL\Ast\StateProvince.cs" /> - <Compile Include="HQL\Ast\TimestampVersioned.cs" /> - <Compile Include="HQL\Ast\User.cs" /> - <Compile Include="HQL\Ast\Vehicles.cs" /> - <Compile Include="HQL\Ast\WithClauseFixture.cs" /> - <Compile Include="HQL\Ast\Zoo.cs" /> - <Compile Include="HQL\BaseFunctionFixture.cs" /> + <Compile Include="Hql\Animal.cs" /> + <Compile Include="Hql\Ast\Address.cs" /> + <Compile Include="Hql\Ast\Animal.cs" /> + <Compile Include="Hql\Ast\BaseFixture.cs" /> + <Compile Include="Hql\Ast\BooleanLiteralEntity.cs" /> + <Compile Include="Hql\Ast\BulkManipulation.cs" /> + <Compile Include="Hql\Ast\Classification.cs" /> + <Compile Include="Hql\Ast\CrazyCompositeKey.cs" /> + <Compile Include="Hql\Ast\DomesticAnimal.cs" /> + <Compile Include="Hql\Ast\EntityWithCrazyCompositeKey.cs" /> + <Compile Include="Hql\Ast\Human.cs" /> + <Compile Include="Hql\Ast\IntegerVersioned.cs" /> + <Compile Include="Hql\Ast\Joiner.cs" /> + <Compile Include="Hql\Ast\KeyManyToOneEntity.cs" /> + <Compile Include="Hql\Ast\KeyManyToOneKeyEntity.cs" /> + <Compile Include="Hql\Ast\Mammal.cs" /> + <Compile Include="Hql\Ast\Name.cs" /> + <Compile Include="Hql\Ast\ParsingFixture.cs" /> + <Compile Include="Hql\Ast\QuerySubstitutionTest.cs" /> + <Compile Include="Hql\Ast\Reptile.cs" /> + <Compile Include="Hql\Ast\SimpleAssociatedEntity.cs" /> + <Compile Include="Hql\Ast\SimpleClass.cs" /> + <Compile Include="Hql\Ast\SimpleEntityWithAssociation.cs" /> + <Compile Include="Hql\Ast\SqlTranslationFixture.cs" /> + <Compile Include="Hql\Ast\StateProvince.cs" /> + <Compile Include="Hql\Ast\TimestampVersioned.cs" /> + <Compile Include="Hql\Ast\User.cs" /> + <Compile Include="Hql\Ast\Vehicles.cs" /> + <Compile Include="Hql\Ast\WithClauseFixture.cs" /> + <Compile Include="Hql\Ast\Zoo.cs" /> + <Compile Include="Hql\BaseFunctionFixture.cs" /> <Compile Include="IdTest\AssignedClass.cs" /> <Compile Include="IdTest\AssignedFixture.cs" /> <Compile Include="IdTest\TableGeneratorFixture.cs" /> @@ -1127,16 +1127,16 @@ <Compile Include="NHSpecificTest\NH473\Fixture.cs" /> <Compile Include="NHSpecificTest\NH473\Parent.cs" /> <Compile Include="NHSpecificTest\NH645\HQLFunctionFixture.cs" /> - <Compile Include="HQL\HQLFunctions.cs" /> - <Compile Include="HQL\Human.cs" /> - <Compile Include="HQL\MaterialResource.cs" /> - <Compile Include="HQL\Name.cs" /> - <Compile Include="HQL\SimpleFunctionsTest.cs" /> - <Compile Include="HQL\SqlCommentsFixture.cs" /> - <Compile Include="HQL\SQLFunctionTemplateTest.cs" /> + <Compile Include="Hql\HQLFunctions.cs" /> + <Compile Include="Hql\Human.cs" /> + <Compile Include="Hql\MaterialResource.cs" /> + <Compile Include="Hql\Name.cs" /> + <Compile Include="Hql\SimpleFunctionsTest.cs" /> + <Compile Include="Hql\SqlCommentsFixture.cs" /> + <Compile Include="Hql\SQLFunctionTemplateTest.cs" /> <Compile Include="BulkManipulation\NativeSQLBulkOperations.cs" /> <Compile Include="BulkManipulation\Vehicles.cs" /> - <Compile Include="HQL\Ast\HqlFixture.cs" /> + <Compile Include="Hql\Ast\HqlFixture.cs" /> <Compile Include="IdGen\Enhanced\SequenceStyleConfigUnitFixture.cs" /> <Compile Include="IdGen\NativeGuid\NativeGuidFixture.cs" /> <Compile Include="IdGen\NativeGuid\NativeGuidGeneratorFixture.cs" /> @@ -2257,7 +2257,7 @@ <EmbeddedResource Include="NHSpecificTest\NH712\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> - <EmbeddedResource Include="HQL\Animal.hbm.xml" /> + <EmbeddedResource Include="Hql\Animal.hbm.xml" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="ExpressionTest\SubQueries\Mappings.hbm.xml" /> @@ -2367,7 +2367,7 @@ <EmbeddedResource Include="NHSpecificTest\NH980\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> - <EmbeddedResource Include="HQL\MaterialResource.hbm.xml" /> + <EmbeddedResource Include="Hql\MaterialResource.hbm.xml" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="Join\CompositeKey.hbm.xml" /> @@ -2810,20 +2810,20 @@ <EmbeddedResource Include="MappingTest\Wicked.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1393\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1391\Mappings.hbm.xml" /> - <EmbeddedResource Include="HQL\Ast\Animal.hbm.xml" /> - <EmbeddedResource Include="HQL\Ast\BooleanLiteralEntity.hbm.xml" /> - <EmbeddedResource Include="HQL\Ast\EntityWithCrazyCompositeKey.hbm.xml" /> + <EmbeddedResource Include="Hql\Ast\Animal.hbm.xml" /> + <EmbeddedResource Include="Hql\Ast\BooleanLiteralEntity.hbm.xml" /> + <EmbeddedResource Include="Hql\Ast\EntityWithCrazyCompositeKey.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\Logs\Mappings.hbm.xml" /> - <EmbeddedResource Include="HQL\Ast\KeyManyToOneEntity.hbm.xml" /> - <EmbeddedResource Include="HQL\Ast\Multi.hbm.xml" /> - <EmbeddedResource Include="HQL\Ast\SimpleEntityWithAssociation.hbm.xml" /> - <EmbeddedResource Include="HQL\Ast\Vehicle.hbm.xml" /> - <EmbeddedResource Include="HQL\Ast\Versions.hbm.xml" /> + <EmbeddedResource Include="Hql\Ast\KeyManyToOneEntity.hbm.xml" /> + <EmbeddedResource Include="Hql\Ast\Multi.hbm.xml" /> + <EmbeddedResource Include="Hql\Ast\SimpleEntityWithAssociation.hbm.xml" /> + <EmbeddedResource Include="Hql\Ast\Vehicle.hbm.xml" /> + <EmbeddedResource Include="Hql\Ast\Versions.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1727\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1742\Mappings.hbm.xml" /> - <EmbeddedResource Include="HQL\Ast\SimpleClass.hbm.xml" /> - <EmbeddedResource Include="HQL\Ast\TestQueries.xml" /> - <EmbeddedResource Include="HQL\Ast\TestQueriesWithResults.xml" /> + <EmbeddedResource Include="Hql\Ast\SimpleClass.hbm.xml" /> + <EmbeddedResource Include="Hql\Ast\TestQueries.xml" /> + <EmbeddedResource Include="Hql\Ast\TestQueriesWithResults.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1741\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1716\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\Dates\Mappings\TimeAsTimeSpan.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pa...@us...> - 2011-04-12 11:09:05
|
Revision: 5674 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5674&view=rev Author: patearl Date: 2011-04-12 11:08:59 +0000 (Tue, 12 Apr 2011) Log Message: ----------- Tests: SQLite does not support having without group by. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/Hql/HQLFunctions.cs trunk/nhibernate/src/NHibernate.Test/TestDialect.cs trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs Modified: trunk/nhibernate/src/NHibernate.Test/Hql/HQLFunctions.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/Hql/HQLFunctions.cs 2011-04-12 09:36:48 UTC (rev 5673) +++ trunk/nhibernate/src/NHibernate.Test/Hql/HQLFunctions.cs 2011-04-12 11:08:59 UTC (rev 5674) @@ -85,9 +85,12 @@ Assert.AreEqual(2, result); // Count in where - result = s.CreateQuery("select count(a.id) from Animal a having count(a.id)>1").UniqueResult(); - Assert.AreEqual(typeof(long), result.GetType()); - Assert.AreEqual(2, result); + if (TestDialect.SupportsHavingWithoutGroupBy) + { + result = s.CreateQuery("select count(a.id) from Animal a having count(a.id)>1").UniqueResult(); + Assert.AreEqual(typeof (long), result.GetType()); + Assert.AreEqual(2, result); + } } } @@ -110,9 +113,12 @@ Assert.AreEqual(15D, result); // In where - result = s.CreateQuery("select avg(a.BodyWeight) from Animal a having avg(a.BodyWeight)>0").UniqueResult(); - Assert.AreEqual(typeof(double), result.GetType()); - Assert.AreEqual(15D, result); + if (TestDialect.SupportsHavingWithoutGroupBy) + { + result = s.CreateQuery("select avg(a.BodyWeight) from Animal a having avg(a.BodyWeight)>0").UniqueResult(); + Assert.AreEqual(typeof(double), result.GetType()); + Assert.AreEqual(15D, result); + } } } @@ -133,9 +139,12 @@ Assert.AreEqual(typeof(float), result.GetType()); //use column type Assert.AreEqual(20F, result); - result = s.CreateQuery("select max(a.BodyWeight) from Animal a having max(a.BodyWeight)>0").UniqueResult(); - Assert.AreEqual(typeof(float), result.GetType()); //use column type - Assert.AreEqual(20F, result); + if (TestDialect.SupportsHavingWithoutGroupBy) + { + result = s.CreateQuery("select max(a.BodyWeight) from Animal a having max(a.BodyWeight)>0").UniqueResult(); + Assert.AreEqual(typeof(float), result.GetType()); //use column type + Assert.AreEqual(20F, result); + } } } @@ -156,9 +165,12 @@ Assert.AreEqual(typeof(float), result.GetType()); //use column type Assert.AreEqual(10F, result); - result = s.CreateQuery("select min(a.BodyWeight) from Animal a having min(a.BodyWeight)>0").UniqueResult(); - Assert.AreEqual(typeof(float), result.GetType()); //use column type - Assert.AreEqual(10F, result); + if (TestDialect.SupportsHavingWithoutGroupBy) + { + result = s.CreateQuery("select min(a.BodyWeight) from Animal a having min(a.BodyWeight)>0").UniqueResult(); + Assert.AreEqual(typeof(float), result.GetType()); //use column type + Assert.AreEqual(10F, result); + } } } @@ -179,9 +191,12 @@ Assert.AreEqual(typeof(double), result.GetType()); Assert.AreEqual(30D, result); - result = s.CreateQuery("select sum(a.BodyWeight) from Animal a having sum(a.BodyWeight)>0").UniqueResult(); - Assert.AreEqual(typeof(double), result.GetType()); - Assert.AreEqual(30D, result); + if (TestDialect.SupportsHavingWithoutGroupBy) + { + result = s.CreateQuery("select sum(a.BodyWeight) from Animal a having sum(a.BodyWeight)>0").UniqueResult(); + Assert.AreEqual(typeof(double), result.GetType()); + Assert.AreEqual(30D, result); + } } } Modified: trunk/nhibernate/src/NHibernate.Test/TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-04-12 09:36:48 UTC (rev 5673) +++ trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-04-12 11:08:59 UTC (rev 5674) @@ -49,6 +49,8 @@ public virtual bool SupportsSelectForUpdateOnOuterJoin { get { return true; } } + public virtual bool SupportsHavingWithoutGroupBy { get { return true; } } + public bool SupportsSqlType(SqlType sqlType) { try Modified: trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-04-12 09:36:48 UTC (rev 5673) +++ trunk/nhibernate/src/NHibernate.Test/TestDialects/SQLiteTestDialect.cs 2011-04-12 11:08:59 UTC (rev 5674) @@ -46,5 +46,10 @@ { get { return true; } } + + public override bool SupportsHavingWithoutGroupBy + { + 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-04-13 04:16:02
|
Revision: 5683 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5683&view=rev Author: patearl Date: 2011-04-13 04:15:56 +0000 (Wed, 13 Apr 2011) Log Message: ----------- Tests: Deal with the fact that PostgreSQL doesn't support null UTF characters. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BasicClassFixture.cs trunk/nhibernate/src/NHibernate.Test/TestDialect.cs trunk/nhibernate/src/NHibernate.Test/TestDialects/PostgreSQL82TestDialect.cs Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BasicClassFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BasicClassFixture.cs 2011-04-12 22:59:26 UTC (rev 5682) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/BasicClassFixture.cs 2011-04-13 04:15:56 UTC (rev 5683) @@ -33,6 +33,8 @@ using (ITransaction tx = s.BeginTransaction()) { BasicClass bc = new BasicClass(); + if (!TestDialect.SupportsNullCharactersInUtfStrings) + bc.CharacterProperty = 'a'; bc.Id = 1; bc.ValueOfPrivateField = 5; s.Save(bc); @@ -56,6 +58,8 @@ using (ITransaction tx = s.BeginTransaction()) { BasicClass bc = new BasicClass(); + if (!TestDialect.SupportsNullCharactersInUtfStrings) + bc.CharacterProperty = 'a'; bc.Id = 1; s.Save(bc); tx.Commit(); @@ -819,6 +823,8 @@ ISession s = OpenSession(); ITransaction t = s.BeginTransaction(); BasicClass bc = new BasicClass(); + if (!TestDialect.SupportsNullCharactersInUtfStrings) + bc.CharacterProperty = 'a'; int id = 1; Modified: trunk/nhibernate/src/NHibernate.Test/TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-04-12 22:59:26 UTC (rev 5682) +++ trunk/nhibernate/src/NHibernate.Test/TestDialect.cs 2011-04-13 04:15:56 UTC (rev 5683) @@ -47,6 +47,8 @@ public virtual bool HasBrokenDecimalType { get { return false; } } + public virtual bool SupportsNullCharactersInUtfStrings { get { return true; } } + public virtual bool SupportsSelectForUpdateOnOuterJoin { get { return true; } } public virtual bool SupportsHavingWithoutGroupBy { get { return true; } } Modified: trunk/nhibernate/src/NHibernate.Test/TestDialects/PostgreSQL82TestDialect.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TestDialects/PostgreSQL82TestDialect.cs 2011-04-12 22:59:26 UTC (rev 5682) +++ trunk/nhibernate/src/NHibernate.Test/TestDialects/PostgreSQL82TestDialect.cs 2011-04-13 04:15:56 UTC (rev 5683) @@ -16,5 +16,10 @@ { get { return false; } } + + public override bool SupportsNullCharactersInUtfStrings + { + 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-13 21:57:20
|
Revision: 5696 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5696&view=rev Author: fabiomaulo Date: 2011-04-13 21:57:13 +0000 (Wed, 13 Apr 2011) Log Message: ----------- Added passing tests Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/VersionTests.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ConventionModelMapperTests/VersionOnBaseClassIntegrationTest.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/MixAutomapping/InheritedVersionTest.cs Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ConventionModelMapperTests/VersionOnBaseClassIntegrationTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ConventionModelMapperTests/VersionOnBaseClassIntegrationTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ConventionModelMapperTests/VersionOnBaseClassIntegrationTest.cs 2011-04-13 21:57:13 UTC (rev 5696) @@ -0,0 +1,40 @@ +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.ConventionModelMapperTests +{ + public class VersionOnBaseClassIntegrationTest + { + private class BaseEntity + { + public int Id { get; set; } + public int Version { get; set; } + } + + private class Person : BaseEntity + { + } + + [Test] + public void WhenPropertyVersionFromBaseEntityThenFindItAsVersion() + { + var mapper = new ConventionModelMapper(); + var baseEntityType = typeof(BaseEntity); + mapper.IsEntity((t, declared) => baseEntityType.IsAssignableFrom(t) && baseEntityType != t && !t.IsInterface); + mapper.IsRootEntity((t, declared) => baseEntityType.Equals(t.BaseType)); + mapper.Class<BaseEntity>( + map => + { + map.Id(x => x.Id, idmap => { }); + map.Version(x => x.Version, vm => { }); + }); + var hbmMapping = mapper.CompileMappingFor(new[] { typeof(Person) }); + + var hbmClass = hbmMapping.RootClasses[0]; + var hbmVersion = hbmClass.Version; + hbmVersion.Should().Not.Be.Null(); + hbmVersion.name.Should().Be("Version"); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/VersionTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/VersionTests.cs 2011-04-13 20:35:38 UTC (rev 5695) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/VersionTests.cs 2011-04-13 21:57:13 UTC (rev 5696) @@ -11,9 +11,12 @@ public int Id { get; set; } public int Version { get; set; } } + private class MyRoot: MyClass + { + } [Test] - public void WhenPropertyUsedAsPoidThenRegister() + public void WhenPropertyUsedAsVersionThenRegister() { var inspector = new ExplicitlyDeclaredModel(); var mapper = new ModelMapper(inspector); @@ -26,5 +29,20 @@ inspector.IsVersion(For<MyClass>.Property(x => x.Version)).Should().Be.True(); } + + [Test] + public void WhenPropertyVersionFromBaseEntityThenFindItAsVersion() + { + var inspector = new ExplicitlyDeclaredModel(); + var mapper = new ModelMapper(inspector); + mapper.Class<MyClass>( + map => + { + map.Id(x => x.Id, idmap => { }); + map.Version(x => x.Version, vm => { }); + }); + + inspector.IsVersion(For<MyRoot>.Property(x => x.Version)).Should().Be.True(); + } } } \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MixAutomapping/InheritedVersionTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MixAutomapping/InheritedVersionTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MixAutomapping/InheritedVersionTest.cs 2011-04-13 21:57:13 UTC (rev 5696) @@ -0,0 +1,34 @@ +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.MixAutomapping +{ + public class InheritedVersionTest + { + private class BaseEntity + { + public int Id { get; set; } + public int Version { get; set; } + } + + private class Person : BaseEntity + { + } + + [Test] + public void WhenPropertyVersionFromBaseEntityThenFindItAsVersion() + { + var inspector = (IModelInspector)new SimpleModelInspector(); + var mapper = new ModelMapper(inspector); + mapper.Class<BaseEntity>( + map => + { + map.Id(x => x.Id, idmap => { }); + map.Version(x => x.Version, vm => { }); + }); + + inspector.IsVersion(For<Person>.Property(x => x.Version)).Should().Be.True(); + } + } +} \ 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-13 20:35:38 UTC (rev 5695) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-13 21:57:13 UTC (rev 5696) @@ -513,6 +513,7 @@ <Compile Include="Logging\LoggerProviderTest.cs" /> <Compile Include="MappingByCode\ConventionModelMapperTests\PropertyToFieldAccessorTest.cs" /> <Compile Include="MappingByCode\ConventionModelMapperTests\SafePoidTests.cs" /> + <Compile Include="MappingByCode\ConventionModelMapperTests\VersionOnBaseClassIntegrationTest.cs" /> <Compile Include="MappingByCode\ExpliticMappingTests\BagOfNestedComponentsWithParentTest.cs" /> <Compile Include="MappingByCode\ExpliticMappingTests\ClassWithComponentsTest.cs" /> <Compile Include="MappingByCode\ExpliticMappingTests\ConformistMappingRegistrationTests\ClassMappingRegistrationTest.cs" /> @@ -550,6 +551,7 @@ <Compile Include="MappingByCode\MixAutomapping\DefaultClassHierarchyRepresentationTests.cs" /> <Compile Include="MappingByCode\MixAutomapping\DictionaryCollectionTests.cs" /> <Compile Include="MappingByCode\MixAutomapping\EntityTests.cs" /> + <Compile Include="MappingByCode\MixAutomapping\InheritedVersionTest.cs" /> <Compile Include="MappingByCode\MixAutomapping\ManyToOneTest.cs" /> <Compile Include="MappingByCode\MixAutomapping\OneToManyTests.cs" /> <Compile Include="MappingByCode\MixAutomapping\PoidTests.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-14 18:06:22
|
Revision: 5700 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5700&view=rev Author: fabiomaulo Date: 2011-04-14 18:06:16 +0000 (Thu, 14 Apr 2011) Log Message: ----------- Minor (moved test) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperTests/ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperTests/ClassMapperWithJoinPropertiesTest.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperWithJoinPropertiesTest.cs Copied: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperTests/ClassMapperWithJoinPropertiesTest.cs (from rev 5698, trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperWithJoinPropertiesTest.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperTests/ClassMapperWithJoinPropertiesTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperTests/ClassMapperWithJoinPropertiesTest.cs 2011-04-14 18:06:16 UTC (rev 5700) @@ -0,0 +1,89 @@ +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.MappersTests.ClassMapperTests +{ + public class ClassMapperWithJoinPropertiesTest + { + private class MyClass + { + public int Id { get; set; } + } + + [Test] + public void WhenDefineJoinThenAddJoinWithTableNameAndKey() + { + var mapdoc = new HbmMapping(); + var mapper = new ClassMapper(typeof(MyClass), mapdoc, For<MyClass>.Property(x=> x.Id)); + mapper.Join("MyTable",x => { }); + + var hbmClass = mapdoc.RootClasses[0]; + var hbmJoin = hbmClass.Joins.Single(); + hbmJoin.table.Should().Be("MyTable"); + hbmJoin.key.Should().Not.Be.Null(); + hbmJoin.key.column1.Should().Not.Be.Null(); + } + + [Test] + public void WhenDefineJoinThenCallJoinMapper() + { + var mapdoc = new HbmMapping(); + var mapper = new ClassMapper(typeof(MyClass), mapdoc, For<MyClass>.Property(x => x.Id)); + var called = false; + mapper.Join("MyTable", x => + { + x.Should().Not.Be.Null(); + called = true; + }); + + called.Should().Be.True(); + } + + //[Test] + //public void WhenDefineJoinTableNameAsTableOfRootThenThrows() + //{ + // We can't give support to this check. + // The name of the table of the root-class may change during the mapping process where the name of the joined table is immutable (or...perhaps what is really immutable is the Id used in the explicit mapping ;) ) + // We are using the name of the joined table as id for the splitted property group. I can't find another way to be 100% sure to re-use the same + // instance of JoinMapper when the Join method is used more than once. + // The case of "inconsistent" name should be checked by binders since the problem is the same using XML mappings + // + // var mapdoc = new HbmMapping(); + // var mapper = new ClassMapper(typeof(MyClass), mapdoc, For<MyClass>.Property(x => x.Id)); + // Executing.This(()=> mapper.Join("MyClass", x => { })).Should().Throw<MappingException>(); + //} + + [Test] + public void WhenDefineMoreJoinsThenTableNameShouldBeUnique() + { + var mapdoc = new HbmMapping(); + var mapper = new ClassMapper(typeof(MyClass), mapdoc, For<MyClass>.Property(x => x.Id)); + mapper.Join("T1", x => { }); + mapper.Join("T2",x => { }); + + var hbmClass = mapdoc.RootClasses[0]; + hbmClass.Joins.Should().Have.Count.EqualTo(2); + hbmClass.Joins.Select(x=> x.table).Should().Have.UniqueValues(); + } + + [Test] + public void WhenDefineMoreJoinsWithSameIdThenUseSameJoinMapperInstance() + { + var mapdoc = new HbmMapping(); + var mapper = new ClassMapper(typeof(MyClass), mapdoc, For<MyClass>.Property(x => x.Id)); + IJoinMapper firstCallInstance = null; + IJoinMapper secondCallInstance = null; + + mapper.Join("T1", x => firstCallInstance = x); + mapper.Join("T1", x => secondCallInstance = x); + + firstCallInstance.Should().Be.SameInstanceAs(secondCallInstance); + var hbmClass = mapdoc.RootClasses[0]; + hbmClass.Joins.Should().Have.Count.EqualTo(1); + } + } +} \ No newline at end of file Deleted: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperWithJoinPropertiesTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperWithJoinPropertiesTest.cs 2011-04-14 17:39:19 UTC (rev 5699) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperWithJoinPropertiesTest.cs 2011-04-14 18:06:16 UTC (rev 5700) @@ -1,89 +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.MappersTests -{ - public class ClassMapperWithJoinPropertiesTest - { - private class MyClass - { - public int Id { get; set; } - } - - [Test] - public void WhenDefineJoinThenAddJoinWithTableNameAndKey() - { - var mapdoc = new HbmMapping(); - var mapper = new ClassMapper(typeof(MyClass), mapdoc, For<MyClass>.Property(x=> x.Id)); - mapper.Join("MyTable",x => { }); - - var hbmClass = mapdoc.RootClasses[0]; - var hbmJoin = hbmClass.Joins.Single(); - hbmJoin.table.Should().Be("MyTable"); - hbmJoin.key.Should().Not.Be.Null(); - hbmJoin.key.column1.Should().Not.Be.Null(); - } - - [Test] - public void WhenDefineJoinThenCallJoinMapper() - { - var mapdoc = new HbmMapping(); - var mapper = new ClassMapper(typeof(MyClass), mapdoc, For<MyClass>.Property(x => x.Id)); - var called = false; - mapper.Join("MyTable", x => - { - x.Should().Not.Be.Null(); - called = true; - }); - - called.Should().Be.True(); - } - - //[Test] - //public void WhenDefineJoinTableNameAsTableOfRootThenThrows() - //{ - // We can't give support to this check. - // The name of the table of the root-class may change during the mapping process where the name of the joined table is immutable (or...perhaps what is really immutable is the Id used in the explicit mapping ;) ) - // We are using the name of the joined table as id for the splitted property group. I can't find another way to be 100% sure to re-use the same - // instance of JoinMapper when the Join method is used more than once. - // The case of "inconsistent" name should be checked by binders since the problem is the same using XML mappings - // - // var mapdoc = new HbmMapping(); - // var mapper = new ClassMapper(typeof(MyClass), mapdoc, For<MyClass>.Property(x => x.Id)); - // Executing.This(()=> mapper.Join("MyClass", x => { })).Should().Throw<MappingException>(); - //} - - [Test] - public void WhenDefineMoreJoinsThenTableNameShouldBeUnique() - { - var mapdoc = new HbmMapping(); - var mapper = new ClassMapper(typeof(MyClass), mapdoc, For<MyClass>.Property(x => x.Id)); - mapper.Join("T1", x => { }); - mapper.Join("T2",x => { }); - - var hbmClass = mapdoc.RootClasses[0]; - hbmClass.Joins.Should().Have.Count.EqualTo(2); - hbmClass.Joins.Select(x=> x.table).Should().Have.UniqueValues(); - } - - [Test] - public void WhenDefineMoreJoinsWithSameIdThenUseSameJoinMapperInstance() - { - var mapdoc = new HbmMapping(); - var mapper = new ClassMapper(typeof(MyClass), mapdoc, For<MyClass>.Property(x => x.Id)); - IJoinMapper firstCallInstance = null; - IJoinMapper secondCallInstance = null; - - mapper.Join("T1", x => firstCallInstance = x); - mapper.Join("T1", x => secondCallInstance = x); - - firstCallInstance.Should().Be.SameInstanceAs(secondCallInstance); - var hbmClass = mapdoc.RootClasses[0]; - hbmClass.Joins.Should().Have.Count.EqualTo(1); - } - } -} \ 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-14 17:39:19 UTC (rev 5699) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-14 18:06:16 UTC (rev 5700) @@ -539,7 +539,7 @@ <Compile Include="MappingByCode\ExpliticMappingTests\VersionTests.cs" /> <Compile Include="MappingByCode\For.cs" /> <Compile Include="MappingByCode\MappersTests\AbstractPropertyContainerMapperTest.cs" /> - <Compile Include="MappingByCode\MappersTests\ClassMapperWithJoinPropertiesTest.cs" /> + <Compile Include="MappingByCode\MappersTests\ClassMapperTests\ClassMapperWithJoinPropertiesTest.cs" /> <Compile Include="MappingByCode\MappersTests\CollectionIdMapperTests.cs" /> <Compile Include="MappingByCode\MappersTests\FakeUserCollectionType.cs" /> <Compile Include="MappingByCode\MappersTests\IdBagMapperTest.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-14 18:13:41
|
Revision: 5701 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5701&view=rev Author: fabiomaulo Date: 2011-04-14 18:13:35 +0000 (Thu, 14 Apr 2011) Log Message: ----------- Added passing tests Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperTests/SetPersisterTests.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/JoinedSubclassMapperTests/ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/JoinedSubclassMapperTests/SetPersisterTests.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/SubclassMapperTests/ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/SubclassMapperTests/SetPersisterTests.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/UnionSubclassMapperTests/ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/UnionSubclassMapperTests/SetPersisterTests.cs Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperTests/SetPersisterTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperTests/SetPersisterTests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ClassMapperTests/SetPersisterTests.cs 2011-04-14 18:13:35 UTC (rev 5701) @@ -0,0 +1,25 @@ +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode.Impl; +using NHibernate.Persister.Entity; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.MappersTests.ClassMapperTests +{ + public class SetPersisterTests + { + private class EntitySimple + { + public int Id { get; set; } + } + + [Test] + public void CanSetPersister() + { + var mapdoc = new HbmMapping(); + var rc = new ClassMapper(typeof(EntitySimple), mapdoc, For<EntitySimple>.Property(x => x.Id)); + rc.Persister<SingleTableEntityPersister>(); + mapdoc.RootClasses[0].Persister.Should().Contain("SingleTableEntityPersister"); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/JoinedSubclassMapperTests/SetPersisterTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/JoinedSubclassMapperTests/SetPersisterTests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/JoinedSubclassMapperTests/SetPersisterTests.cs 2011-04-14 18:13:35 UTC (rev 5701) @@ -0,0 +1,29 @@ +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode.Impl; +using NHibernate.Persister.Entity; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.MappersTests.JoinedSubclassMapperTests +{ + public class SetPersisterTests + { + private class EntitySimple + { + public int Id { get; set; } + } + + private class InheritedSimple : EntitySimple + { + } + + [Test] + public void CanSetPersister() + { + var mapdoc = new HbmMapping(); + var rc = new JoinedSubclassMapper(typeof(InheritedSimple), mapdoc); + rc.Persister<JoinedSubclassEntityPersister>(); + mapdoc.JoinedSubclasses[0].Persister.Should().Contain("JoinedSubclassEntityPersister"); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/SubclassMapperTests/SetPersisterTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/SubclassMapperTests/SetPersisterTests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/SubclassMapperTests/SetPersisterTests.cs 2011-04-14 18:13:35 UTC (rev 5701) @@ -0,0 +1,29 @@ +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode.Impl; +using NHibernate.Persister.Entity; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.MappersTests.SubclassMapperTests +{ + public class SetPersisterTests + { + private class EntitySimple + { + public int Id { get; set; } + } + + private class HineritedSimple: EntitySimple + { + } + + [Test] + public void CanSetPersister() + { + var mapdoc = new HbmMapping(); + var rc = new SubclassMapper(typeof(HineritedSimple), mapdoc); + rc.Persister<SingleTableEntityPersister>(); + mapdoc.SubClasses[0].Persister.Should().Contain("SingleTableEntityPersister"); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/UnionSubclassMapperTests/SetPersisterTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/UnionSubclassMapperTests/SetPersisterTests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/UnionSubclassMapperTests/SetPersisterTests.cs 2011-04-14 18:13:35 UTC (rev 5701) @@ -0,0 +1,29 @@ +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode.Impl; +using NHibernate.Persister.Entity; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.MappersTests.UnionSubclassMapperTests +{ + public class SetPersisterTests + { + private class EntitySimple + { + public int Id { get; set; } + } + + private class InheritedSimple : EntitySimple + { + } + + [Test] + public void CanSetPersister() + { + var mapdoc = new HbmMapping(); + var rc = new UnionSubclassMapper(typeof(InheritedSimple), mapdoc); + rc.Persister<UnionSubclassEntityPersister>(); + mapdoc.UnionSubclasses[0].Persister.Should().Contain("UnionSubclassEntityPersister"); + } + } +} \ 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-14 18:06:16 UTC (rev 5700) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-14 18:13:35 UTC (rev 5701) @@ -540,11 +540,15 @@ <Compile Include="MappingByCode\For.cs" /> <Compile Include="MappingByCode\MappersTests\AbstractPropertyContainerMapperTest.cs" /> <Compile Include="MappingByCode\MappersTests\ClassMapperTests\ClassMapperWithJoinPropertiesTest.cs" /> + <Compile Include="MappingByCode\MappersTests\ClassMapperTests\SetPersisterTests.cs" /> <Compile Include="MappingByCode\MappersTests\CollectionIdMapperTests.cs" /> <Compile Include="MappingByCode\MappersTests\FakeUserCollectionType.cs" /> <Compile Include="MappingByCode\MappersTests\IdBagMapperTest.cs" /> + <Compile Include="MappingByCode\MappersTests\JoinedSubclassMapperTests\SetPersisterTests.cs" /> <Compile Include="MappingByCode\MappersTests\JoinMapperTests.cs" /> + <Compile Include="MappingByCode\MappersTests\SubclassMapperTests\SetPersisterTests.cs" /> <Compile Include="MappingByCode\MappersTests\SubclassMapperWithJoinPropertiesTest.cs" /> + <Compile Include="MappingByCode\MappersTests\UnionSubclassMapperTests\SetPersisterTests.cs" /> <Compile Include="MappingByCode\MixAutomapping\ArrayCollectionTests.cs" /> <Compile Include="MappingByCode\MixAutomapping\BagCollectionTests.cs" /> <Compile Include="MappingByCode\MixAutomapping\ComponentsTests.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-22 15:36:35
|
Revision: 5738 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5738&view=rev Author: fabiomaulo Date: 2011-04-22 15:36:27 +0000 (Fri, 22 Apr 2011) Log Message: ----------- Passing tests to add simple property to a dynamic-component Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/DynamicComponentMapperTests/SimplePropertyOnDynamicCompoTests.cs Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/DynamicComponentMapperTests/SimplePropertyOnDynamicCompoTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/DynamicComponentMapperTests/SimplePropertyOnDynamicCompoTests.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/DynamicComponentMapperTests/SimplePropertyOnDynamicCompoTests.cs 2011-04-22 15:36:27 UTC (rev 5738) @@ -0,0 +1,62 @@ +using System.Collections; +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.MappersTests.DynamicComponentMapperTests +{ + public class SimplePropertyOnDynamicCompoTests + { + private class Person + { + public int Id { get; set; } + private IDictionary info; + public IDictionary Info + { + get { return info; } + } + } + + [Test] + public void WhenAddThenHas() + { + var mapdoc = new HbmMapping(); + var component = new HbmDynamicComponent(); + var mapper = new DynamicComponentMapper(component, For<Person>.Property(p => p.Info), mapdoc); + var propertyInfo = (new { A = 5 }).GetType().GetProperty("A"); + + mapper.Property(propertyInfo, x => { }); + + component.Properties.Select(x=> x.Name).Should().Have.SameSequenceAs("A"); + } + + [Test] + public void WhenCustomizeThenCallCustomizer() + { + var mapdoc = new HbmMapping(); + var component = new HbmDynamicComponent(); + var mapper = new DynamicComponentMapper(component, For<Person>.Property(p => p.Info), mapdoc); + var propertyInfo = (new { A = 5 }).GetType().GetProperty("A"); + var called = false; + mapper.Property(propertyInfo, x => called = true); + + called.Should().Be.True(); + } + + [Test] + public void WhenCustomizeAccessorThenIgnore() + { + var mapdoc = new HbmMapping(); + var component = new HbmDynamicComponent(); + var mapper = new DynamicComponentMapper(component, For<Person>.Property(p => p.Info), mapdoc); + var propertyInfo = (new { A = 5 }).GetType().GetProperty("A"); + + mapper.Property(propertyInfo, x => x.Access(Accessor.Field)); + + component.Properties.OfType<HbmProperty>().Single().Access.Should().Be.NullOrEmpty(); + } + } +} \ 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-22 15:07:29 UTC (rev 5737) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-22 15:36:27 UTC (rev 5738) @@ -552,6 +552,7 @@ <Compile Include="MappingByCode\MappersTests\ClassMapperTests\TablesSincronizationTests.cs" /> <Compile Include="MappingByCode\MappersTests\CollectionIdMapperTests.cs" /> <Compile Include="MappingByCode\MappersTests\DynamicComponentMapperTests\DynCompAttributesSettingTest.cs" /> + <Compile Include="MappingByCode\MappersTests\DynamicComponentMapperTests\SimplePropertyOnDynamicCompoTests.cs" /> <Compile Include="MappingByCode\MappersTests\FakeUserCollectionType.cs" /> <Compile Include="MappingByCode\MappersTests\IdBagMapperTest.cs" /> <Compile Include="MappingByCode\MappersTests\JoinedSubclassMapperTests\SetPersisterTests.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-22 21:50:36
|
Revision: 5750 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5750&view=rev Author: fabiomaulo Date: 2011-04-22 21:50:29 +0000 (Fri, 22 Apr 2011) Log Message: ----------- Tests for NH-2660 and NH-2661 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/DomainClass.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Test.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/DomainClass.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/DomainClass.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/DomainClass.cs 2011-04-22 21:50:29 UTC (rev 5750) @@ -0,0 +1,12 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH2660And2661 +{ + public class DomainClass + { + private int id; + private DateTime data; + public int Id { get { return id; } set { id = value; } } + public DateTime Data { get { return data; } set { data = value; } } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Mappings.hbm.xml 2011-04-22 21:50:29 UTC (rev 5750) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2660And2661" default-access="field.camelcase" + default-lazy="false"> + <class name="DomainClass"> + <id name="Id"> + <generator class="assigned" /> + </id> + <property name="Data" type="Time" /> + </class> +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Test.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Test.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2660And2661/Test.cs 2011-04-22 21:50:29 UTC (rev 5750) @@ -0,0 +1,50 @@ +using System; +using NHibernate.Dialect; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH2660And2661 +{ + [TestFixture] + public class Test : BugTestCase + { + protected override void OnSetUp() + { + base.OnSetUp(); + using (ISession session = OpenSession()) + { + DomainClass entity = new DomainClass { Id = 1, Data = DateTime.Parse("10:00") }; + session.Save(entity); + session.Flush(); + } + } + + protected override void OnTearDown() + { + base.OnTearDown(); + using (ISession session = OpenSession()) + { + session.CreateQuery("delete from DomainClass").ExecuteUpdate(); + session.Flush(); + } + } + + protected override bool AppliesTo(Dialect.Dialect dialect) + { + return dialect is MsSql2008Dialect; + } + + [Test, Ignore("workaround to sqlserver DP, not fixed yet")] + public void ShouldBeAbleToQueryEntity() + { + using (ISession session = OpenSession()) + { + var query = + session.CreateQuery( + @"from DomainClass entity where Data = :data"); + query.SetParameter("data", DateTime.Parse("10:00"), NHibernateUtil.Time); + query.Executing(x=> x.List()).NotThrows(); + } + } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-22 19:01:38 UTC (rev 5749) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-22 21:50:29 UTC (rev 5750) @@ -783,6 +783,8 @@ <Compile Include="NHSpecificTest\NH2603\Model.cs" /> <Compile Include="NHSpecificTest\NH2632\Domain.cs" /> <Compile Include="NHSpecificTest\NH2632\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2660And2661\DomainClass.cs" /> + <Compile Include="NHSpecificTest\NH2660And2661\Test.cs" /> <Compile Include="NHSpecificTest\Properties\CompositePropertyRefTest.cs" /> <Compile Include="NHSpecificTest\Properties\DynamicEntityTest.cs" /> <Compile Include="NHSpecificTest\Properties\Model.cs" /> @@ -2615,6 +2617,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2660And2661\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\DataReaderWrapperTest\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2583\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\SqlConverterAndMultiQuery\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-23 20:42:33
|
Revision: 5754 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5754&view=rev Author: fabiomaulo Date: 2011-04-23 20:42:26 +0000 (Sat, 23 Apr 2011) Log Message: ----------- Test to check NH-1642 was fixed too Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/AbstractRule.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRule.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSet.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSetDAOTest.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/AbstractRule.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/AbstractRule.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/AbstractRule.cs 2011-04-23 20:42:26 UTC (rev 5754) @@ -0,0 +1,9 @@ +namespace NHibernate.Test.NHSpecificTest.NH1642 +{ + public abstract class AbstractRule + { + public virtual int id { get; set; } + public virtual string name { get; set; } + public virtual string description { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/Mappings.hbm.xml 2011-04-23 20:42:26 UTC (rev 5754) @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.NHSpecificTest.NH1642" + assembly="NHibernate.Test"> + <class name="AbstractRule" table="GENERIC_RULE"> + <id name="id" column="RULE_ID"> + <generator class="identity"/> + </id> + <discriminator column="RULE_TYPE" type="string"/> + + <property name="name" /> + <property name="description"/> + + <subclass name="TrafficRule" discriminator-value="TRAFFIC"> + <join table="TRAFFIC_RULE"> + <key column="RULE_ID"/> + + <property name="effectiveStartDate" column="start_date" /> + <property name="effectiveEndDate" column="end_date" /> + + <many-to-one name="ruleSet" class="TrafficRuleSet" column="RULESET_ID"/> + </join> + + </subclass> + </class> + <class name="TrafficRuleSet" table="TRAFFIC_RULSET"> + <id name="id" column="RULESET_ID"> + <generator class="identity"/> + </id> + + <property name="name"/> + <property name="description" /> + + <bag name="rules" inverse="true" cascade="all"> + <key column="RULESET_ID" on-delete="cascade" /> + <one-to-many class="TrafficRule"/> + </bag> + </class> + +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRule.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRule.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRule.cs 2011-04-23 20:42:26 UTC (rev 5754) @@ -0,0 +1,17 @@ +using System; + +namespace NHibernate.Test.NHSpecificTest.NH1642 +{ + public class TrafficRule : AbstractRule + { + public TrafficRule() + { + effectiveStartDate = DateTime.Today; + effectiveEndDate = DateTime.Today; + } + public virtual DateTime effectiveStartDate { get; set; } + public virtual DateTime effectiveEndDate { get; set; } + + public virtual TrafficRuleSet ruleSet { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSet.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSet.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSet.cs 2011-04-23 20:42:26 UTC (rev 5754) @@ -0,0 +1,12 @@ +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH1642 +{ + public class TrafficRuleSet + { + public virtual int id { get; set; } + public virtual string name { get; set; } + public virtual string description { get; set; } + public virtual IList<TrafficRule> rules { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSetDAOTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSetDAOTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1642/TrafficRuleSetDAOTest.cs 2011-04-23 20:42:26 UTC (rev 5754) @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1642 +{ + [TestFixture] + public class TrafficRuleSetDAOTest: BugTestCase + { + private class Scenario: IDisposable + { + private readonly ISessionFactory sessionFactory; + private int ruleSetId; + private string ruleSetName; + + public Scenario(ISessionFactory sessionFactory) + { + this.sessionFactory = sessionFactory; + ruleSetId = 2; + ruleSetName = "RuleSet" + ruleSetId.ToString(); + + using (var session = sessionFactory.OpenSession()) + { + using (var tr = session.BeginTransaction()) + { + TrafficRuleSet ruleSet = new TrafficRuleSet { name = ruleSetName, description = ruleSetName }; + TrafficRule rule = new TrafficRule { ruleSet = ruleSet, name = ruleSetName + "-a", description = "Some description" }; + + ruleSet.rules = new List<TrafficRule> { rule }; + + ruleSetId = (int)session.Save(ruleSet); + tr.Commit(); + } + } + } + + public int RuleSetId + { + get { return ruleSetId; } + } + + public string RuleSetName + { + get { return ruleSetName; } + } + + public void Dispose() + { + using (var session = sessionFactory.OpenSession()) + { + using (var tr = session.BeginTransaction()) + { + session.CreateQuery("delete from TrafficRule").ExecuteUpdate(); + session.CreateQuery("delete from TrafficRuleSet").ExecuteUpdate(); + tr.Commit(); + } + } + } + } + [Test] + public void addRuleSet() + { + using (var scenario = new Scenario(Sfi)) + { + using (var session = OpenSession()) + { + using (var tr = session.BeginTransaction()) + { + TrafficRuleSet fromDb = session.Get<TrafficRuleSet>(scenario.RuleSetId); + Assert.IsNotNull(fromDb); + Assert.AreEqual(fromDb.name, scenario.RuleSetName); + Assert.AreEqual(fromDb.rules[0].name, scenario.RuleSetName + "-a"); + } + } + } + } + + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-23 20:10:49 UTC (rev 5753) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-23 20:42:26 UTC (rev 5754) @@ -626,6 +626,10 @@ <Compile Include="NHSpecificTest\NH1323\Domain.cs" /> <Compile Include="NHSpecificTest\NH1421\AnEntity.cs" /> <Compile Include="NHSpecificTest\NH1421\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1642\AbstractRule.cs" /> + <Compile Include="NHSpecificTest\NH1642\TrafficRule.cs" /> + <Compile Include="NHSpecificTest\NH1642\TrafficRuleSet.cs" /> + <Compile Include="NHSpecificTest\NH1642\TrafficRuleSetDAOTest.cs" /> <Compile Include="NHSpecificTest\NH1836\Entity.cs" /> <Compile Include="NHSpecificTest\NH1836\EntityDTO.cs" /> <Compile Include="NHSpecificTest\NH1836\Fixture.cs" /> @@ -2627,6 +2631,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH1642\Mappings.hbm.xml" /> <EmbeddedResource Include="Stateless\Contact.hbm.xml" /> <EmbeddedResource Include="Stateless\Fetching\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2660And2661\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-04-25 05:57:53
|
Revision: 5758 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5758&view=rev Author: patearl Date: 2011-04-25 05:57:46 +0000 (Mon, 25 Apr 2011) Log Message: ----------- Linq: More tests related to NH-2583, thanks to Harald Mueller. Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/MassTestingNotAndDeMorganFixture.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/MassTestingMoreOperatorsFixture.cs Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/Domain.cs 2011-04-25 05:55:52 UTC (rev 5757) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/Domain.cs 2011-04-25 05:57:46 UTC (rev 5758) @@ -1,261 +1,300 @@ -namespace NHibernate.Test.NHSpecificTest.NH2583 -{ - public class MyRef1 - { - private static int _idCt = 1000; - private int _id; - - public MyRef1() - { - _id = ++_idCt; - } - - public virtual int Id { - get { return _id; } - set { _id = value; } - } - - public virtual int? I1 { get; set; } - public virtual int I2 { get; set; } - public virtual int I3 { get; set; } - - public virtual MyRef2 BO2 { get; set; } - public virtual MyRef3 BO3 { get; set; } - - public virtual MyRef2 GetOrCreateBO2(ISession s) - { - if (BO2 == null) - { - BO2 = new MyRef2(); - s.Save(BO2); - } - return BO2; - } - - public virtual MyRef3 GetOrCreateBO3(ISession s) - { - if (BO3 == null) - { - BO3 = new MyRef3(); - s.Save(BO3); - } - return BO3; - } - } - - public class MyRef2 - { - private static int _idCt = 1000; - private int _id; - - public MyRef2() - { - _id = ++_idCt; - } - - public virtual int Id { - get { return _id; } - set { _id = value; } - } - - public virtual int? J1 { get; set; } - public virtual int J2 { get; set; } - public virtual int J3 { get; set; } - } - - public class MyRef3 - { - private static int _idCt = 3000; - private int _id; - - public MyRef3() - { - _id = ++_idCt; - } - - public virtual int Id { - get { return _id; } - set { _id = value; } - } - - public virtual int L1 { get; set; } - } - - public enum Ignore { Ignore } - public enum TK { Zero, One } - public enum TBO1_I { Null, Zero, One } - public enum TBO2_J { Null, Zero, One } - public enum TBO1_BO2_J { Null, BO1, Zero, One } - public enum TBO1_BO3_L { Null, BO1, Zero, One } - - public class MyBO - { - private static int _idCt = 0; - private int _id; - - public MyBO() - { - _id = ++_idCt; - } - - public virtual int Id { - get { return _id; } - set { _id = value; } - } - - public virtual string Name { get; set; } - public virtual MyBO LeftSon { get; set; } - public virtual MyBO RightSon { get; set; } - public virtual MyRef1 BO1 { get; set; } - public virtual MyRef1 OtherBO1 { get; set; } - public virtual MyRef2 BO2 { get; set; } - public virtual int? K1 { get; set; } - public virtual int K2 { get; set; } - public virtual int K3 { get; set; } - - private MyRef1 GetOrCreateBO1(ISession s) - { - if (BO1 == null) - { - BO1 = new MyRef1(); - s.Save(BO1); - } - return BO1; - } - - private MyRef2 GetOrCreateBO2(ISession s) - { - if (BO2 == null) - { - BO2 = new MyRef2(); - s.Save(BO2); - } - return BO2; - } - - public static void SetK1(MyBO bo, ISession s, TK value) - { - bo.K1 = value == TK.One ? 1 : 0; - } - - public static void SetK2(MyBO bo, ISession s, TK value) - { - bo.K2 = value == TK.One ? 1 : 0; - } - - public static void SetK3(MyBO bo, ISession s, TK value) - { - bo.K3 = value == TK.One ? 1 : 0; - } - - private static void SetBO1_I(MyBO bo, ISession s, TBO1_I value, System.Action<MyRef1, int> set) - { - switch (value) - { - case TBO1_I.Null: - bo.BO1 = null; - break; - case TBO1_I.One: - set(bo.GetOrCreateBO1(s), 1); - break; - case TBO1_I.Zero: - set(bo.GetOrCreateBO1(s), 0); - break; - } - } - - public static void SetBO1_I1(MyBO bo, ISession s, TBO1_I value) - { - SetBO1_I(bo, s, value, (b, i) => b.I1 = i); - } - - public static void SetBO1_I2(MyBO bo, ISession s, TBO1_I value) - { - SetBO1_I(bo, s, value, (b, i) => b.I2 = i); - } - - public static void SetBO1_I3(MyBO bo, ISession s, TBO1_I value) - { - SetBO1_I(bo, s, value, (b, i) => b.I3 = i); - } - - private static void SetBO2_J(MyBO bo, ISession s, TBO2_J value, System.Action<MyRef2, int> set) - { - switch (value) - { - case TBO2_J.Null: - bo.BO2 = null; - break; - case TBO2_J.One: - set(bo.GetOrCreateBO2(s), 1); - break; - case TBO2_J.Zero: - set(bo.GetOrCreateBO2(s), 0); - break; - } - } - - public static void SetBO2_J1(MyBO bo, ISession s, TBO2_J value) - { - SetBO2_J(bo, s, value, (b, i) => b.J1 = i); - } - - public static void SetBO2_J2(MyBO bo, ISession s, TBO2_J value) - { - SetBO2_J(bo, s, value, (b, i) => b.J2 = i); - } - - public static void SetBO2_J3(MyBO bo, ISession s, TBO2_J value) - { - SetBO2_J(bo, s, value, (b, i) => b.J3 = i); - } - - private static void SetBO1_BO2_J(MyBO bo, ISession s, TBO1_BO2_J value, System.Action<MyRef2, int> set) - { - switch (value) - { - case TBO1_BO2_J.Null: - bo.BO1 = null; - break; - case TBO1_BO2_J.BO1: - bo.GetOrCreateBO1(s).BO2 = null; - break; - case TBO1_BO2_J.Zero: - set(bo.GetOrCreateBO1(s).GetOrCreateBO2(s), 0); - break; - case TBO1_BO2_J.One: - set(bo.GetOrCreateBO1(s).GetOrCreateBO2(s), 1); - break; - } - } - - public static void SetBO1_BO2_J1(MyBO bo, ISession s, TBO1_BO2_J value) - { - SetBO1_BO2_J(bo, s, value, (b, i) => b.J1 = i); - } - - public static void Set_BO1_BO2_J2(MyBO bo, ISession s, TBO1_BO2_J value) - { - SetBO1_BO2_J(bo, s, value, (b, i) => b.J2 = i); - } - - public static void SetBO1_BO3_L1(MyBO bo, ISession s, TBO1_BO3_L value) - { - switch (value) - { - case TBO1_BO3_L.Null: - bo.BO1 = null; - break; - case TBO1_BO3_L.BO1: - bo.GetOrCreateBO1(s).BO3 = null; - break; - case TBO1_BO3_L.Zero: - bo.GetOrCreateBO1(s).GetOrCreateBO3(s).L1 = 0; - break; - case TBO1_BO3_L.One: - bo.GetOrCreateBO1(s).GetOrCreateBO3(s).L1 = 1; - break; - } - } - } -} +using System; + +namespace NHibernate.Test.NHSpecificTest.NH2583 +{ + public class MyRef1 + { + private static int _idCt = 1000; + private int _id; + + public MyRef1() + { + _id = ++_idCt; + } + + public virtual int Id + { + get { return _id; } + set { _id = value; } + } + + public virtual int? I1 { get; set; } + public virtual int I2 { get; set; } + public virtual int I3 { get; set; } + + public virtual MyRef2 BO2 { get; set; } + public virtual MyRef3 BO3 { get; set; } + + public virtual MyRef2 GetOrCreateBO2(ISession s) + { + if (BO2 == null) + { + BO2 = new MyRef2(); + s.Save(BO2); + } + return BO2; + } + + public virtual MyRef3 GetOrCreateBO3(ISession s) + { + if (BO3 == null) + { + BO3 = new MyRef3(); + s.Save(BO3); + } + return BO3; + } + } + + public class MyRef2 + { + private static int _idCt = 1000; + private int _id; + + public MyRef2() + { + _id = ++_idCt; + } + + public virtual int Id + { + get { return _id; } + set { _id = value; } + } + + public virtual int? J1 { get; set; } + public virtual int J2 { get; set; } + public virtual int J3 { get; set; } + } + + public class MyRef3 + { + private static int _idCt = 3000; + private int _id; + + public MyRef3() + { + _id = ++_idCt; + } + + public virtual int Id + { + get { return _id; } + set { _id = value; } + } + + public virtual int L1 { get; set; } + } + + public enum Ignore { Ignore } + public enum TK { ValueNull, Zero, One } + public enum TBO1_I { Null, ValueNull, Zero, One } + public enum TBO2_J { Null, ValueNull, Zero, One } + public enum TBO1_BO2_J { Null, BO1, ValueNull, Zero, One } + public enum TBO1_BO3_L { Null, BO1, ValueNull, Zero, One } + + public class MyBO + { + private static int _idCt = 0; + private int _id; + + public MyBO() + { + _id = ++_idCt; + } + + public virtual int Id + { + get { return _id; } + set { _id = value; } + } + + public virtual string Name { get; set; } + public virtual MyBO LeftSon { get; set; } + public virtual MyBO RightSon { get; set; } + public virtual MyRef1 BO1 { get; set; } + public virtual MyRef1 OtherBO1 { get; set; } + public virtual MyRef2 BO2 { get; set; } + public virtual int? K1 { get; set; } + public virtual int K2 { get; set; } + public virtual int K3 { get; set; } + + private MyRef1 GetOrCreateBO1(ISession s) + { + if (BO1 == null) + { + BO1 = new MyRef1(); + s.Save(BO1); + } + return BO1; + } + + private MyRef2 GetOrCreateBO2(ISession s) + { + if (BO2 == null) + { + BO2 = new MyRef2(); + s.Save(BO2); + } + return BO2; + } + + public static void SetK1(MyBO bo, ISession s, TK value) + { + switch (value) + { + case TK.ValueNull: + bo.K1 = null; + break; + case TK.Zero: + bo.K1 = 0; + break; + case TK.One: + bo.K1 = 1; + break; + default: + throw new Exception("Value " + value + " not handled in code"); + } + } + + public static void SetK2(MyBO bo, ISession s, TK value) + { + bo.K2 = value == TK.One ? 1 : 0; + } + + public static void SetK3(MyBO bo, ISession s, TK value) + { + bo.K3 = value == TK.One ? 1 : 0; + } + + private static void SetBO1_I(MyBO bo, ISession s, TBO1_I value, Action<MyRef1, int?> set) + { + switch (value) + { + case TBO1_I.Null: + bo.BO1 = null; + break; + case TBO1_I.ValueNull: + set(bo.GetOrCreateBO1(s), null); + break; + case TBO1_I.Zero: + set(bo.GetOrCreateBO1(s), 0); + break; + case TBO1_I.One: + set(bo.GetOrCreateBO1(s), 1); + break; + default: + throw new Exception("Value " + value + " not handled in code"); + } + } + + public static void SetBO1_I1(MyBO bo, ISession s, TBO1_I value) + { + SetBO1_I(bo, s, value, (b, i) => b.I1 = i); + } + + public static void SetBO1_I2(MyBO bo, ISession s, TBO1_I value) + { + SetBO1_I(bo, s, value, (b, i) => b.I2 = i ?? 0); + } + + public static void SetBO1_I3(MyBO bo, ISession s, TBO1_I value) + { + SetBO1_I(bo, s, value, (b, i) => b.I3 = i ?? 0); + } + + private static void SetBO2_J(MyBO bo, ISession s, TBO2_J value, Action<MyRef2, int?> set) + { + switch (value) + { + case TBO2_J.Null: + bo.BO2 = null; + break; + case TBO2_J.ValueNull: + set(bo.GetOrCreateBO2(s), null); + break; + case TBO2_J.Zero: + set(bo.GetOrCreateBO2(s), 0); + break; + case TBO2_J.One: + set(bo.GetOrCreateBO2(s), 1); + break; + default: + throw new Exception("Value " + value + " not handled in code"); + } + } + + public static void SetBO2_J1(MyBO bo, ISession s, TBO2_J value) + { + SetBO2_J(bo, s, value, (b, i) => b.J1 = i); + } + + public static void SetBO2_J2(MyBO bo, ISession s, TBO2_J value) + { + SetBO2_J(bo, s, value, (b, i) => b.J2 = i ?? 0); + } + + public static void SetBO2_J3(MyBO bo, ISession s, TBO2_J value) + { + SetBO2_J(bo, s, value, (b, i) => b.J3 = i ?? 0); + } + + private static void SetBO1_BO2_J(MyBO bo, ISession s, TBO1_BO2_J value, Action<MyRef2, int?> set) + { + switch (value) + { + case TBO1_BO2_J.Null: + bo.BO1 = null; + break; + case TBO1_BO2_J.BO1: + bo.GetOrCreateBO1(s).BO2 = null; + break; + case TBO1_BO2_J.ValueNull: + set(bo.GetOrCreateBO1(s).GetOrCreateBO2(s), null); + break; + case TBO1_BO2_J.Zero: + set(bo.GetOrCreateBO1(s).GetOrCreateBO2(s), 0); + break; + case TBO1_BO2_J.One: + set(bo.GetOrCreateBO1(s).GetOrCreateBO2(s), 1); + break; + default: + throw new Exception("Value " + value + " not handled in code"); + } + } + + public static void SetBO1_BO2_J1(MyBO bo, ISession s, TBO1_BO2_J value) + { + SetBO1_BO2_J(bo, s, value, (b, i) => b.J1 = i); + } + + public static void Set_BO1_BO2_J2(MyBO bo, ISession s, TBO1_BO2_J value) + { + SetBO1_BO2_J(bo, s, value, (b, i) => b.J2 = i ?? 0); + } + + public static void SetBO1_BO3_L1(MyBO bo, ISession s, TBO1_BO3_L value) + { + switch (value) + { + case TBO1_BO3_L.Null: + bo.BO1 = null; + break; + case TBO1_BO3_L.BO1: + bo.GetOrCreateBO1(s).BO3 = null; + break; + case TBO1_BO3_L.ValueNull: + bo.GetOrCreateBO1(s).GetOrCreateBO3(s).L1 = 0; // L1 is int, not int? + break; + case TBO1_BO3_L.Zero: + bo.GetOrCreateBO1(s).GetOrCreateBO3(s).L1 = 0; + break; + case TBO1_BO3_L.One: + bo.GetOrCreateBO1(s).GetOrCreateBO3(s).L1 = 1; + break; + default: + throw new Exception("Value " + value + " not handled in code"); + } + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/MassTestingMoreOperatorsFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/MassTestingMoreOperatorsFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/MassTestingMoreOperatorsFixture.cs 2011-04-25 05:57:46 UTC (rev 5758) @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using NHibernate.Linq; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2583 +{ + public class MassTestingMoreOperatorsFixture : AbstractMassTestingFixture + { + protected override int TestAndAssert(Expression<Func<MyBO, bool>> condition, ISession session, IEnumerable<int> expectedIds) + { + IQueryable<int?> result = session.Query<MyBO>().Where(condition).Select(bo => (int?)bo.BO1.Id); + + var forceDBRun = result.ToList(); + + IEnumerable<int> resultNullTo0 = forceDBRun.Select(i => i ?? 0); + + var expectedBO1Ids = session.Query<MyBO>().Where(bo => expectedIds.Contains(bo.Id)).Select(bo => bo.BO1 == null ? 0 : bo.BO1.Id).ToList(); + AreEqual(expectedBO1Ids, resultNullTo0.ToArray()); + + // Unused result. + return -1; + } + + // Condition pattern: (A && B) && (C || D) SELECT E + + [Test] + public void TestNestedPlus() + { + RunTest(x => (x.K1 + x.K2) + x.K2 == null || (x.K1 + x.K2) + x.K2 == null, + Setters<TK, TK>(MyBO.SetK1, MyBO.SetK2)); + } + + [Test] + public void TestNestedPlusBehindNot() + { + RunTest(x => !((x.K1 + x.K2) + x.K2 != null), + Setters<TK, TK>(MyBO.SetK1, MyBO.SetK2)); + } + + [Test] + public void TestNestedPlusBehindNotAnd() + { + RunTest(x => !((x.K1 + x.K2) + x.K2 != null && (x.K1 + x.K2) + x.K2 != null), + Setters<TK, TK>(MyBO.SetK1, MyBO.SetK2)); + } + + [Test] + public void TestNestedPlusBehindNotOr() + { + RunTest(x => !((x.K1 + x.K2) + x.K2 != null || (x.K1 + x.K2) + x.K2 != null), + Setters<TK, TK>(MyBO.SetK1, MyBO.SetK2)); + } + + [Test] + public void TestNestedPlusBehindOrNav() + { + RunTest(x => (x.BO1.I1 + x.BO1.I2) + x.BO1.I2 == null || (x.BO1.I1 + x.BO1.I2) + x.BO1.I2 == null, + Setters<TBO1_I, TBO1_I>(MyBO.SetBO1_I1, MyBO.SetBO1_I2)); + } + [Test] + public void TestNestedPlusBehindNotNav() + { + RunTest(x => !((x.BO1.I1 + x.BO1.I2) + x.BO1.I2 != null), + Setters<TBO1_I, TBO1_I>(MyBO.SetBO1_I1, MyBO.SetBO1_I2)); + } + [Test] + public void TestNestedPlusBehindNotAndNav() + { + RunTest(x => !((x.BO1.I1 + x.BO1.I2) + x.BO1.I2 != null && (x.BO1.I1 + x.BO1.I2) + x.BO1.I2 != null), + Setters<TBO1_I, TBO1_I>(MyBO.SetBO1_I1, MyBO.SetBO1_I2)); + } + [Test] + public void TestNestedPlusBehindNotOrNav() + { + RunTest(x => !((x.BO1.I1 + x.BO1.I2) + x.BO1.I2 != null || (x.BO1.I1 + x.BO1.I2) + x.BO1.I2 != null), + Setters<TBO1_I, TBO1_I>(MyBO.SetBO1_I1, MyBO.SetBO1_I2)); + } + + + [Test] + public void TestNestedPlusBehindOrNav2() + { + RunTest(x => (x.BO1.I1 + x.BO1.I2) + x.BO1.I2 == null || (x.BO2.J1 + x.BO2.J2) + x.BO2.J2 == null, + Setters<TBO1_I, TBO1_I, TBO2_J, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO1_I2, MyBO.SetBO2_J1, MyBO.SetBO2_J2)); + } + [Test] + public void TestNestedPlusBehindNotOrNav2() + { + RunTest(x => !((x.BO1.I1 + x.BO1.I2) + x.BO1.I2 == null || (x.BO2.J1 + x.BO2.J2) + x.BO2.J2 == null), + Setters<TBO1_I, TBO1_I, TBO2_J, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO1_I2, MyBO.SetBO2_J1, MyBO.SetBO2_J2)); + } + [Test] + public void TestNestedPlusBehindNotAndNav2() + { + RunTest(x => !((x.BO1.I1 + x.BO1.I2) + x.BO1.I2 == null && (x.BO2.J1 + x.BO2.J2) + x.BO2.J2 == null), + Setters<TBO1_I, TBO1_I, TBO2_J, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO1_I2, MyBO.SetBO2_J1, MyBO.SetBO2_J2)); + } + + [Test] + public void TestNestedPlusBehindOrNav3() + { + RunTest(x => (x.BO1.I1 + x.BO1.I2) + x.BO2.J2 == null || (x.BO2.J1 + x.BO2.J2) + x.BO1.I2 == null, + Setters<TBO1_I, TBO2_J, TBO2_J, TBO1_I>(MyBO.SetBO1_I1, MyBO.SetBO2_J2, MyBO.SetBO2_J1, MyBO.SetBO1_I2)); + } + [Test] + public void TestNestedPlusBehindNotOrNav3() + { + RunTest(x => !((x.BO1.I1 + x.BO1.I2) + x.BO2.J2 == null || (x.BO2.J1 + x.BO2.J2) + x.BO1.I2 == null), + Setters<TBO1_I, TBO2_J, TBO2_J, TBO1_I>(MyBO.SetBO1_I1, MyBO.SetBO2_J2, MyBO.SetBO2_J1, MyBO.SetBO1_I2)); + } + [Test] + public void TestNestedPlusBehindNotAndNav3() + { + RunTest(x => !((x.BO1.I1 + x.BO1.I2) + x.BO2.J2 == null && (x.BO2.J1 + x.BO2.J2) + x.BO1.I2 == null), + Setters<TBO1_I, TBO2_J, TBO2_J, TBO1_I>(MyBO.SetBO1_I1, MyBO.SetBO2_J2, MyBO.SetBO2_J1, MyBO.SetBO1_I2)); + } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/MassTestingNotAndDeMorganFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/MassTestingNotAndDeMorganFixture.cs 2011-04-25 05:55:52 UTC (rev 5757) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2583/MassTestingNotAndDeMorganFixture.cs 2011-04-25 05:57:46 UTC (rev 5758) @@ -1,91 +1,126 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; -using NHibernate.Linq; -using NUnit.Framework; - -namespace NHibernate.Test.NHSpecificTest.NH2583 -{ - public class MassTestingNotAndDeMorganFixture : AbstractMassTestingFixture - { - protected override int TestAndAssert(Expression<Func<MyBO, bool>> condition, ISession session, IEnumerable<int> expectedIds) - { - var result = session.Query<MyBO>().Where(condition); - AreEqual(expectedIds, result.Select(bo => bo.Id).ToArray()); - return expectedIds.Count(); - } - - [Test] - public void Test_NotUnequalIsTheSameAsEqual() - { - int r1 = RunTest(x => !(x.BO1.I1 != 1), - Setters<TBO1_I>(MyBO.SetBO1_I1)); - int r2 = RunTest(x => x.BO1.I1 == 1, - Setters<TBO1_I>(MyBO.SetBO1_I1)); - Assert.AreEqual(r1, r2); - Assert.Greater(r1, 0); - - r1 = RunTest(x => !(x.BO1.I1 != 1), - Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); - r2 = RunTest(x => x.BO1.I1 == 1, - Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); - Assert.AreEqual(r1, r2); - Assert.Greater(r1, 0); - } - - [Test] - public void Test_NotEqualIsTheSameAsNotequal() - { - int r1 = RunTest(x => !(x.BO1.I1 == 1), - Setters<TBO1_I>(MyBO.SetBO1_I1)); - // ... is the same as ... - int r2 = RunTest(x => x.BO1.I1 != 1, - Setters<TBO1_I>(MyBO.SetBO1_I1)); - Assert.AreEqual(r1, r2); - Assert.Greater(r1, 0); - } - - [Test] - public void Test_DeMorganNotAnd() - { - // BO1.I1 BO2.J1 x.BO1.I1 != 1 x.BO2.J1 != 1 && ! Result (3v-->2v) Linq2Obj - // null null n n n n f - // null 0 n t n n f - // null 1 n f f t t - // 0 null t n n n f - // 0 0 t t t f f f - // 0 1 t f f t t t - // 1 null f n f t t - // 1 0 f t f t t t - // 1 1 f f f t t t - - RunTest(x => !(x.BO1.I1 != 1 && x.BO2.J1 != 1), - Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); - } - - [Test] - public void Test_DeMorganNotOr() - { - int r1 = RunTest(x => !(x.BO1.I1 != 1 || x.BO2.J1 != 1), - Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); - int r2 = RunTest(x => !(x.BO1.I1 != 1) && !(x.BO2.J1 != 1), - Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); - int r3 = RunTest(x => x.BO1.I1 == 1 && x.BO2.J1 == 1, - Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); - Assert.AreEqual(r1, r2); - Assert.AreEqual(r2, r3); - Assert.Greater(r1, 0); - } - - [Test] - public void Test_NotNotCanBeEliminated() - { - int r1 = RunTest(x => !(!(x.BO1.I1 != 1 && x.BO2.J1 != 1)), - Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); - int r2 = RunTest(x => x.BO1.I1 != 1 && x.BO2.J1 != 1, - Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); - Assert.AreEqual(r1, r2); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using NHibernate.Linq; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2583 +{ + public class MassTestingNotAndDeMorganFixture : AbstractMassTestingFixture + { + protected override int TestAndAssert(Expression<Func<MyBO, bool>> condition, ISession session, IEnumerable<int> expectedIds) + { + var result = session.Query<MyBO>().Where(condition); + AreEqual(expectedIds, result.Select(bo => bo.Id).ToArray()); + return expectedIds.Count(); + } + + [Test] + public void Test_NotUnequalIsTheSameAsEqual() + { + int r1 = RunTest(x => !(x.BO1.I1 != 1), + Setters<TBO1_I>(MyBO.SetBO1_I1)); + int r2 = RunTest(x => x.BO1.I1 == 1, + Setters<TBO1_I>(MyBO.SetBO1_I1)); + Assert.AreEqual(r1, r2); + Assert.Greater(r1, 0); + + r1 = RunTest(x => !(x.BO1.I1 != 1), + Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); + r2 = RunTest(x => x.BO1.I1 == 1, + Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); + Assert.AreEqual(r1, r2); + Assert.Greater(r1, 0); + } + + [Test] + public void Test_NotEqualIsTheSameAsNotequal() + { + // Already the following yields different results for I1 == null even though + // it does NOT throw an exception in Linq2Objects: + // ... RunTest(x => x.BO1.I1 != 1, ...); + // * In C# logic, we get null != 1 <=> true + // * In SQL logic, we get null != 1 <=> logical-null => false + + // To exclude this case, we can either make it false in C# ... + int r1 = RunTest(x => x.BO1.I1 != null && x.BO1.I1 != 1, + Setters<TBO1_I>(MyBO.SetBO1_I1)); + // ... or force it to true in SQL + int r2 = RunTest(x => x.BO1.I1 == null || x.BO1.I1 != 1, + Setters<TBO1_I>(MyBO.SetBO1_I1)); + + // Also the following condition yields different results for I1 == null even + // though it does NOT throw an exception in Linq2Objects: + // ... RunTest(x => !(x.BO1.I1 == 1), ...); + // * In C# logic, we get !(null == 1) <=> !(false) <=> true + // * In SQL logic, we get !(null == 1) <=> !(logical-null) <=> logical-null => false + + // Again, to exclude this case, we can either make the inner part true in C# ... + int r3 = RunTest(x => !(x.BO1.I1 == null || x.BO1.I1 == 1), + Setters<TBO1_I>(MyBO.SetBO1_I1)); + // ... or force it to false in SQL: + int r4 = RunTest(x => !(x.BO1.I1 != null && x.BO1.I1 == 1), + Setters<TBO1_I>(MyBO.SetBO1_I1)); + + Assert.Greater(r1, 0); + Assert.Greater(r2, 0); + + // We also expect the !(==) versions to return the same result as the != versions. + Assert.AreEqual(r1, r3); + Assert.AreEqual(r2, r4); + } + + [Test] + public void Test_DeMorganNotAnd() + { + // BO1.I1 BO2.J1 x.BO1.I1 != 1 x.BO2.J1 != 1 && ! Result (3v-->2v) Linq2Obj + // null null n n n n f + // null 0 n t n n f + // null 1 n f f t t + // 0 null t n n n f + // 0 0 t t t f f f + // 0 1 t f f t t t + // 1 null f n f t t + // 1 0 f t f t t t + // 1 1 f f f t t t + + RunTest(x => !(x.BO1.I1 != 1 && x.BO2.J1 != 1), + Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); + } + + [Test] + public void Test_DeMorganNotOr() + { + int r1 = RunTest(x => !(x.BO1.I1 != 1 || x.BO2.J1 != 1), + Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); + int r2 = RunTest(x => !(x.BO1.I1 != 1) && !(x.BO2.J1 != 1), + Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); + int r3 = RunTest(x => x.BO1.I1 == 1 && x.BO2.J1 == 1, + Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); + Assert.AreEqual(r1, r2); + Assert.AreEqual(r2, r3); + Assert.Greater(r1, 0); + } + + [Test] + public void Test_NotNotCanBeEliminated() + { + // The following condition does *not* return the same values if I1 and/or J1 are + // null in Linq2Objects and in Nhib.Linq: + // x => x.BO1.I1 != 1 && x.BO2.J1 != 1, + // First, assume I1 == null and J1 == 0: + // * In C# (Linq2Objects), we get null != 1 && 0 != 1 <=> true && true <=> true + // * In SQL (NHib.Linq), we get null != 1 && <=> logical-null && true <=> logical-null => false + // For I1 == 0 and J1 == null we get the same problem, as the condition is symmetric. + + // To repair this, we force "SQL" to true for nulls: + int r1 = RunTest(x => (x.BO1.I1 == null || x.BO1.I1 != 1) && (x.BO2.J1 == null || x.BO2.J1 != 1), + Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); + int r2 = RunTest(x => !!((x.BO1.I1 == null || x.BO1.I1 != 1) && (x.BO2.J1 == null || x.BO2.J1 != 1)), + Setters<TBO1_I, TBO2_J>(MyBO.SetBO1_I1, MyBO.SetBO2_J1)); + Assert.Greater(r1, 0); + Assert.AreEqual(r1, r2); + } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-25 05:55:52 UTC (rev 5757) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-25 05:57:46 UTC (rev 5758) @@ -778,6 +778,7 @@ <Compile Include="NHSpecificTest\NH2583\AbstractMassTestingFixture.cs" /> <Compile Include="NHSpecificTest\NH2583\Domain.cs" /> <Compile Include="NHSpecificTest\NH2583\ManualTestFixture.cs" /> + <Compile Include="NHSpecificTest\NH2583\MassTestingMoreOperatorsFixture.cs" /> <Compile Include="NHSpecificTest\NH2583\MassTestingNotAndDeMorganFixture.cs" /> <Compile Include="NHSpecificTest\NH2583\MassTestingOneOrTreeFixture.cs" /> <Compile Include="NHSpecificTest\NH2583\MassTestingOrderByFixture.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-04-28 12:44:04
|
Revision: 5785 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5785&view=rev Author: fabiomaulo Date: 2011-04-28 12:43:58 +0000 (Thu, 28 Apr 2011) Log Message: ----------- Ported some tests Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/ trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/CompatibilityWithCandidatePersistentMembers.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetFirstImplementorConcreteClassesTest.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetFirstImplementorTest.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetMemberFromInterfacesTest.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/TypeExtensionsTest.cs Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/CompatibilityWithCandidatePersistentMembers.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/CompatibilityWithCandidatePersistentMembers.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/CompatibilityWithCandidatePersistentMembers.cs 2011-04-28 12:43:58 UTC (rev 5785) @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using System.Linq; +using NHibernate.Mapping.ByCode; +using NHibernate.Mapping.ByCode.Impl; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.TypeExtensionsTests +{ + public class CompatibilityWithCandidatePersistentMembers + { + public abstract class Geo + { + public string Descrition { get; set; } + protected Geo Parent { get; set; } + protected ICollection<Geo> Elements { get; set; } + } + + [Test] + public void GetFirstPropertyOfTypeShouldUseSameConceptsOfCandidatePersistentMembersProvider() + { + var memberProvider = new DefaultCandidatePersistentMembersProvider(); + var properties = memberProvider.GetRootEntityMembers(typeof(Geo)); + if(properties.Select(p => p.Name).Contains("Parent")) + { + typeof(Geo).GetFirstPropertyOfType(typeof(Geo)).Should().Not.Be.Null(); + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetFirstImplementorConcreteClassesTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetFirstImplementorConcreteClassesTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetFirstImplementorConcreteClassesTest.cs 2011-04-28 12:43:58 UTC (rev 5785) @@ -0,0 +1,53 @@ +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.TypeExtensionsTests +{ + public class GetFirstImplementorConcreteClassesTest + { + private class MyClass1 + { + + } + private class MyClass2 : MyClass1 + { + + } + private class MyClass3 : MyClass2 + { + + } + private class MyClass4 : MyClass3 + { + + } + + [Test] + public void WhenImplIsAtSameLevelThenReturnImplementor() + { + typeof(MyClass1).GetFirstImplementorOf(typeof(MyClass1)).Should().Be(typeof(MyClass1)); + typeof(MyClass2).GetFirstImplementorOf(typeof(MyClass2)).Should().Be(typeof(MyClass2)); + typeof(MyClass3).GetFirstImplementorOf(typeof(MyClass3)).Should().Be(typeof(MyClass3)); + typeof(MyClass4).GetFirstImplementorOf(typeof(MyClass4)).Should().Be(typeof(MyClass4)); + } + + [Test] + public void WhenImplIsAtDifferentLevelThenReturnImplementor() + { + typeof(MyClass2).GetFirstImplementorOf(typeof(MyClass1)).Should().Be(typeof(MyClass2)); + typeof(MyClass3).GetFirstImplementorOf(typeof(MyClass1)).Should().Be(typeof(MyClass2)); + typeof(MyClass3).GetFirstImplementorOf(typeof(MyClass2)).Should().Be(typeof(MyClass3)); + typeof(MyClass4).GetFirstImplementorOf(typeof(MyClass1)).Should().Be(typeof(MyClass2)); + typeof(MyClass4).GetFirstImplementorOf(typeof(MyClass2)).Should().Be(typeof(MyClass3)); + typeof(MyClass4).GetFirstImplementorOf(typeof(MyClass3)).Should().Be(typeof(MyClass4)); + } + + [Test] + public void WhenImplIsAtUpLevelThenReturnNull() + { + typeof(MyClass2).GetFirstImplementorOf(typeof(MyClass3)).Should().Be.Null(); + typeof(MyClass3).GetFirstImplementorOf(typeof(MyClass4)).Should().Be.Null(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetFirstImplementorTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetFirstImplementorTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetFirstImplementorTest.cs 2011-04-28 12:43:58 UTC (rev 5785) @@ -0,0 +1,78 @@ +using System; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.TypeExtensionsTests +{ + public class GetFirstImplementorTest + { + private interface IInterfaceNoImpl + { + + } + private interface IInterface1 + { + + } + private interface IInterface2 + { + + } + private interface IInterface3 + { + + } + private class MyClassNoInterface + { + + } + private class MyClass1: IInterface1 + { + + } + private class MyClass2: MyClass1, IInterface2 + { + + } + private class MyClass3 : MyClass2, IInterface3 + { + + } + + [Test] + public void WhenInvalidThenThrows() + { + Executing.This(()=>((System.Type) null).GetFirstImplementorOf(typeof(IInterfaceNoImpl))).Should().Throw<ArgumentNullException>(); + Executing.This(() => typeof(IInterfaceNoImpl).GetFirstImplementorOf(null)).Should().Throw<ArgumentNullException>(); + } + + [Test] + public void WhenIsInterfaceThenNoImplementor() + { + typeof(IInterfaceNoImpl).GetFirstImplementorOf(typeof(IInterfaceNoImpl)).Should().Be.Null(); + } + + [Test] + public void WhenImplAsNoInterfaceThenNoImplementor() + { + typeof(MyClassNoInterface).GetFirstImplementorOf(typeof(IInterfaceNoImpl)).Should().Be.Null(); + } + + [Test] + public void WhenImplIsAtSameLevelThenReturnImplementor() + { + typeof(MyClass1).GetFirstImplementorOf(typeof(IInterface1)).Should().Be(typeof(MyClass1)); + typeof(MyClass2).GetFirstImplementorOf(typeof(IInterface2)).Should().Be(typeof(MyClass2)); + typeof(MyClass3).GetFirstImplementorOf(typeof(IInterface3)).Should().Be(typeof(MyClass3)); + } + + [Test] + public void WhenImplIsAtDifferentLevelThenReturnImplementor() + { + typeof(MyClass2).GetFirstImplementorOf(typeof(IInterface1)).Should().Be(typeof(MyClass1)); + typeof(MyClass3).GetFirstImplementorOf(typeof(IInterface2)).Should().Be(typeof(MyClass2)); + typeof(MyClass3).GetFirstImplementorOf(typeof(IInterface1)).Should().Be(typeof(MyClass1)); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetMemberFromInterfacesTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetMemberFromInterfacesTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/GetMemberFromInterfacesTest.cs 2011-04-28 12:43:58 UTC (rev 5785) @@ -0,0 +1,82 @@ +using System; +using System.Linq; +using System.Reflection; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.TypeExtensionsTests +{ + public class GetMemberFromInterfacesTest + { + private class BaseEntity + { + public int Id { get; set; } + } + + private interface IEntity + { + bool IsValid { get; } + string Something { get; set; } + } + + private interface IHasSomething + { + string Something { get; set; } + } + + private class Person : BaseEntity, IEntity, IHasSomething + { + private int someField; + public string Name { get; set; } + public bool IsValid { get { return false; } } + public string Something { get; set; } + } + + private interface IInheritedHasSomething : IHasSomething + { + string Blah { get; set; } + } + + + [Test] + public void WhenNullArgumentThenThrows() + { + Executing.This(() => ((MemberInfo)null).GetPropertyFromInterfaces().ToList()).Should().Throw<ArgumentNullException>(); + } + + [Test] + public void WhenNoInterfaceThenEmptyList() + { + For<BaseEntity>.Property(x=> x.Id).GetPropertyFromInterfaces().Should().Be.Empty(); + } + + [Test] + public void WhenFieldThenEmptyList() + { + ForClass<Person>.Field("someField").GetPropertyFromInterfaces().Should().Be.Empty(); + } + + [Test] + public void WhenOneInterfaceThenReturnMemberInfoOfInterface() + { + var members = For<Person>.Property(x => x.IsValid).GetPropertyFromInterfaces(); + members.Single().Should().Be(For<IEntity>.Property(x=> x.IsValid)); + } + + [Test] + public void WhenTwoInterfacesThenReturnMemberInfoOfEachInterface() + { + var members = For<Person>.Property(x => x.Something).GetPropertyFromInterfaces(); + members.Should().Contain(For<IEntity>.Property(x => x.Something)); + members.Should().Contain(For<IHasSomething>.Property(x => x.Something)); + } + + [Test] + public void WhenPropertyOfInterfaceThenNotThrows() + { + var member = For<IInheritedHasSomething>.Property(x => x.Blah); + member.Executing(x=> x.GetPropertyFromInterfaces().Any()).NotThrows(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/TypeExtensionsTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/TypeExtensionsTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/TypeExtensionsTests/TypeExtensionsTest.cs 2011-04-28 12:43:58 UTC (rev 5785) @@ -0,0 +1,207 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Reflection; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.TypeExtensionsTests +{ + public class TypeExtensionsTest + { + private const BindingFlags BindingFlagsIncludePrivate = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public; + + [Test] + public void CanDetermineDictionaryKeyType() + { + typeof (IDictionary<string, int>).DetermineDictionaryKeyType().Should().Be.EqualTo<string>(); + } + + [Test] + public void WhenNoGenericDictionaryThenDetermineNullDictionaryKeyType() + { + typeof(IEnumerable<string>).DetermineDictionaryKeyType().Should().Be.Null(); + } + + [Test] + public void CanDetermineDictionaryValueType() + { + typeof(IDictionary<string, int>).DetermineDictionaryValueType().Should().Be.EqualTo<int>(); + } + + [Test] + public void WhenNoGenericDictionaryThenDetermineNullDictionaryValueType() + { + typeof(IEnumerable<string>).DetermineDictionaryValueType().Should().Be.Null(); + } + + private class MyBaseClass + { + public string BaseProperty { get; set; } + public bool BaseBool { get; set; } + private double SomethingPrivate { get; set; } + } + private class MyClass : MyBaseClass + { + + } + + [Test] + public void DecodeMemberAccessExpressionShouldReturnMemberOfDeclaringClass() + { + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpression<MyClass>(mc => mc.BaseProperty).Satisfy( + mi => mi.ReflectedType == typeof(MyBaseClass) && mi.DeclaringType == typeof(MyBaseClass)); + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpression<MyClass>(mc => mc.BaseBool).Satisfy( + mi => mi.ReflectedType == typeof(MyBaseClass) && mi.DeclaringType == typeof(MyBaseClass)); + } + + [Test] + public void GenericDecodeMemberAccessExpressionShouldReturnMemberOfDeclaringClass() + { + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpression<MyClass, string>(mc => mc.BaseProperty).Satisfy( + mi => mi.ReflectedType == typeof(MyBaseClass) && mi.DeclaringType == typeof(MyBaseClass)); + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpression<MyClass, bool>(mc => mc.BaseBool).Satisfy( + mi => mi.ReflectedType == typeof(MyBaseClass) && mi.DeclaringType == typeof(MyBaseClass)); + } + + [Test] + public void DecodeMemberAccessExpressionOfShouldReturnMemberOfRequiredClass() + { + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpressionOf<MyClass>(mc => mc.BaseProperty).Satisfy( + mi => mi.ReflectedType == typeof (MyClass) && mi.DeclaringType == typeof (MyBaseClass)); + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpressionOf<MyClass>(mc => mc.BaseBool).Satisfy( + mi => mi.ReflectedType == typeof(MyClass) && mi.DeclaringType == typeof(MyBaseClass)); + } + + [Test] + public void GenericDecodeMemberAccessExpressionOfShouldReturnMemberOfRequiredClass() + { + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpressionOf<MyClass, string>(mc => mc.BaseProperty).Satisfy( + mi => mi.ReflectedType == typeof(MyClass) && mi.DeclaringType == typeof(MyBaseClass)); + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpressionOf<MyClass, bool>(mc => mc.BaseBool).Satisfy( + mi => mi.ReflectedType == typeof(MyClass) && mi.DeclaringType == typeof(MyBaseClass)); + } + + [Test] + public void GetBaseTypesIncludesInterfaces() + { + typeof (Collection<>).GetBaseTypes().Should().Contain(typeof (IEnumerable)); + } + + private interface IEntity<T> + { + T Id { get; set; } + } + private abstract class AbstractEntity<T> : IEntity<T> + { + public abstract T Id { get; set; } + public abstract bool BaseBool { get; set; } + } + + private class BaseEntity : AbstractEntity<int> + { + public override int Id { get; set; } + + public override bool BaseBool { get; set; } + } + private class MyEntity: BaseEntity + { + } + + [Test] + public void DecodeMemberAccessExpressionOfWithGenericShouldReturnMemberOfRequiredClass() + { + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpressionOf<MyEntity>(mc => mc.Id).Satisfy( + mi => mi.ReflectedType == typeof(MyEntity) && mi.DeclaringType == typeof(BaseEntity)); + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpressionOf<MyEntity>(mc => mc.BaseBool).Satisfy( + mi => mi.ReflectedType == typeof(MyEntity) && mi.DeclaringType == typeof(BaseEntity)); + } + + [Test] + public void WhenBaseIsAbstractGenericGetMemberFromDeclaringType() + { + var mi = typeof(MyEntity).GetProperty("Id", typeof(int)); + var declaringMi = mi.GetMemberFromDeclaringType(); + declaringMi.DeclaringType.Should().Be<BaseEntity>(); + declaringMi.ReflectedType.Should().Be<BaseEntity>(); + } + + [Test] + public void WhenBaseIsAbstractGetMemberFromDeclaringType() + { + var mi = typeof(MyEntity).GetProperty("BaseBool", typeof(bool)); + var declaringMi = mi.GetMemberFromDeclaringType(); + declaringMi.DeclaringType.Should().Be<BaseEntity>(); + declaringMi.ReflectedType.Should().Be<BaseEntity>(); + } + + [Test] + public void GetFirstPropertyOfTypeWithNulls() + { + System.Type myType = null; + myType.GetFirstPropertyOfType(typeof (int), BindingFlagsIncludePrivate).Should().Be.Null(); + myType = typeof (Array); + myType.GetFirstPropertyOfType(null, BindingFlagsIncludePrivate).Should().Be.Null(); + } + + [Test] + public void GetFirstPropertyOfType_WhenPropertyExistThenFindProperty() + { + typeof (MyBaseClass).GetFirstPropertyOfType(typeof (string)).Should().Be( + typeof (MyBaseClass).GetProperty("BaseProperty")); + typeof (MyBaseClass).GetFirstPropertyOfType(typeof (bool)).Should().Be(typeof (MyBaseClass).GetProperty("BaseBool")); + typeof (MyBaseClass).GetFirstPropertyOfType(typeof (double), BindingFlagsIncludePrivate).Should().Be( + typeof (MyBaseClass).GetProperty("SomethingPrivate", BindingFlagsIncludePrivate)); + } + + [Test] + public void GetFirstPropertyOfType_WhenPropertyNotExistThenNull() + { + typeof (MyBaseClass).GetFirstPropertyOfType(typeof (float)).Should().Be.Null(); + // typeof (MyBaseClass).GetFirstPropertyOfType(typeof (double)).Should().Be.Null(); <= by default check private prop. + } + + private interface IMyEntity : IEntity<Guid> + { + + } + + [Test] + public void WhenDecodeMemberAccessExpressionOfOnInheritedEntityInterfaceThenDecodeMember() + { + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpressionOf<IMyEntity>(m => m.Id).Should().Not.Be.Null(); + Mapping.ByCode.TypeExtensions.DecodeMemberAccessExpressionOf<IMyEntity, Guid>(m => m.Id).Should().Not.Be.Null(); + } + + [Test] + public void TheSequenceOfGetHierarchyFromBaseShouldStartFromBaseClassUpToGivenClass() + { + // excluding System.Object + typeof(MyEntity).GetHierarchyFromBase().Should().Have.SameSequenceAs(typeof(AbstractEntity<int>), typeof(BaseEntity), typeof(MyEntity)); + } + + [Test] + public void GetFirstPropertyOfType_WhenDelegateIsNullThenThrow() + { + var myType = typeof(Array); + Executing.This(()=> myType.GetFirstPropertyOfType(typeof(int), BindingFlagsIncludePrivate, null)).Should().Throw<ArgumentNullException>(); + } + + [Test] + public void GetFirstPropertyOfType_WhenAsDelegateThenUseDelegateToFilterProperties() + { + typeof (MyBaseClass).GetFirstPropertyOfType(typeof (string), BindingFlags.Public | BindingFlags.Instance, x => false).Should().Be.Null(); + typeof (MyBaseClass).GetFirstPropertyOfType(typeof (string), BindingFlags.Public | BindingFlags.Instance, x => true).Should().Be( + typeof (MyBaseClass).GetProperty("BaseProperty")); + } + + [Test] + public void HasPublicPropertyOf_WhenAsDelegateThenUseDelegateToFilterProperties() + { + typeof(MyBaseClass).HasPublicPropertyOf(typeof(string), x => false).Should().Be.False(); + typeof(MyBaseClass).HasPublicPropertyOf(typeof(string), x => true).Should().Be.True(); + } + } +} \ 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-28 10:36:52 UTC (rev 5784) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-04-28 12:43:58 UTC (rev 5785) @@ -608,6 +608,11 @@ <Compile Include="MappingByCode\NatureDemo\Naturalness\StateProvince.cs" /> <Compile Include="MappingByCode\NatureDemo\Naturalness\User.cs" /> <Compile Include="MappingByCode\NatureDemo\Naturalness\Zoo.cs" /> + <Compile Include="MappingByCode\TypeExtensionsTests\CompatibilityWithCandidatePersistentMembers.cs" /> + <Compile Include="MappingByCode\TypeExtensionsTests\GetFirstImplementorConcreteClassesTest.cs" /> + <Compile Include="MappingByCode\TypeExtensionsTests\GetFirstImplementorTest.cs" /> + <Compile Include="MappingByCode\TypeExtensionsTests\GetMemberFromInterfacesTest.cs" /> + <Compile Include="MappingByCode\TypeExtensionsTests\TypeExtensionsTest.cs" /> <Compile Include="MappingByCode\TypeNameUtilTests.cs" /> <Compile Include="NHSpecificTest\AccessAndCorrectPropertyName\Fixture.cs" /> <Compile Include="NHSpecificTest\AccessAndCorrectPropertyName\Model.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-05-03 11:21:00
|
Revision: 5796 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5796&view=rev Author: fabiomaulo Date: 2011-05-03 11:20:54 +0000 (Tue, 03 May 2011) Log Message: ----------- Demonstration NH-2587 was fixed Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2587/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2587/CachingWithLinq.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2587/CachingWithLinq.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2587/CachingWithLinq.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2587/CachingWithLinq.cs 2011-05-03 11:20:54 UTC (rev 5796) @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using NHibernate.Cache; +using NHibernate.Cfg; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Linq; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2587 +{ + public class Foo + { + public Foo() + { + Bars = new List<Bar>(); + } + public virtual Guid Id { get; set; } + public virtual ICollection<Bar> Bars { get; set; } + } + + public class Bar + { + public virtual Guid Id { get; set; } + public virtual Foo Foo { get; set; } + } + + public class CachingWithLinq : TestCaseMappingByCode + { + protected override HbmMapping GetMappings() + { + var mapper = new ModelMapper(); + mapper.BeforeMapClass += (inspector, type, map) => map.Id(x=> x.Generator(Generators.GuidComb)); + mapper.Class<Foo>(mc => + { + mc.Id(x => x.Id); + mc.Bag(x => x.Bars, map => + { + map.Inverse(true); + map.Cascade(Mapping.ByCode.Cascade.All); + map.Key(km => + { + km.Column("FooId"); + km.OnDelete(OnDeleteAction.Cascade); + }); + }, rel => rel.OneToMany()); + }); + mapper.Class<Bar>(mc => + { + mc.Id(x => x.Id); + mc.ManyToOne(x=> x.Foo, map=> map.Column("FooId")); + }); + var mappings = mapper.CompileMappingForAllExplicitAddedEntities(); + return mappings; + } + + protected override void Configure(Cfg.Configuration configuration) + { + configuration.Cache(x => + { + x.Provider<HashtableCacheProvider>(); + x.UseQueryCache = true; + }); + } + + public class Scenario: IDisposable + { + private readonly ISessionFactory factory; + + public Scenario(ISessionFactory factory) + { + this.factory = factory; + using (ISession session = factory.OpenSession()) + using (ITransaction tx = session.BeginTransaction()) + { + var foo1 = new Foo(); + foo1.Bars.Add(new Bar {Foo = foo1}); + foo1.Bars.Add(new Bar { Foo = foo1 }); + var foo2 = new Foo(); + foo2.Bars.Add(new Bar { Foo = foo2 }); + + session.Persist(foo1); + session.Persist(foo2); + tx.Commit(); + } + } + + public void Dispose() + { + using (ISession session = factory.OpenSession()) + using (ITransaction tx = session.BeginTransaction()) + { + session.CreateQuery("delete from Foo").ExecuteUpdate(); + tx.Commit(); + } + } + } + [Test] + public void TestMethod1() + { + using (new Scenario(Sfi)) + { + // The test provided is only about Not-Throw + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) + { + + session.Query<Foo>().Cacheable().ToList(); + session.Query<Bar>().Cacheable().ToList(); + session.Query<Foo>().Cacheable().Fetch(x => x.Bars).ToList(); + session.Query<Bar>().Cacheable().Fetch(x => x.Foo).ToList(); + } + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-02 15:41:52 UTC (rev 5795) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-03 11:20:54 UTC (rev 5796) @@ -804,6 +804,7 @@ <Compile Include="NHSpecificTest\NH2583\MassTestingThreeOrTreesSideBySideFixture.cs" /> <Compile Include="NHSpecificTest\NH2583\MassTestingTwoOrTreesSideBySideFixture.cs" /> <Compile Include="NHSpecificTest\NH2583\SelfJoinTestFixture.cs" /> + <Compile Include="NHSpecificTest\NH2587\CachingWithLinq.cs" /> <Compile Include="NHSpecificTest\NH2603\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2603\Model.cs" /> <Compile Include="NHSpecificTest\NH2632\Domain.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-05-09 21:20:30
|
Revision: 5804 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5804&view=rev Author: fabiomaulo Date: 2011-05-09 21:20:24 +0000 (Mon, 09 May 2011) Log Message: ----------- Passing test for NH-1965 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1965/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1965/ReattachWithCollectionTest.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1965/ReattachWithCollectionTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1965/ReattachWithCollectionTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1965/ReattachWithCollectionTest.cs 2011-05-09 21:20:24 UTC (rev 5804) @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH1965 +{ + public class Cat + { + public Cat() + { + Children = new List<Cat>(); + } + public virtual int Id { get; set; } + public virtual IList<Cat> Children { get; set; } + } + + public class ReattachWithCollectionTest: TestCaseMappingByCode + { + protected override HbmMapping GetMappings() + { + var mapper = new ModelMapper(); + // Note: DeleteOrphans has no sense, only added to match the case reported. + mapper.Class<Cat>(cm => + { + cm.Id(x => x.Id, map => map.Generator(Generators.Identity)); + cm.Bag(x => x.Children, map => map.Cascade(Mapping.ByCode.Cascade.All.Include(Mapping.ByCode.Cascade.DeleteOrphans)), rel => rel.OneToMany()); + }); + var mappings = mapper.CompileMappingForAllExplicitAddedEntities(); + return mappings; + } + + [Test] + public void WhenReattachThenNotThrows() + { + var cat = new Cat(); + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + session.Save(cat); + session.Transaction.Commit(); + } + + using (var session = OpenSession()) + { + session.Executing(x => x.Lock(cat, LockMode.None)).NotThrows(); + } + + using (var session = OpenSession()) + using (session.BeginTransaction()) + { + session.Delete(cat); + session.Transaction.Commit(); + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-09 16:05:57 UTC (rev 5803) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-09 21:20:24 UTC (rev 5804) @@ -656,6 +656,7 @@ <Compile Include="NHSpecificTest\NH1869\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1925\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1925\Model.cs" /> + <Compile Include="NHSpecificTest\NH1965\ReattachWithCollectionTest.cs" /> <Compile Include="NHSpecificTest\NH2037\Domain.cs" /> <Compile Include="NHSpecificTest\NH2037\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2043\Domain.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-05-10 18:22:03
|
Revision: 5809 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5809&view=rev Author: fabiomaulo Date: 2011-05-10 18:21:57 +0000 (Tue, 10 May 2011) Log Message: ----------- No failing test for proxy Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/GenericMethodsTests/ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/GenericMethodsTests/GenericMethodShouldBeProxied.cs Added: trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/GenericMethodsTests/GenericMethodShouldBeProxied.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/GenericMethodsTests/GenericMethodShouldBeProxied.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/DynamicProxyTests/GenericMethodsTests/GenericMethodShouldBeProxied.cs 2011-05-10 18:21:57 UTC (rev 5809) @@ -0,0 +1,48 @@ +using System.Collections.Generic; +using NHibernate.Proxy.DynamicProxy; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.DynamicProxyTests.GenericMethodsTests +{ + public class GenericMethodShouldBeProxied + { + public class MyClass + { + public virtual object Method<T>() + { + if(typeof(T) == typeof(int)) + { + return 5; + } + if (typeof(T) == typeof(string)) + { + return "blha"; + } + return default(T); + } + + public virtual TRequestedType As<TRequestedType>() where TRequestedType : MyClass + { + return this as TRequestedType; + } + } + + [Test] + public void ProxyOfAGenericMethod() + { + var factory = new ProxyFactory(); + var c = (MyClass)factory.CreateProxy(typeof(MyClass), new PassThroughInterceptor(new MyClass()), null); + c.Method<int>().Should().Be(5); + c.Method<string>().Should().Be("blha"); + } + + [Test] + public void ProxyOfSelfCastingMethod() + { + var factory = new ProxyFactory(); + var c = (MyClass)factory.CreateProxy(typeof(MyClass), new PassThroughInterceptor(new MyClass()), null); + c.As<MyClass>().Should().Not.Be.Null(); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-10 17:39:47 UTC (rev 5808) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-10 18:21:57 UTC (rev 5809) @@ -219,6 +219,7 @@ <Compile Include="DriverTest\Sql2008DateTime2Test.cs" /> <Compile Include="DriverTest\SqlClientDriverFixture.cs" /> <Compile Include="DriverTest\SqlServerCeDriverFixture.cs" /> + <Compile Include="DynamicProxyTests\GenericMethodsTests\GenericMethodShouldBeProxied.cs" /> <Compile Include="DynamicProxyTests\InterfaceProxySerializationTests\IMyProxy.cs" /> <Compile Include="DynamicProxyTests\InterfaceProxySerializationTests\MyProxyImpl.cs" /> <Compile Include="DynamicProxyTests\InterfaceProxySerializationTests\ProxyFixture.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-05-12 19:48:56
|
Revision: 5815 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5815&view=rev Author: fabiomaulo Date: 2011-05-12 19:48:50 +0000 (Thu, 12 May 2011) Log Message: ----------- Demonstration for NH-2546 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/Model.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/SetCommandParameterSizesFalseFixture.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/Mappings.hbm.xml 2011-05-12 19:48:50 UTC (rev 5815) @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping + xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2546"> + + <class name="Student"> + <id name="Id"> + <generator class="native" /> + </id> + <property name="StringTypeWithLengthDefined" type="String(15)"/> + </class> + +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/Model.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/Model.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/Model.cs 2011-05-12 19:48:50 UTC (rev 5815) @@ -0,0 +1,8 @@ +namespace NHibernate.Test.NHSpecificTest.NH2546 +{ + public class Student + { + public virtual int Id { get; set; } + public virtual string StringTypeWithLengthDefined { get; set; } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/SetCommandParameterSizesFalseFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/SetCommandParameterSizesFalseFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2546/SetCommandParameterSizesFalseFixture.cs 2011-05-12 19:48:50 UTC (rev 5815) @@ -0,0 +1,61 @@ +using System.Collections.Generic; +using NUnit.Framework; +using NHibernate.Criterion; + +namespace NHibernate.Test.NHSpecificTest.NH2546 +{ + [TestFixture] + public class SetCommandParameterSizesFalseFixture : BugTestCase + { + protected override void OnSetUp() + { + using (ISession session = Sfi.OpenSession()) + { + session.Persist(new Student() { StringTypeWithLengthDefined = "Julian Maughan" }); + session.Persist(new Student() { StringTypeWithLengthDefined = "Bill Clinton" }); + session.Flush(); + } + } + + protected override void OnTearDown() + { + using (ISession session = Sfi.OpenSession()) + { + session.CreateQuery("delete from Student").ExecuteUpdate(); + session.Flush(); + } + base.OnTearDown(); + } + + [Test] + public void LikeExpressionWithinDefinedTypeSize() + { + using (ISession session = Sfi.OpenSession()) + { + ICriteria criteria = session + .CreateCriteria<Student>() + .Add(Restrictions.Like("StringTypeWithLengthDefined", "Julian%")); + + IList<Student> list = criteria.List<Student>(); + + Assert.That(list.Count, Is.EqualTo(1)); + } + } + + [Test] + public void LikeExpressionExceedsDefinedTypeSize() + { + // In this case we are forcing the usage of LikeExpression class where the length of the associated property is ignored + using (ISession session = Sfi.OpenSession()) + { + ICriteria criteria = session + .CreateCriteria<Student>() + .Add(Restrictions.Like("StringTypeWithLengthDefined", "[a-z][a-z][a-z]ian%", MatchMode.Exact, null)); + + IList<Student> list = criteria.List<Student>(); + + Assert.That(list.Count, Is.EqualTo(1)); + } + } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-12 18:42:54 UTC (rev 5814) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-12 19:48:50 UTC (rev 5815) @@ -794,6 +794,8 @@ <Compile Include="NHSpecificTest\NH2527\Model.cs" /> <Compile Include="NHSpecificTest\NH2530\Domain.cs" /> <Compile Include="NHSpecificTest\NH2530\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2546\Model.cs" /> + <Compile Include="NHSpecificTest\NH2546\SetCommandParameterSizesFalseFixture.cs" /> <Compile Include="NHSpecificTest\NH2554\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2554\Model.cs" /> <Compile Include="NHSpecificTest\NH2565\Domain.cs" /> @@ -2667,6 +2669,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2546\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2697\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1642\Mappings.hbm.xml" /> <EmbeddedResource Include="Stateless\Contact.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-05-15 19:15:15
|
Revision: 5820 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5820&view=rev Author: fabiomaulo Date: 2011-05-15 19:15:09 +0000 (Sun, 15 May 2011) Log Message: ----------- Test ported Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/NaturalIdMapperTest.cs Added: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/NaturalIdMapperTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/NaturalIdMapperTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/NaturalIdMapperTest.cs 2011-05-15 19:15:09 UTC (rev 5820) @@ -0,0 +1,29 @@ +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode.Impl; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.MappersTests +{ + public class NaturalIdMapperTest + { + private class EntitySimpleWithNaturalId + { + public string Something { get; set; } + } + + [Test] + public void CanSetMutable() + { + var mapdoc = new HbmMapping(); + var hbmClass = new HbmClass(); + var nid = new NaturalIdMapper(typeof(EntitySimpleWithNaturalId), hbmClass, mapdoc); + // to have the natural-id assigned ot must have at least a property + nid.Property(For<EntitySimpleWithNaturalId>.Property(x => x.Something), pm => { }); + + var hbmNaturalId = hbmClass.naturalid; + nid.Mutable(true); + hbmNaturalId.mutable.Should().Be.True(); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-15 14:26:56 UTC (rev 5819) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-15 19:15:09 UTC (rev 5820) @@ -579,6 +579,7 @@ <Compile Include="MappingByCode\MappersTests\JoinedSubclassMapperTests\SetPersisterTests.cs" /> <Compile Include="MappingByCode\MappersTests\JoinedSubclassMapperTests\TablesSincronizationTests.cs" /> <Compile Include="MappingByCode\MappersTests\JoinMapperTests.cs" /> + <Compile Include="MappingByCode\MappersTests\NaturalIdMapperTest.cs" /> <Compile Include="MappingByCode\MappersTests\PropertyMapperTest.cs" /> <Compile Include="MappingByCode\MappersTests\SubclassMapperTests\SetPersisterTests.cs" /> <Compile Include="MappingByCode\MappersTests\SubclassMapperTests\TablesSincronizationTests.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-05-15 19:29:33
|
Revision: 5823 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5823&view=rev Author: fabiomaulo Date: 2011-05-15 19:29:27 +0000 (Sun, 15 May 2011) Log Message: ----------- Moved test Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ManyToOneMapperTest.cs Removed Paths: ------------- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ManyToOneMapperTest.cs Deleted: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ManyToOneMapperTest.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ManyToOneMapperTest.cs 2011-05-15 19:27:43 UTC (rev 5822) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ManyToOneMapperTest.cs 2011-05-15 19:29:27 UTC (rev 5823) @@ -1,305 +0,0 @@ -using System; -using System.Linq; -using NHibernate.Mapping.ByCode; -using NHibernate.Cfg.MappingSchema; -using NHibernate.Mapping.ByCode.Impl; -using NUnit.Framework; -using SharpTestsEx; - -namespace NHibernate.Test.MappingByCode -{ - public class ManyToOneMapperTest - { - private class MyClass - { - public Relation Relation { get; set; } - public IRelation TheOtherRelation { get; set; } - } - - private interface IRelation - { - - } - - private class Relation : IRelation - { - - } - - private class Whatever - { - - } - - [Test] - public void AssignCascadeStyle() - { - var hbmMapping = new HbmMapping(); - var hbm = new HbmManyToOne(); - var mapper = new ManyToOneMapper(null, hbm, hbmMapping); - mapper.Cascade(Mapping.ByCode.Cascade.Persist | Mapping.ByCode.Cascade.Remove); - hbm.cascade.Split(',').Select(w => w.Trim()).Should().Contain("persist").And.Contain("delete"); - } - - [Test] - public void AutoCleanUnsupportedCascadeStyle() - { - var hbmMapping = new HbmMapping(); - var hbm = new HbmManyToOne(); - var mapper = new ManyToOneMapper(null, hbm, hbmMapping); - mapper.Cascade(Mapping.ByCode.Cascade.Persist | Mapping.ByCode.Cascade.DeleteOrphans | Mapping.ByCode.Cascade.Remove); - hbm.cascade.Split(',').Select(w => w.Trim()).All(w => w.Satisfy(cascade => !cascade.Contains("orphan"))); - } - - [Test] - public void CanSetAccessor() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var hbm = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, hbm, hbmMapping); - - mapper.Access(Accessor.ReadOnly); - hbm.Access.Should().Be("readonly"); - } - - [Test] - public void WhenSetDifferentColumnNameThenSetTheName() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var hbm = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, hbm, hbmMapping); - mapper.Column(cm => cm.Name("RelationId")); - - hbm.Columns.Should().Have.Count.EqualTo(1); - hbm.Columns.Single().name.Should().Be("RelationId"); - } - - [Test] - public void WhenSetDefaultColumnNameThenDoesNotSetTheName() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - mapper.Column(cm => cm.Name("Relation")); - mapping.column.Should().Be.Null(); - mapping.Columns.Should().Be.Empty(); - } - - [Test] - public void WhenSetBasicColumnValuesThenSetPlainValues() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - mapper.Column(cm => - { - cm.UniqueKey("theUnique"); - cm.NotNullable(true); - }); - mapping.Items.Should().Be.Null(); - mapping.uniquekey.Should().Be("theUnique"); - mapping.notnull.Should().Be(true); - mapping.notnullSpecified.Should().Be(true); - } - - [Test] - public void WhenSetColumnValuesThenAddColumnTag() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - mapper.Column(cm => - { - cm.SqlType("BIGINT"); - cm.NotNullable(true); - }); - mapping.Items.Should().Not.Be.Null(); - mapping.Columns.Should().Have.Count.EqualTo(1); - } - - [Test] - public void WhenSetBasicColumnValuesMoreThanOnesThenMergeColumn() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - mapper.Column(cm => cm.UniqueKey("theUnique")); - mapper.Column(cm => cm.NotNullable(true)); - - mapping.Items.Should().Be.Null(); - mapping.uniquekey.Should().Be("theUnique"); - mapping.notnull.Should().Be(true); - mapping.notnullSpecified.Should().Be(true); - } - - [Test] - public void WhenSetMultiColumnsValuesThenAddColumns() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - mapper.Columns(cm => - { - cm.Name("column1"); - cm.Length(50); - }, cm => - { - cm.Name("column2"); - cm.SqlType("VARCHAR(10)"); - }); - mapping.Columns.Should().Have.Count.EqualTo(2); - } - - [Test] - public void WhenSetMultiColumnsValuesThenAutoassignColumnNames() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)")); - mapping.Columns.Should().Have.Count.EqualTo(2); - mapping.Columns.All(cm => cm.name.Satisfy(n => !string.IsNullOrEmpty(n))); - } - - [Test] - public void AfterSetMultiColumnsCantSetSimpleColumn() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)")); - Executing.This(() => mapper.Column(cm => cm.Length(50))).Should().Throw<MappingException>(); - } - - [Test] - public void WhenSetBasicColumnValuesThroughShortCutThenMergeColumn() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - mapper.Column("pizza"); - mapper.NotNullable(true); - mapper.Unique(true); - mapper.UniqueKey("AA"); - mapper.Index("II"); - - mapping.Items.Should().Be.Null(); - mapping.column.Should().Be("pizza"); - mapping.notnull.Should().Be(true); - mapping.unique.Should().Be(true); - mapping.uniquekey.Should().Be("AA"); - mapping.index.Should().Be("II"); - } - - [Test] - public void WhenSetFetchModeToJoinThenSetFetch() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - - mapper.Fetch(FetchKind.Join); - - mapping.fetch.Should().Be(HbmFetchMode.Join); - mapping.fetchSpecified.Should().Be.True(); - } - - [Test] - public void WhenSetFetchModeToSelectThenResetFetch() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - - mapper.Fetch(FetchKind.Select); - - mapping.fetch.Should().Be(HbmFetchMode.Select); - mapping.fetchSpecified.Should().Be.False(); - } - - [Test] - public void CanForceClassRelation() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("TheOtherRelation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - - mapper.Class(typeof(Relation)); - - mapping.Class.Should().Contain("Relation").And.Not.Contain("IRelation"); - } - - [Test] - public void WhenForceClassRelationToIncompatibleTypeThenThrows() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("TheOtherRelation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - - Executing.This(() => mapper.Class(typeof(Whatever))).Should().Throw<ArgumentOutOfRangeException>(); - } - - [Test] - public void CanSetLazyness() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("TheOtherRelation"); - var mapping = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, mapping, hbmMapping); - mapper.Lazy(LazyRelation.NoProxy); - mapping.Lazy.Should().Have.Value(); - mapping.Lazy.Should().Be(HbmLaziness.NoProxy); - } - - [Test] - public void CanSetUpdate() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var hbm = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, hbm, hbmMapping); - - mapper.Update(false); - hbm.update.Should().Be.False(); - } - - [Test] - public void CanSetInsert() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var hbm = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, hbm, hbmMapping); - - mapper.Insert(false); - hbm.insert.Should().Be.False(); - } - - [Test] - public void CanSetFk() - { - var hbmMapping = new HbmMapping(); - var member = typeof(MyClass).GetProperty("Relation"); - var hbm = new HbmManyToOne(); - var mapper = new ManyToOneMapper(member, hbm, hbmMapping); - - mapper.ForeignKey("MyFkName"); - - hbm.foreignkey.Should().Be("MyFkName"); - } - } -} \ No newline at end of file Copied: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ManyToOneMapperTest.cs (from rev 5822, trunk/nhibernate/src/NHibernate.Test/MappingByCode/ManyToOneMapperTest.cs) =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ManyToOneMapperTest.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/ManyToOneMapperTest.cs 2011-05-15 19:29:27 UTC (rev 5823) @@ -0,0 +1,305 @@ +using System; +using System.Linq; +using NHibernate.Mapping.ByCode; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode.Impl; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.MappingByCode.MappersTests +{ + public class ManyToOneMapperTest + { + private class MyClass + { + public Relation Relation { get; set; } + public IRelation TheOtherRelation { get; set; } + } + + private interface IRelation + { + + } + + private class Relation : IRelation + { + + } + + private class Whatever + { + + } + + [Test] + public void AssignCascadeStyle() + { + var hbmMapping = new HbmMapping(); + var hbm = new HbmManyToOne(); + var mapper = new ManyToOneMapper(null, hbm, hbmMapping); + mapper.Cascade(Mapping.ByCode.Cascade.Persist | Mapping.ByCode.Cascade.Remove); + hbm.cascade.Split(',').Select(w => w.Trim()).Should().Contain("persist").And.Contain("delete"); + } + + [Test] + public void AutoCleanUnsupportedCascadeStyle() + { + var hbmMapping = new HbmMapping(); + var hbm = new HbmManyToOne(); + var mapper = new ManyToOneMapper(null, hbm, hbmMapping); + mapper.Cascade(Mapping.ByCode.Cascade.Persist | Mapping.ByCode.Cascade.DeleteOrphans | Mapping.ByCode.Cascade.Remove); + hbm.cascade.Split(',').Select(w => w.Trim()).All(w => w.Satisfy(cascade => !cascade.Contains("orphan"))); + } + + [Test] + public void CanSetAccessor() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var hbm = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, hbm, hbmMapping); + + mapper.Access(Accessor.ReadOnly); + hbm.Access.Should().Be("readonly"); + } + + [Test] + public void WhenSetDifferentColumnNameThenSetTheName() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var hbm = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, hbm, hbmMapping); + mapper.Column(cm => cm.Name("RelationId")); + + hbm.Columns.Should().Have.Count.EqualTo(1); + hbm.Columns.Single().name.Should().Be("RelationId"); + } + + [Test] + public void WhenSetDefaultColumnNameThenDoesNotSetTheName() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + mapper.Column(cm => cm.Name("Relation")); + mapping.column.Should().Be.Null(); + mapping.Columns.Should().Be.Empty(); + } + + [Test] + public void WhenSetBasicColumnValuesThenSetPlainValues() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + mapper.Column(cm => + { + cm.UniqueKey("theUnique"); + cm.NotNullable(true); + }); + mapping.Items.Should().Be.Null(); + mapping.uniquekey.Should().Be("theUnique"); + mapping.notnull.Should().Be(true); + mapping.notnullSpecified.Should().Be(true); + } + + [Test] + public void WhenSetColumnValuesThenAddColumnTag() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + mapper.Column(cm => + { + cm.SqlType("BIGINT"); + cm.NotNullable(true); + }); + mapping.Items.Should().Not.Be.Null(); + mapping.Columns.Should().Have.Count.EqualTo(1); + } + + [Test] + public void WhenSetBasicColumnValuesMoreThanOnesThenMergeColumn() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + mapper.Column(cm => cm.UniqueKey("theUnique")); + mapper.Column(cm => cm.NotNullable(true)); + + mapping.Items.Should().Be.Null(); + mapping.uniquekey.Should().Be("theUnique"); + mapping.notnull.Should().Be(true); + mapping.notnullSpecified.Should().Be(true); + } + + [Test] + public void WhenSetMultiColumnsValuesThenAddColumns() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + mapper.Columns(cm => + { + cm.Name("column1"); + cm.Length(50); + }, cm => + { + cm.Name("column2"); + cm.SqlType("VARCHAR(10)"); + }); + mapping.Columns.Should().Have.Count.EqualTo(2); + } + + [Test] + public void WhenSetMultiColumnsValuesThenAutoassignColumnNames() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)")); + mapping.Columns.Should().Have.Count.EqualTo(2); + mapping.Columns.All(cm => cm.name.Satisfy(n => !string.IsNullOrEmpty(n))); + } + + [Test] + public void AfterSetMultiColumnsCantSetSimpleColumn() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)")); + Executing.This(() => mapper.Column(cm => cm.Length(50))).Should().Throw<MappingException>(); + } + + [Test] + public void WhenSetBasicColumnValuesThroughShortCutThenMergeColumn() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + mapper.Column("pizza"); + mapper.NotNullable(true); + mapper.Unique(true); + mapper.UniqueKey("AA"); + mapper.Index("II"); + + mapping.Items.Should().Be.Null(); + mapping.column.Should().Be("pizza"); + mapping.notnull.Should().Be(true); + mapping.unique.Should().Be(true); + mapping.uniquekey.Should().Be("AA"); + mapping.index.Should().Be("II"); + } + + [Test] + public void WhenSetFetchModeToJoinThenSetFetch() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + + mapper.Fetch(FetchKind.Join); + + mapping.fetch.Should().Be(HbmFetchMode.Join); + mapping.fetchSpecified.Should().Be.True(); + } + + [Test] + public void WhenSetFetchModeToSelectThenResetFetch() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + + mapper.Fetch(FetchKind.Select); + + mapping.fetch.Should().Be(HbmFetchMode.Select); + mapping.fetchSpecified.Should().Be.False(); + } + + [Test] + public void CanForceClassRelation() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("TheOtherRelation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + + mapper.Class(typeof(Relation)); + + mapping.Class.Should().Contain("Relation").And.Not.Contain("IRelation"); + } + + [Test] + public void WhenForceClassRelationToIncompatibleTypeThenThrows() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("TheOtherRelation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + + Executing.This(() => mapper.Class(typeof(Whatever))).Should().Throw<ArgumentOutOfRangeException>(); + } + + [Test] + public void CanSetLazyness() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("TheOtherRelation"); + var mapping = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, mapping, hbmMapping); + mapper.Lazy(LazyRelation.NoProxy); + mapping.Lazy.Should().Have.Value(); + mapping.Lazy.Should().Be(HbmLaziness.NoProxy); + } + + [Test] + public void CanSetUpdate() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var hbm = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, hbm, hbmMapping); + + mapper.Update(false); + hbm.update.Should().Be.False(); + } + + [Test] + public void CanSetInsert() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var hbm = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, hbm, hbmMapping); + + mapper.Insert(false); + hbm.insert.Should().Be.False(); + } + + [Test] + public void CanSetFk() + { + var hbmMapping = new HbmMapping(); + var member = typeof(MyClass).GetProperty("Relation"); + var hbm = new HbmManyToOne(); + var mapper = new ManyToOneMapper(member, hbm, hbmMapping); + + mapper.ForeignKey("MyFkName"); + + hbm.foreignkey.Should().Be("MyFkName"); + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-15 19:27:43 UTC (rev 5822) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-15 19:29:27 UTC (rev 5823) @@ -552,7 +552,7 @@ <Compile Include="MappingByCode\ExpliticMappingTests\SubclassPropertiesSplitsTests.cs" /> <Compile Include="MappingByCode\ExpliticMappingTests\VersionTests.cs" /> <Compile Include="MappingByCode\For.cs" /> - <Compile Include="MappingByCode\ManyToOneMapperTest.cs" /> + <Compile Include="MappingByCode\MappersTests\ManyToOneMapperTest.cs" /> <Compile Include="MappingByCode\MappersTests\AbstractPropertyContainerMapperTest.cs" /> <Compile Include="MappingByCode\MappersTests\ClassMapperTests\CheckMixingPOIDStrategiesTests.cs" /> <Compile Include="MappingByCode\MappersTests\ClassMapperTests\ClassMapperWithJoinPropertiesTest.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-05-16 14:37:33
|
Revision: 5829 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5829&view=rev Author: fabiomaulo Date: 2011-05-16 14:37:27 +0000 (Mon, 16 May 2011) Log Message: ----------- Tests (not fixed) for NH-2705 and NH-2615 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/ItemBase.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/SubItemBase.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/SubItemDetails.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/Test.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/ItemBase.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/ItemBase.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/ItemBase.cs 2011-05-16 14:37:27 UTC (rev 5829) @@ -0,0 +1,12 @@ +namespace NHibernate.Test.NHSpecificTest.NH2705 +{ + public class ItemBase + { + public virtual int Id { get; set; } + public virtual SubItemBase SubItem { get; set; } + } + + public class ItemWithComponentSubItem : ItemBase {} + + public class ItemWithManyToOneSubItem : ItemBase {} +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/Mappings.hbm.xml 2011-05-16 14:37:27 UTC (rev 5829) @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2705"> + + <class name="ItemBase"> + <id name="Id" type="int"> + <generator class="native" /> + </id> + <joined-subclass name="ItemWithComponentSubItem"> + <key column="ItemBase_id"/> + <component name="SubItem" class="SubItemComponent"> + <property name="Name" /> + <many-to-one class="SubItemDetails" name="Details" column="SubItemDetails_id"/> + </component> + </joined-subclass> + <joined-subclass name="ItemWithManyToOneSubItem"> + <key column="ItemBase_id"/> + <many-to-one class="SubItemEntity" name="SubItem" column="SubItem_id"/> + </joined-subclass> + </class> + + <class name="SubItemEntity"> + <id name="Id" type="int"> + <generator class="native" /> + </id> + <property name="Name" /> + <many-to-one class="SubItemDetails" name="Details" column="SubItemDetails_id" /> + </class> + + <class name="SubItemDetails"> + <id name="Id" type="int"> + <generator class="native" /> + </id> + <property name="Name" /> + </class> +</hibernate-mapping> + Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/SubItemBase.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/SubItemBase.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/SubItemBase.cs 2011-05-16 14:37:27 UTC (rev 5829) @@ -0,0 +1,15 @@ +namespace NHibernate.Test.NHSpecificTest.NH2705 +{ + public class SubItemBase + { + public virtual string Name { get; set; } + public virtual SubItemDetails Details { get; set; } + } + + public class SubItemComponent : SubItemBase {} + + public class SubItemEntity : SubItemBase + { + public virtual int Id { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/SubItemDetails.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/SubItemDetails.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/SubItemDetails.cs 2011-05-16 14:37:27 UTC (rev 5829) @@ -0,0 +1,8 @@ +namespace NHibernate.Test.NHSpecificTest.NH2705 +{ + public class SubItemDetails + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/Test.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/Test.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2705/Test.cs 2011-05-16 14:37:27 UTC (rev 5829) @@ -0,0 +1,74 @@ +using System.Collections.Generic; +using System.Linq; +using NHibernate.Linq; +using NUnit.Framework; +using SharpTestsEx; + +// ReSharper disable InconsistentNaming + +namespace NHibernate.Test.NHSpecificTest.NH2705 +{ + [TestFixture, Ignore("Not fixed yet")] + public class Test : BugTestCase + { + private static IEnumerable<T> GetAndFetch<T>(string name, ISession session) where T : ItemBase + { + // this is a valid abstraction, the calling code should be able to ask that a property is eagerly loaded/available + // without having to know how it is mapped + return session.Query<T>() + .Fetch(p => p.SubItem).ThenFetch(p => p.Details) // should be able to fetch .Details when used with components (NH2615) + .Where(p => p.SubItem.Name == name).ToList(); + } + + [Test] + public void Fetch_OnComponent_ShouldNotThrow() + { + using (ISession s = OpenSession()) + { + Executing.This(() => GetAndFetch<ItemWithComponentSubItem>("hello", s)).Should().NotThrow(); + } + } + + [Test] + public void Fetch_OnManyToOne_ShouldNotThrow() + { + using (ISession s = OpenSession()) + { + Executing.This(() => GetAndFetch<ItemWithManyToOneSubItem>("hello", s)).Should().NotThrow(); + } + } + + [Test] + public void HqlQueryWithFetch_WhenDerivedClassesUseComponentAndManyToOne_DoesNotGenerateInvalidSql() + { + using (ISession s = OpenSession()) + { + using (var log = new SqlLogSpy()) + { + Executing.This(() => s.CreateQuery("from ItemBase i left join fetch i.SubItem").List() + ).Should().NotThrow(); + } + } + } + + [Test] + public void LinqQueryWithFetch_WhenDerivedClassesUseComponentAndManyToOne_DoesNotGenerateInvalidSql() + { + using (ISession s = OpenSession()) + { + using (var log = new SqlLogSpy()) + { + Executing.This(() => s.Query<ItemBase>() + .Fetch(p => p.SubItem).ToList() + ).Should().NotThrow(); + + + // fetching second level properties should work too + Executing.This(() => s.Query<ItemBase>() + .Fetch(p => p.SubItem).ThenFetch(p => p.Details).ToList() + ).Should().NotThrow(); + } + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-16 02:07:33 UTC (rev 5828) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-16 14:37:27 UTC (rev 5829) @@ -832,6 +832,10 @@ <Compile Include="NHSpecificTest\NH2697\ArticleGroupItem.cs" /> <Compile Include="NHSpecificTest\NH2697\ArticleItem.cs" /> <Compile Include="NHSpecificTest\NH2697\SampleTest.cs" /> + <Compile Include="NHSpecificTest\NH2705\ItemBase.cs" /> + <Compile Include="NHSpecificTest\NH2705\SubItemBase.cs" /> + <Compile Include="NHSpecificTest\NH2705\SubItemDetails.cs" /> + <Compile Include="NHSpecificTest\NH2705\Test.cs" /> <Compile Include="NHSpecificTest\Properties\CompositePropertyRefTest.cs" /> <Compile Include="NHSpecificTest\Properties\DynamicEntityTest.cs" /> <Compile Include="NHSpecificTest\Properties\Model.cs" /> @@ -2674,6 +2678,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2705\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2546\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2697\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1642\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-05-17 22:33:23
|
Revision: 5836 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5836&view=rev Author: fabiomaulo Date: 2011-05-17 22:33:17 +0000 (Tue, 17 May 2011) Log Message: ----------- passing test for NH-2404 (was fixed fixing a similar case few days ago) Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/TestEntity.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/TestEntityDto.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/Fixture.cs 2011-05-17 22:33:17 UTC (rev 5836) @@ -0,0 +1,95 @@ +using System.Linq; +using NHibernate.Impl; +using NHibernate.Linq; +using NHibernate.Transform; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2404 +{ + [TestFixture] + public class Fixture : BugTestCase + { + protected override void OnSetUp() + { + base.OnSetUp(); + using (var session = this.OpenSession()) + using (var tx = session.BeginTransaction()) + { + var entity = new TestEntity(); + entity.Id = 1; + entity.Name = "Test Entity"; + session.Save(entity); + + var entity1 = new TestEntity(); + entity1.Id = 2; + entity1.Name = "Test Entity"; + session.Save(entity1); + + tx.Commit(); + } + } + + protected override void OnTearDown() + { + base.OnTearDown(); + using (ISession session = this.OpenSession()) + { + string hql = "from System.Object"; + session.Delete(hql); + session.Flush(); + } + } + + [Test] + public void ProjectionsShouldWorkWithLinqProviderAndFutures() + { + using (ISession session = this.OpenSession()) + { + if (((SessionFactoryImpl)sessions).ConnectionProvider.Driver.SupportsMultipleQueries == false) + { + Assert.Ignore("Not applicable for dialects that do not support multiple queries"); + } + + var query1 = ( + from entity in session.Query<TestEntity>() + select new TestEntityDto {EntityId = entity.Id, EntityName = entity.Name} + ).ToList(); + + Assert.AreEqual(2, query1.Count()); + + var query2 = ( + from entity in session.Query<TestEntity>() + select new TestEntityDto { EntityId = entity.Id, EntityName = entity.Name } + ).ToFuture(); + + Assert.AreEqual(2, query2.Count()); + } + } + + [Test] + public void ProjectionsShouldWorkWithHqlAndFutures() + { + using (ISession session = this.OpenSession()) + { + if (((SessionFactoryImpl)sessions).ConnectionProvider.Driver.SupportsMultipleQueries == false) + { + Assert.Ignore("Not applicable for dialects that do not support multiple queries"); + } + + var query1 = + session.CreateQuery("select e.Id as EntityId, e.Name as EntityName from TestEntity e").SetResultTransformer( + Transformers.AliasToBean(typeof (TestEntityDto))) + .List<TestEntityDto>(); + + Assert.AreEqual(2, query1.Count()); + + var query2 = + session.CreateQuery("select e.Id as EntityId, e.Name as EntityName from TestEntity e").SetResultTransformer( + Transformers.AliasToBean(typeof (TestEntityDto))) + .Future<TestEntityDto>(); + + Assert.AreEqual(2, query2.Count()); + } + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/Mappings.hbm.xml 2011-05-17 22:33:17 UTC (rev 5836) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2404" default-access="field.camelcase" + default-lazy="false"> + <class name="TestEntity"> + <id name="Id"> + <generator class="assigned" /> + </id> + <property name="Name" /> + </class> +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/TestEntity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/TestEntity.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/TestEntity.cs 2011-05-17 22:33:17 UTC (rev 5836) @@ -0,0 +1,20 @@ +namespace NHibernate.Test.NHSpecificTest.NH2404 +{ + public class TestEntity + { + private string name; + private int id; + + public int Id + { + get { return id; } + set { id = value; } + } + + public string Name + { + get { return name; } + set { name = value; } + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/TestEntityDto.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/TestEntityDto.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2404/TestEntityDto.cs 2011-05-17 22:33:17 UTC (rev 5836) @@ -0,0 +1,8 @@ +namespace NHibernate.Test.NHSpecificTest.NH2404 +{ + public class TestEntityDto + { + public int EntityId { get; set; } + public string EntityName { get; set; } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-17 22:15:39 UTC (rev 5835) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-17 22:33:17 UTC (rev 5836) @@ -759,6 +759,9 @@ <Compile Include="NHSpecificTest\NH2394\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2394\PhoneNumber.cs" /> <Compile Include="NHSpecificTest\NH2394\PhoneNumberUserType.cs" /> + <Compile Include="NHSpecificTest\NH2404\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2404\TestEntity.cs" /> + <Compile Include="NHSpecificTest\NH2404\TestEntityDto.cs" /> <Compile Include="NHSpecificTest\NH2409\Contest.cs" /> <Compile Include="NHSpecificTest\NH2409\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2409\Message.cs" /> @@ -2678,6 +2681,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2404\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2705\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2546\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2697\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-05-17 23:07:18
|
Revision: 5837 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5837&view=rev Author: fabiomaulo Date: 2011-05-17 23:07:11 +0000 (Tue, 17 May 2011) Log Message: ----------- No failing test for NH-1845 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1845/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1845/Category.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1845/Fixture.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1845/Category.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1845/Category.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1845/Category.cs 2011-05-17 23:07:11 UTC (rev 5837) @@ -0,0 +1,53 @@ +using System.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH1845 +{ + public class Category + { + private readonly IList<Category> subcategories = new List<Category>(); + + public Category() : this("") {} + + public Category(string name) + { + Name = name; + } + + public virtual int Id { get; set; } + + public virtual string Name { get; set; } + + public virtual Category Parent { get; set; } + + public virtual IList<Category> Subcategories + { + get { return subcategories; } + } + + public virtual void AddSubcategory(Category subcategory) + { + subcategories.Add(subcategory); + subcategory.Parent = this; + } + + public override string ToString() + { + return Name; + } + + public override bool Equals(object obj) + { + var other = obj as Category; + if (other == null) + { + return false; + } + return other.Name == Name; + } + + public override int GetHashCode() + { + return Name.GetHashCode(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1845/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1845/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1845/Fixture.cs 2011-05-17 23:07:11 UTC (rev 5837) @@ -0,0 +1,62 @@ +using NHibernate.Cfg.MappingSchema; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +namespace NHibernate.Test.NHSpecificTest.NH1845 +{ + public class Fixture: TestCaseMappingByCode + { + + protected override HbmMapping GetMappings() + { + var mapper = new ModelMapper(); + mapper.Class<Category>(rc => + { + rc.Id(x=> x.Id, map=> map.Generator(Generators.Native)); + rc.Property(x=> x.Name); + rc.ManyToOne(x=> x.Parent, map=> map.Column("ParentId")); + rc.Bag(x => x.Subcategories, map => + { + map.Access(Accessor.NoSetter); + map.Key(km=> km.Column("ParentId")); + map.Cascade(Mapping.ByCode.Cascade.All.Include(Mapping.ByCode.Cascade.DeleteOrphans)); + }, rel => rel.OneToMany()); + }); + var mappings = mapper.CompileMappingForAllExplicitAddedEntities(); + return mappings; + } + + [Test] + public void LazyLoad_Initialize_AndEvict() + { + Category category = new Category("parent"); + category.AddSubcategory(new Category("child")); + SaveCategory(category); + + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) + { + Category loaded = session.Load<Category>(category.Id); + NHibernateUtil.Initialize(loaded.Subcategories[0]); + session.Evict(loaded); + transaction.Commit(); + Assert.AreEqual("child", loaded.Subcategories[0].Name, "cannot access child"); + } + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) + { + session.CreateQuery("delete from Category").ExecuteUpdate(); + transaction.Commit(); + } + } + + private void SaveCategory(Category category) + { + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) + { + session.SaveOrUpdate(category); + transaction.Commit(); + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-17 22:33:17 UTC (rev 5836) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-17 23:07:11 UTC (rev 5837) @@ -657,6 +657,8 @@ <Compile Include="NHSpecificTest\NH1836\Entity.cs" /> <Compile Include="NHSpecificTest\NH1836\EntityDTO.cs" /> <Compile Include="NHSpecificTest\NH1836\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1845\Category.cs" /> + <Compile Include="NHSpecificTest\NH1845\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1869\Entities.cs" /> <Compile Include="NHSpecificTest\NH1869\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1925\Fixture.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fab...@us...> - 2011-05-20 16:48:35
|
Revision: 5848 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5848&view=rev Author: fabiomaulo Date: 2011-05-20 16:48:28 +0000 (Fri, 20 May 2011) Log Message: ----------- Test for not fixed issue NH-2366 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Model.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Fixture.cs 2011-05-20 16:48:28 UTC (rev 5848) @@ -0,0 +1,54 @@ +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH2366 +{ + [Ignore("Not fixed yet.")] + public class Fixture : BugTestCase + { + protected override void OnSetUp() + { + base.OnSetUp(); + + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) + { + // Note: non-unique values for Value property + session.Save(new Two() { Id = 1, Value = "a" }); + session.Save(new Two() { Id = 2, Value = "b" }); + session.Save(new Two() { Id = 3, Value = "a" }); + transaction.Commit(); + } + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) + { + session.Save(new One() { Id = 1, Value = "a" }); + session.Save(new One() { Id = 2, Value = "a" }); + transaction.Commit(); + } + } + + protected override void OnTearDown() + { + using (ISession session = OpenSession()) + using (ITransaction transaction = session.BeginTransaction()) + { + session.Delete("from One"); + session.Delete("from Two"); + + transaction.Commit(); + } + + base.OnTearDown(); + } + + [Test] + public void Test() + { + using (ISession session = OpenSession()) + { + session.Executing(s=> s.CreateQuery("from One").List()).NotThrows(); + } + } + } +} Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Mappings.hbm.xml 2011-05-20 16:48:28 UTC (rev 5848) @@ -0,0 +1,31 @@ +<hibernate-mapping + xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2366"> + + <class name="One" table="one"> + + <id name="Id" column="o_id_pk"> + <generator class="assigned" /> + </id> + + <property name="Value" column="o_val" /> + + <set name="Twos" lazy="false"> + <key column="t_val" property-ref="Value" not-null="false" /> + <one-to-many class="Two" /> + </set> + + </class> + + <class name="Two" table="two"> + + <id name="Id" column="t_id_pk"> + <generator class="assigned" /> + </id> + + <property name="Value" column="t_val" /> + + </class> + +</hibernate-mapping> Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Model.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Model.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2366/Model.cs 2011-05-20 16:48:28 UTC (rev 5848) @@ -0,0 +1,56 @@ +using System; +using Iesi.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH2366 +{ + public class One + { + private int id; + private string value; + private ISet<Two> twos = new HashedSet<Two>(); + + public virtual int Id + { + get { return id; } + set { id = value; } + } + + public virtual string Value + { + get { return value; } + set { this.value = value; } + } + + public virtual ISet<Two> Twos + { + get { return twos; } + set { twos = value; } + } + + public One() + { + } + } + + public class Two + { + private int id; + private string value; + + public virtual int Id + { + get { return id; } + set { id = value; } + } + + public virtual string Value + { + get { return value; } + set { this.value = value; } + } + + public Two() + { + } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-20 16:10:15 UTC (rev 5847) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-20 16:48:28 UTC (rev 5848) @@ -743,6 +743,8 @@ <Compile Include="NHSpecificTest\NH2362\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2362\Product.cs" /> <Compile Include="NHSpecificTest\NH2362\Supplier.cs" /> + <Compile Include="NHSpecificTest\NH2366\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2366\Model.cs" /> <Compile Include="NHSpecificTest\NH2374\NH2374Fixture.cs" /> <Compile Include="NHSpecificTest\NH2378\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2378\TestEntity.cs" /> @@ -2684,6 +2686,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2366\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2404\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2705\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2546\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-05-23 14:03:20
|
Revision: 5861 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5861&view=rev Author: fabiomaulo Date: 2011-05-23 14:03:12 +0000 (Mon, 23 May 2011) Log Message: ----------- Test for NH-2317 Not fixed Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Domain.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Mappings.hbm.xml Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Domain.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Domain.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Domain.cs 2011-05-23 14:03:12 UTC (rev 5861) @@ -0,0 +1,8 @@ +namespace NHibernate.Test.NHSpecificTest.NH2317 +{ + public class Artist + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Fixture.cs 2011-05-23 14:03:12 UTC (rev 5861) @@ -0,0 +1,48 @@ +using System.Linq; +using NHibernate.Linq; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH2317 +{ + [TestFixture, Ignore("Not fixed yet.")] + public class Fixture : BugTestCase + { + protected override void OnSetUp() + { + base.OnSetUp(); + using (var session = sessions.OpenStatelessSession()) + using (var tx = session.BeginTransaction()) + { + foreach (var artistName in new[] { "Foo", "Bar", "Baz", "Soz", "Tiz", "Fez" }) + { + session.Insert(new Artist { Name = artistName }); + } + tx.Commit(); + } + } + + [Test] + public void QueryShouldWork() + { + using (var session = sessions.OpenSession()) + using(session.BeginTransaction()) + { + var expected = session.CreateQuery("select a.id from Artist a").SetMaxResults(3).List<int>(); + var actual = session.Query<Artist>().Take(3).Select(a => a.Id).ToArray(); + actual.Should().Have.SameValuesAs(expected); + } + } + + protected override void OnTearDown() + { + using(var session = sessions.OpenStatelessSession()) + using (var tx = session.BeginTransaction()) + { + session.CreateQuery("delete Artist").ExecuteUpdate(); + tx.Commit(); + } + base.OnTearDown(); + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2317/Mappings.hbm.xml 2011-05-23 14:03:12 UTC (rev 5861) @@ -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.NHSpecificTest.NH2317"> + + <class name="Artist"> + <id name="Id" type="int"> + <generator class="hilo"/> + </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-05-23 12:59:32 UTC (rev 5860) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-23 14:03:12 UTC (rev 5861) @@ -723,6 +723,8 @@ <Compile Include="NHSpecificTest\NH2303\Model.cs" /> <Compile Include="NHSpecificTest\NH2313\Domain.cs" /> <Compile Include="NHSpecificTest\NH2313\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2317\Domain.cs" /> + <Compile Include="NHSpecificTest\NH2317\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2322\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2322\Model.cs" /> <Compile Include="NHSpecificTest\NH2322\PostUpdateEventListener.cs" /> @@ -2688,6 +2690,7 @@ <EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" /> </ItemGroup> <ItemGroup> + <EmbeddedResource Include="NHSpecificTest\NH2317\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2366\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2404\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2705\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-05-23 20:10:48
|
Revision: 5865 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5865&view=rev Author: fabiomaulo Date: 2011-05-23 20:10:41 +0000 (Mon, 23 May 2011) Log Message: ----------- Not fixed test fro NH-2477 Modified Paths: -------------- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2477/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2477/Fixture.cs Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2477/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2477/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2477/Fixture.cs 2011-05-23 20:10:41 UTC (rev 5865) @@ -0,0 +1,72 @@ +using System; +using System.Linq.Dynamic; +using NHibernate.Cfg.MappingSchema; +using NHibernate.Linq; +using NHibernate.Mapping.ByCode; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH2477 +{ + public class Something + { + public virtual int Id { get; set; } + public virtual string Name { get; set; } + } + + [TestFixture, Ignore("Not fixed yet.")] + public class Fixture: TestCaseMappingByCode + { + protected override HbmMapping GetMappings() + { + var mapper = new ConventionModelMapper(); + mapper.BeforeMapClass += (t, mi, map)=> map.Id(idm=> idm.Generator(Generators.Native)); + return mapper.CompileMappingFor(new[] { typeof(Something) }); + } + + private class Scenario : IDisposable + { + private readonly ISessionFactory factory; + + public Scenario(ISessionFactory factory) + { + this.factory = factory; + using (var session = factory.OpenSession()) + using (session.BeginTransaction()) + { + for (int i = 0; i < 5; i++) + { + session.Persist(new Something { Name = i.ToString() }); + } + session.Transaction.Commit(); + } + } + + public void Dispose() + { + using (var session = factory.OpenSession()) + using (session.BeginTransaction()) + { + session.CreateQuery("delete from Something").ExecuteUpdate(); + session.Transaction.Commit(); + } + } + } + + [Test] + public void WhenTakeBeforeCountShouldApplyTake() + { + using (new Scenario(Sfi)) + { + using (var session = sessions.OpenSession()) + using (session.BeginTransaction()) + { + // This is another case where we have to work with subqueries and we have to write a specific query rewriter for Skip/Take instead flat the query in QueryReferenceExpressionFlattener + //var actual = session.CreateQuery("select count(s) from Something s where s in (from Something take 3)").UniqueResult<long>(); + var actual = session.Query<Something>().Take(3).Count(); + actual.Should().Be(3); + } + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-23 19:10:23 UTC (rev 5864) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2011-05-23 20:10:41 UTC (rev 5865) @@ -793,6 +793,7 @@ <Compile Include="NHSpecificTest\NH2470\Class1Class2Tests.cs" /> <Compile Include="NHSpecificTest\NH2470\DomainObject.cs" /> <Compile Include="NHSpecificTest\NH2470\DTO.cs" /> + <Compile Include="NHSpecificTest\NH2477\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2484\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2484\Model.cs" /> <Compile Include="NHSpecificTest\NH2488\Fixture.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |