From: <fab...@us...> - 2010-10-14 16:42:45
|
Revision: 5251 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5251&view=rev Author: fabiomaulo Date: 2010-10-14 16:42:37 +0000 (Thu, 14 Oct 2010) Log Message: ----------- Apply NH-2378 (by Juan Pedro Elizalde) Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeNode.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/Fixture.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/Mappings.hbm.xml trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/TestEntity.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/TestEntityDto.cs Modified: trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeNode.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeNode.cs 2010-10-13 12:55:16 UTC (rev 5250) +++ trunk/nhibernate/src/NHibernate/Hql/Ast/HqlTreeNode.cs 2010-10-14 16:42:37 UTC (rev 5251) @@ -200,7 +200,10 @@ case TypeCode.Boolean: SetText("bool"); break; - case TypeCode.Int32: + case TypeCode.Int16: + SetText("short"); + break; + case TypeCode.Int32: SetText("integer"); break; case TypeCode.Int64: Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/Fixture.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/Fixture.cs 2010-10-14 16:42:37 UTC (rev 5251) @@ -0,0 +1,71 @@ +using System.Linq; +using NHibernate.Linq; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH2378 +{ + [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"; + entity.TestPerson = new Person { Id = 1, Name = "TestUser" }; + session.Save(entity); + + var entity1 = new TestEntity(); + entity1.Id = 2; + entity1.Name = "Test Entity"; + entity1.TestPerson = new Person { Id = 2, Name = "TestUser" }; + 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 ShortEntityCanBeQueryCorrectlyUsingLinqProvider() + { + using (ISession session = this.OpenSession()) + { + IQueryable<TestEntity> query = session.Query<TestEntity>(); + IQueryable<TestEntityDto> list = query.Select(o => new TestEntityDto + { + EntityId = o.Id, + EntityName = o.Name, + PersonId = + (o.TestPerson != null) + ? o.TestPerson.Id + : (short) 0, + PersonName = + (o.TestPerson != null) + ? o.TestPerson.Name + : string.Empty + }); + + IQueryable<TestEntityDto> m = list.Where(o => o.PersonId == 2); + + + Assert.AreEqual(1, m.Count()); + } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/Mappings.hbm.xml =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/Mappings.hbm.xml (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/Mappings.hbm.xml 2010-10-14 16:42:37 UTC (rev 5251) @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH2378" default-access="field.camelcase" + default-lazy="false"> + <class name="TestEntity"> + <id name="Id"> + <generator class="assigned" /> + </id> + <property name="Name" /> + + <many-to-one name="TestPerson" cascade="save-update"> + <column name="PersonId"/> + </many-to-one> + + </class> + + <class name="Person"> + <id name="Id"> + <generator class="assigned" /> + </id> + <property name="Name" /> + </class> +</hibernate-mapping> \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/TestEntity.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/TestEntity.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/TestEntity.cs 2010-10-14 16:42:37 UTC (rev 5251) @@ -0,0 +1,45 @@ +namespace NHibernate.Test.NHSpecificTest.NH2378 +{ + public class TestEntity + { + private string name; + private int id; + private Person testPerson; + + public int Id + { + get { return id; } + set { id = value; } + } + + public string Name + { + get { return name; } + set { name = value; } + } + + public Person TestPerson + { + get { return testPerson; } + set { testPerson = value; } + } + } + + public class Person + { + private string name; + private short id; + + public short Id + { + get { return id; } + set { id = value; } + } + + public string Name + { + get { return name; } + set { name = value; } + } + } +} \ No newline at end of file Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/TestEntityDto.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/TestEntityDto.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2378/TestEntityDto.cs 2010-10-14 16:42:37 UTC (rev 5251) @@ -0,0 +1,10 @@ +namespace NHibernate.Test.NHSpecificTest.NH2378 +{ + public class TestEntityDto + { + public int EntityId { get; set; } + public string EntityName { get; set; } + public short PersonId { get; set; } + public string PersonName { get; set; } + } +} Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-10-13 12:55:16 UTC (rev 5250) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-10-14 16:42:37 UTC (rev 5251) @@ -533,6 +533,9 @@ <Compile Include="NHSpecificTest\NH2344\Model.cs" /> <Compile Include="NHSpecificTest\NH2361\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2374\NH2374Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2378\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH2378\TestEntity.cs" /> + <Compile Include="NHSpecificTest\NH2378\TestEntityDto.cs" /> <Compile Include="PolymorphicGetAndLoad\Domain.cs" /> <Compile Include="PolymorphicGetAndLoad\PolymorphicGetAndLoadTest.cs" /> <Compile Include="TypesTest\CharClass.cs" /> @@ -2335,6 +2338,7 @@ <EmbeddedResource Include="CollectionTest\NullableValueTypeElementMapFixture.hbm.xml" /> <EmbeddedResource Include="DriverTest\EntityForMs2008.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH2378\Mappings.hbm.xml" /> <EmbeddedResource Include="TypesTest\XDocClass.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2374\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH2328\Mappings.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |