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