From: <fab...@us...> - 2009-03-14 04:36:09
|
Revision: 4128 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4128&view=rev Author: fabiomaulo Date: 2009-03-14 04:36:00 +0000 (Sat, 14 Mar 2009) Log Message: ----------- Fix NH-1702 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Transform/AliasToBeanResultTransformer.cs trunk/nhibernate/src/NHibernate/Transform/Transformers.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/TransformTests/ trunk/nhibernate/src/NHibernate.Test/TransformTests/AliasToBeanResultTransformerFixture.cs trunk/nhibernate/src/NHibernate.Test/TransformTests/Simple.cs trunk/nhibernate/src/NHibernate.Test/TransformTests/Simple.hbm.xml Modified: trunk/nhibernate/src/NHibernate/Transform/AliasToBeanResultTransformer.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Transform/AliasToBeanResultTransformer.cs 2009-03-14 04:05:26 UTC (rev 4127) +++ trunk/nhibernate/src/NHibernate/Transform/AliasToBeanResultTransformer.cs 2009-03-14 04:36:00 UTC (rev 4128) @@ -62,7 +62,7 @@ } } } - result = Activator.CreateInstance(resultClass); + result = Activator.CreateInstance(resultClass, true); for (int i = 0; i < aliases.Length; i++) { Modified: trunk/nhibernate/src/NHibernate/Transform/Transformers.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Transform/Transformers.cs 2009-03-14 04:05:26 UTC (rev 4127) +++ trunk/nhibernate/src/NHibernate/Transform/Transformers.cs 2009-03-14 04:36:00 UTC (rev 4128) @@ -1,4 +1,3 @@ -using System; using System.Collections; namespace NHibernate.Transform @@ -23,15 +22,20 @@ return new AliasToBeanResultTransformer(target); } - public static readonly IResultTransformer DistinctRootEntity = new DistinctRootEntityResultTransformer(); + public static IResultTransformer AliasToBean<T>() where T: class + { + return AliasToBean(typeof (T)); + } - public static IResultTransformer AliasToBeanConstructor(System.Reflection.ConstructorInfo constructor) - { - return new AliasToBeanConstructorResultTransformer(constructor); - } + public static readonly IResultTransformer DistinctRootEntity = new DistinctRootEntityResultTransformer(); - public static readonly IResultTransformer PassThrough = new PassThroughResultTransformer(); + public static IResultTransformer AliasToBeanConstructor(System.Reflection.ConstructorInfo constructor) + { + return new AliasToBeanConstructorResultTransformer(constructor); + } - public static readonly IResultTransformer RootEntity = new RootEntityResultTransformer(); + public static readonly IResultTransformer PassThrough = new PassThroughResultTransformer(); + + public static readonly IResultTransformer RootEntity = new RootEntityResultTransformer(); } } Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-14 04:05:26 UTC (rev 4127) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-03-14 04:36:00 UTC (rev 4128) @@ -1023,6 +1023,8 @@ <Compile Include="Tools\hbm2ddl\SchemaValidator\Version.cs" /> <Compile Include="TransactionTest\TransactionFixture.cs" /> <Compile Include="TransactionTest\TransactionNotificationFixture.cs" /> + <Compile Include="TransformTests\AliasToBeanResultTransformerFixture.cs" /> + <Compile Include="TransformTests\Simple.cs" /> <Compile Include="TypeParameters\DefaultValueIntegerType.cs" /> <Compile Include="TypeParameters\TypeParameterTest.cs" /> <Compile Include="TypeParameters\Widget.cs" /> @@ -1679,6 +1681,7 @@ <EmbeddedResource Include="Cascade\JobBatch.hbm.xml" /> <EmbeddedResource Include="Deletetransient\Person.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="TransformTests\Simple.hbm.xml" /> <EmbeddedResource Include="VersionTest\Db\MsSQL\ComplexVersioned.hbm.xml" /> <EmbeddedResource Include="Tools\hbm2ddl\SchemaExportTests\WithColumnTag.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1691\Mappings.hbm.xml" /> Added: trunk/nhibernate/src/NHibernate.Test/TransformTests/AliasToBeanResultTransformerFixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TransformTests/AliasToBeanResultTransformerFixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TransformTests/AliasToBeanResultTransformerFixture.cs 2009-03-14 04:36:00 UTC (rev 4128) @@ -0,0 +1,84 @@ +using System.Collections; +using System.Collections.Generic; +using NHibernate.Transform; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; + +namespace NHibernate.Test.TransformTests +{ + [TestFixture] + public class AliasToBeanResultTransformerFixture : TestCase + { + public class WithOutPublicParameterLessCtor + { + private string something; + protected WithOutPublicParameterLessCtor() {} + + public WithOutPublicParameterLessCtor(string something) + { + this.something = something; + } + + public string Something + { + get { return something; } + } + } + + #region Overrides of TestCase + + protected override IList Mappings + { + get { return new[] {"TransformTests.Simple.hbm.xml"}; } + } + + protected override string MappingsAssembly + { + get { return "NHibernate.Test"; } + } + + #endregion + + [Test] + public void WorkWithOutPublicParameterLessCtor() + { + Setup(); + + using (ISession s = OpenSession()) + { + IList<WithOutPublicParameterLessCtor> l = + s.CreateSQLQuery("select s.Name as something from Simple s").SetResultTransformer( + Transformers.AliasToBean<WithOutPublicParameterLessCtor>()).List<WithOutPublicParameterLessCtor>(); + Assert.That(l.Count, Is.EqualTo(2)); + Assert.That(l, Has.All.Not.Null); + } + + Cleanup(); + } + + private void Cleanup() + { + using (ISession s = OpenSession()) + { + using (s.BeginTransaction()) + { + s.Delete("from Simple"); + s.Transaction.Commit(); + } + } + } + + private void Setup() + { + using (ISession s = OpenSession()) + { + using (s.BeginTransaction()) + { + s.Save(new Simple {Name = "Name1"}); + s.Save(new Simple {Name = "Name2"}); + s.Transaction.Commit(); + } + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/TransformTests/Simple.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TransformTests/Simple.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TransformTests/Simple.cs 2009-03-14 04:36:00 UTC (rev 4128) @@ -0,0 +1,7 @@ +namespace NHibernate.Test.TransformTests +{ + public class Simple + { + public virtual string Name { get; set; } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/TransformTests/Simple.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/TransformTests/Simple.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/TransformTests/Simple.hbm.xml 2009-03-14 04:36:00 UTC (rev 4128) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + namespace="NHibernate.Test.TransformTests" + assembly="NHibernate.Test" > + <class name="Simple"> + <id type="int"> + <generator class="native" /> + </id> + <property name="Name" type="string" length="40"/> + </class> +</hibernate-mapping> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |