/src/NHibernate.Test/Async/NHSpecificTest/NH3961/DateParametersComparedTo.cs
https://github.com/RogerKratz/nhibernate-core · C# · 295 lines · 232 code · 37 blank · 26 comment · 14 complexity · 3091461b8dab19eb6035c475b26e198f MD5 · raw file
- //------------------------------------------------------------------------------
- // <auto-generated>
- // This code was generated by AsyncGenerator.
- //
- // Changes to this file may cause incorrect behavior and will be lost if
- // the code is regenerated.
- // </auto-generated>
- //------------------------------------------------------------------------------
- using System;
- using System.Globalization;
- using System.Linq;
- using NHibernate.Linq;
- using NUnit.Framework;
- namespace NHibernate.Test.NHSpecificTest.NH3961
- {
- using System.Threading.Tasks;
- [TestFixture]
- public class DateParametersComparedToAsync : BugTestCase
- {
- private DateTime _testDate;
- private CultureInfo _backupCulture;
- private CultureInfo _backupUICulture;
- private readonly CultureInfo _testCulture = CultureInfo.GetCultureInfo("fr-FR");
- protected override void OnSetUp()
- {
- using (ISession session = OpenSession())
- using (ITransaction transaction = session.BeginTransaction())
- {
- // day > 12 for ensuring a mdy/dmy mix-up would cause a failure.
- _testDate = new DateTime(2017, 03, 15);
- var e1 = new Entity { Name = "Bob", NullableDateTime = _testDate, NonNullableDateTime = _testDate };
- session.Save(e1);
- var e2 = new Entity { Name = "Sally", NullableDateTime = _testDate.AddDays(1), NonNullableDateTime = _testDate.AddDays(1) };
- session.Save(e2);
- session.Flush();
- transaction.Commit();
- }
- _backupCulture = CultureInfo.CurrentCulture;
- _backupUICulture = CultureInfo.CurrentUICulture;
- // "CultureInfo.CurrentCulture =": Fx 4.6 only; affect trough Thread.CurrentThread instead if in need of supporting a previous Fx.
- // This test needs a culture using a dmy date format. If the test system does not support fr-FR, try find another one...
- // This test assumes the SQL user language is set as English, otherwise it may not showcase the failure.
- CultureInfo.CurrentCulture = _testCulture;
- CultureInfo.CurrentUICulture = _testCulture;
- }
- protected override void OnTearDown()
- {
- using (ISession session = OpenSession())
- using (ITransaction transaction = session.BeginTransaction())
- {
- session.Delete("from System.Object");
- session.Flush();
- transaction.Commit();
- }
- CultureInfo.CurrentCulture = _backupCulture;
- CultureInfo.CurrentUICulture = _backupUICulture;
- }
- // Non-reg test case
- [Test]
- public async Task NonNullableMappedAsDateShouldBeCultureAgnosticAsync()
- {
- using (ISession session = OpenSession())
- using (session.BeginTransaction())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NonNullableDateTime == _testDate.MappedAs(NHibernateUtil.Date))
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- }
- }
- // Non-reg test case
- [Test]
- public async Task NonNullableMappedAsDateShouldIgnoreTimeAsync()
- {
- using (ISession session = OpenSession())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NonNullableDateTime == _testDate.AddMinutes(10).MappedAs(NHibernateUtil.Date))
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- }
- }
- // Non-reg test case
- [Test]
- public async Task NonNullableMappedAsDateTimeShouldBeCultureAgnosticAsync()
- {
- using (ISession session = OpenSession())
- using (session.BeginTransaction())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NonNullableDateTime == _testDate.MappedAs(NHibernateUtil.DateTime))
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- }
- }
- // Non-reg test case
- [Test]
- [Obsolete]
- public async Task NonNullableMappedAsTimestampShouldBeCultureAgnosticAsync()
- {
- using (ISession session = OpenSession())
- using (session.BeginTransaction())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NonNullableDateTime == _testDate.MappedAs(NHibernateUtil.Timestamp))
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- }
- }
- // Non-reg test case
- [Test]
- public async Task NonNullableParameterValueShouldNotBeCachedWithMappedAsAndAsync()
- {
- // Dodges the query parameter formatting bug for showcasing the parameter value bug
- CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
- CultureInfo.CurrentUICulture = CultureInfo.CurrentCulture;
- try
- {
- using (ISession session = OpenSession())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NonNullableDateTime == _testDate.MappedAs(NHibernateUtil.DateTime))
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- var testDate = _testDate.AddMinutes(10);
- result = await (session.Query<Entity>()
- .Where(e => e.NonNullableDateTime == testDate.MappedAs(NHibernateUtil.DateTime))
- .ToListAsync());
- CollectionAssert.IsEmpty(result);
- }
- }
- finally
- {
- CultureInfo.CurrentCulture = _testCulture;
- CultureInfo.CurrentUICulture = _testCulture;
- }
- }
- // Non-reg test case
- [Test]
- public async Task NonNullableShouldBeCultureAgnosticAsync()
- {
- using (ISession session = OpenSession())
- using (session.BeginTransaction())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NonNullableDateTime == _testDate)
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- }
- }
- // Failing test case till NH-3961 is fixed
- [Test]
- public async Task NullableMappedAsDateShouldBeCultureAgnosticAsync()
- {
- using (ISession session = OpenSession())
- using (session.BeginTransaction())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NullableDateTime == _testDate.MappedAs(NHibernateUtil.Date))
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- }
- }
- // Failing test case till NH-3961 is fixed
- [Test]
- public async Task NullableMappedAsDateShouldIgnoreTimeAsync()
- {
- var testDate = _testDate.AddMinutes(10);
- using (ISession session = OpenSession())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NullableDateTime == testDate.MappedAs(NHibernateUtil.Date))
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- }
- }
- // Failing test case till NH-3961 is fixed
- [Test]
- public async Task NullableMappedAsDateTimeShouldBeCultureAgnosticAsync()
- {
- using (ISession session = OpenSession())
- using (session.BeginTransaction())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NullableDateTime == _testDate.MappedAs(NHibernateUtil.DateTime))
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- }
- }
- // Failing test case till NH-3961 is fixed
- [Test]
- [Obsolete]
- public async Task NullableMappedAsTimestampShouldBeCultureAgnosticAsync()
- {
- using (ISession session = OpenSession())
- using (session.BeginTransaction())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NullableDateTime == _testDate.MappedAs(NHibernateUtil.Timestamp))
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- }
- }
- // Failing test case till NH-3961 is fixed
- [Test]
- public async Task NullableParameterValueShouldNotBeCachedWithMappedAsAsync()
- {
- // Dodges the query parameter formatting bug for showcasing the parameter value bug
- CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
- CultureInfo.CurrentUICulture = CultureInfo.CurrentCulture;
- try
- {
- using (ISession session = OpenSession())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NullableDateTime == _testDate.MappedAs(NHibernateUtil.DateTime))
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- var testDate = _testDate.AddMinutes(10);
- result = await (session.Query<Entity>()
- .Where(e => e.NullableDateTime == testDate.MappedAs(NHibernateUtil.DateTime))
- .ToListAsync());
- CollectionAssert.IsEmpty(result);
- }
- }
- finally
- {
- CultureInfo.CurrentCulture = _testCulture;
- CultureInfo.CurrentUICulture = _testCulture;
- }
- }
- // Non-reg test case
- [Test]
- public async Task NullableShouldBeCultureAgnosticAsync()
- {
- using (ISession session = OpenSession())
- using (session.BeginTransaction())
- {
- var result = await (session.Query<Entity>()
- .Where(e => e.NullableDateTime == _testDate)
- .ToListAsync());
- Assert.AreEqual(1, result.Count);
- Assert.AreEqual("Bob", result[0].Name);
- }
- }
- }
- }