|
From: <ste...@us...> - 2010-03-17 14:18:10
|
Revision: 4958
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4958&view=rev
Author: steverstrong
Date: 2010-03-17 14:18:03 +0000 (Wed, 17 Mar 2010)
Log Message:
-----------
Added support for DateTime.Date in Linq query, and tweaked ByteCode test to try to resolve buggered TeamCity server
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs
trunk/nhibernate/src/NHibernate/Linq/Functions/DateTimeGenerator.cs
trunk/nhibernate/src/NHibernate.ByteCode.Castle.Tests/TestCase.cs
trunk/nhibernate/src/NHibernate.Test/App.config
trunk/nhibernate/src/NHibernate.Test/Linq/LinqTestCase.cs
trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
Added Paths:
-----------
trunk/nhibernate/src/NHibernate.Test/Linq/DateTimeTests.cs
Modified: trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs 2010-03-17 12:41:45 UTC (rev 4957)
+++ trunk/nhibernate/src/NHibernate/Dialect/MsSql2000Dialect.cs 2010-03-17 14:18:03 UTC (rev 4958)
@@ -116,7 +116,8 @@
RegisterFunction("day", new SQLFunctionTemplate(NHibernateUtil.Int32, "datepart(day, ?1)"));
RegisterFunction("month", new SQLFunctionTemplate(NHibernateUtil.Int32, "datepart(month, ?1)"));
RegisterFunction("year", new SQLFunctionTemplate(NHibernateUtil.Int32, "datepart(year, ?1)"));
- RegisterFunction("concat", new VarArgsSQLFunction(NHibernateUtil.String, "(", "+", ")"));
+ RegisterFunction("date", new SQLFunctionTemplate(NHibernateUtil.Date, "dateadd(dd, 0, datediff(dd, 0, ?1))"));
+ RegisterFunction("concat", new VarArgsSQLFunction(NHibernateUtil.String, "(", "+", ")"));
RegisterFunction("digits", new StandardSQLFunction("digits", NHibernateUtil.String));
RegisterFunction("chr", new StandardSQLFunction("chr", NHibernateUtil.Character));
RegisterFunction("upper", new StandardSQLFunction("upper"));
Modified: trunk/nhibernate/src/NHibernate/Linq/Functions/DateTimeGenerator.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Linq/Functions/DateTimeGenerator.cs 2010-03-17 12:41:45 UTC (rev 4957)
+++ trunk/nhibernate/src/NHibernate/Linq/Functions/DateTimeGenerator.cs 2010-03-17 14:18:03 UTC (rev 4958)
@@ -25,6 +25,7 @@
ReflectionHelper.GetProperty((DateTime x) => x.Hour),
ReflectionHelper.GetProperty((DateTime x) => x.Minute),
ReflectionHelper.GetProperty((DateTime x) => x.Second),
+ ReflectionHelper.GetProperty((DateTime x) => x.Date),
};
}
Modified: trunk/nhibernate/src/NHibernate.ByteCode.Castle.Tests/TestCase.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.ByteCode.Castle.Tests/TestCase.cs 2010-03-17 12:41:45 UTC (rev 4957)
+++ trunk/nhibernate/src/NHibernate.ByteCode.Castle.Tests/TestCase.cs 2010-03-17 14:18:03 UTC (rev 4958)
@@ -197,7 +197,8 @@
private void CreateSchema()
{
- new SchemaExport(cfg).Create(OutputDdl, true);
+ new SchemaExport(cfg).Drop(OutputDdl, true);
+ new SchemaExport(cfg).Create(OutputDdl, true);
}
private void DropSchema()
Modified: trunk/nhibernate/src/NHibernate.Test/App.config
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/App.config 2010-03-17 12:41:45 UTC (rev 4957)
+++ trunk/nhibernate/src/NHibernate.Test/App.config 2010-03-17 14:18:03 UTC (rev 4958)
@@ -126,7 +126,7 @@
</logger>
<logger name="NHibernate.SQL">
- <level value="DEBUG" />
+ <level value="OFF" />
</logger>
<logger name="NHibernate.AdoNet.AbstractBatcher">
Added: trunk/nhibernate/src/NHibernate.Test/Linq/DateTimeTests.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Linq/DateTimeTests.cs (rev 0)
+++ trunk/nhibernate/src/NHibernate.Test/Linq/DateTimeTests.cs 2010-03-17 14:18:03 UTC (rev 4958)
@@ -0,0 +1,50 @@
+using System;
+using System.Linq;
+using NUnit.Framework;
+
+namespace NHibernate.Test.Linq
+{
+ [TestFixture]
+ public class DateTimeTests : LinqTestCase
+ {
+ [Test]
+ public void CanQueryByYear()
+ {
+ var x = (from o in db.Orders
+ where o.OrderDate.Value.Year == 1998
+ select o).ToList();
+
+ Assert.AreEqual(270, x.Count());
+ }
+
+ [Test]
+ public void CanQueryByDate()
+ {
+ var x = (from o in db.Orders
+ where o.OrderDate.Value.Date == new DateTime(1998, 02, 26)
+ select o).ToList();
+
+ Assert.AreEqual(6, x.Count());
+ }
+
+ [Test]
+ public void CanQueryByDateTime()
+ {
+ var x = (from o in db.Orders
+ where o.OrderDate.Value == new DateTime(1998, 02, 26)
+ select o).ToList();
+
+ Assert.AreEqual(5, x.Count());
+ }
+
+ [Test]
+ public void CanQueryByDateTime2()
+ {
+ var x = (from o in db.Orders
+ where o.OrderDate.Value == new DateTime(1998, 02, 26, 0, 1, 0)
+ select o).ToList();
+
+ Assert.AreEqual(1, x.Count());
+ }
+ }
+}
Modified: trunk/nhibernate/src/NHibernate.Test/Linq/LinqTestCase.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Linq/LinqTestCase.cs 2010-03-17 12:41:45 UTC (rev 4957)
+++ trunk/nhibernate/src/NHibernate.Test/Linq/LinqTestCase.cs 2010-03-17 14:18:03 UTC (rev 4958)
@@ -1208,7 +1208,7 @@
order = new Order { OrderId = 10905, Customer = customers.Where(c => c.CompanyName == "Wellington Importadora").First(), Employee = employees.Where(e => e.LastName == "Dodsworth").First(), OrderDate = DateTime.Parse("Feb 24 1998 12:00AM"), RequiredDate = DateTime.Parse("Mar 24 1998 12:00AM"), ShippingDate = DateTime.Parse("Mar 6 1998 12:00AM"), Shipper = shippers.Where(s => s.CompanyName == "United Package").First(), Freight = 13.72M, ShippedTo = "Wellington Importadora",ShippingAddress = new Address("Rua do Mercado, 12", "Resende", "SP", "08737-363", "Brazil", null, null) }; session.Insert(order); orders.Add(order);
order = new Order { OrderId = 10906, Customer = customers.Where(c => c.CompanyName == "Wolski Zajazd").First(), Employee = employees.Where(e => e.LastName == "Peacock").First(), OrderDate = DateTime.Parse("Feb 25 1998 12:00AM"), RequiredDate = DateTime.Parse("Mar 11 1998 12:00AM"), ShippingDate = DateTime.Parse("Mar 3 1998 12:00AM"), Shipper = shippers.Where(s => s.CompanyName == "Federal Shipping").First(), Freight = 26.29M, ShippedTo = "Wolski Zajazd",ShippingAddress = new Address("ul. Filtrowa 68", "Warszawa", "null", "01-012", "Poland", null, null) }; session.Insert(order); orders.Add(order);
order = new Order { OrderId = 10907, Customer = customers.Where(c => c.CompanyName == "Spécialités du monde").First(), Employee = employees.Where(e => e.LastName == "Suyama").First(), OrderDate = DateTime.Parse("Feb 25 1998 12:00AM"), RequiredDate = DateTime.Parse("Mar 25 1998 12:00AM"), ShippingDate = DateTime.Parse("Feb 27 1998 12:00AM"), Shipper = shippers.Where(s => s.CompanyName == "Federal Shipping").First(), Freight = 9.19M, ShippedTo = "Spécialités du monde",ShippingAddress = new Address("25, rue Lauriston", "Paris", "null", "75016", "France", null, null) }; session.Insert(order); orders.Add(order);
- order = new Order { OrderId = 10908, Customer = customers.Where(c => c.CompanyName == "Reggiani Caseifici").First(), Employee = employees.Where(e => e.LastName == "Peacock").First(), OrderDate = DateTime.Parse("Feb 26 1998 12:00AM"), RequiredDate = DateTime.Parse("Mar 26 1998 12:00AM"), ShippingDate = DateTime.Parse("Mar 6 1998 12:00AM"), Shipper = shippers.Where(s => s.CompanyName == "United Package").First(), Freight = 32.96M, ShippedTo = "Reggiani Caseifici",ShippingAddress = new Address("Strada Provinciale 124", "Reggio Emilia", "null", "42100", "Italy", null, null) }; session.Insert(order); orders.Add(order);
+ order = new Order { OrderId = 10908, Customer = customers.Where(c => c.CompanyName == "Reggiani Caseifici").First(), Employee = employees.Where(e => e.LastName == "Peacock").First(), OrderDate = DateTime.Parse("Feb 26 1998 12:01AM"), RequiredDate = DateTime.Parse("Mar 26 1998 12:00AM"), ShippingDate = DateTime.Parse("Mar 6 1998 12:00AM"), Shipper = shippers.Where(s => s.CompanyName == "United Package").First(), Freight = 32.96M, ShippedTo = "Reggiani Caseifici",ShippingAddress = new Address("Strada Provinciale 124", "Reggio Emilia", "null", "42100", "Italy", null, null) }; session.Insert(order); orders.Add(order);
order = new Order { OrderId = 10909, Customer = customers.Where(c => c.CompanyName == "Santé Gourmet").First(), Employee = employees.Where(e => e.LastName == "Davolio").First(), OrderDate = DateTime.Parse("Feb 26 1998 12:00AM"), RequiredDate = DateTime.Parse("Mar 26 1998 12:00AM"), ShippingDate = DateTime.Parse("Mar 10 1998 12:00AM"), Shipper = shippers.Where(s => s.CompanyName == "United Package").First(), Freight = 53.05M, ShippedTo = "Santé Gourmet",ShippingAddress = new Address("Erling Skakkes gate 78", "Stavern", "null", "4110", "Norway", null, null) }; session.Insert(order); orders.Add(order);
order = new Order { OrderId = 10910, Customer = customers.Where(c => c.CompanyName == "Wilman Kala").First(), Employee = employees.Where(e => e.LastName == "Davolio").First(), OrderDate = DateTime.Parse("Feb 26 1998 12:00AM"), RequiredDate = DateTime.Parse("Mar 26 1998 12:00AM"), ShippingDate = DateTime.Parse("Mar 4 1998 12:00AM"), Shipper = shippers.Where(s => s.CompanyName == "Federal Shipping").First(), Freight = 38.11M, ShippedTo = "Wilman Kala",ShippingAddress = new Address("Keskuskatu 45", "Helsinki", "null", "21240", "Finland", null, null) }; session.Insert(order); orders.Add(order);
order = new Order { OrderId = 10911, Customer = customers.Where(c => c.CompanyName == "Godos Cocina Típica").First(), Employee = employees.Where(e => e.LastName == "Leverling").First(), OrderDate = DateTime.Parse("Feb 26 1998 12:00AM"), RequiredDate = DateTime.Parse("Mar 26 1998 12:00AM"), ShippingDate = DateTime.Parse("Mar 5 1998 12:00AM"), Shipper = shippers.Where(s => s.CompanyName == "Speedy Express").First(), Freight = 38.19M, ShippedTo = "Godos Cocina Típica",ShippingAddress = new Address("C/ Romero, 33", "Sevilla", "null", "41101", "Spain", null, null) }; session.Insert(order); orders.Add(order);
Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-03-17 12:41:45 UTC (rev 4957)
+++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-03-17 14:18:03 UTC (rev 4958)
@@ -382,6 +382,7 @@
<Compile Include="Linq\BinaryBooleanExpressionTests.cs" />
<Compile Include="Linq\BinaryExpressionOrdererTests.cs" />
<Compile Include="Linq\CollectionAssert.cs" />
+ <Compile Include="Linq\DateTimeTests.cs" />
<Compile Include="Linq\DynamicQueryTests.cs" />
<Compile Include="Linq\EagerLoadTests.cs" />
<Compile Include="Linq\Entities\Address.cs" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|