Skip to content

Commit 1aae490

Browse files
Merge pull request nhibernate#642 from fredericDelaporte/NH-4030
NH-4030 - Refactoring future extension methods.
2 parents 02c9f07 + 5b36712 commit 1aae490

13 files changed

+141
-96
lines changed

src/NHibernate.Test/NHSpecificTest/Futures/FallbackFixture.cs renamed to src/NHibernate.Test/Futures/FallbackFixture.cs

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,17 @@
22
using NHibernate.Cfg;
33
using NHibernate.Connection;
44
using NHibernate.Criterion;
5-
using NHibernate.Dialect;
65
using NHibernate.Driver;
76
using NHibernate.Linq;
87
using NUnit.Framework;
98

10-
using Environment=NHibernate.Cfg.Environment;
9+
using Environment = NHibernate.Cfg.Environment;
1110

12-
namespace NHibernate.Test.NHSpecificTest.Futures
11+
namespace NHibernate.Test.Futures
1312
{
1413
public class TestDriverThatDoesntSupportQueryBatching : SqlClientDriver
1514
{
16-
public override bool SupportsMultipleQueries
17-
{
18-
get { return false; }
19-
}
15+
public override bool SupportsMultipleQueries => false;
2016
}
2117

2218
/// <summary>
@@ -31,17 +27,22 @@ public class FallbackFixture : FutureFixture
3127
{
3228
protected override bool AppliesTo(Dialect.Dialect dialect)
3329
{
34-
var cp = ConnectionProviderFactory.NewConnectionProvider(cfg.Properties);
35-
return !cp.Driver.SupportsMultipleQueries;
30+
using (var cp = ConnectionProviderFactory.NewConnectionProvider(cfg.Properties))
31+
{
32+
return !cp.Driver.SupportsMultipleQueries;
33+
}
3634
}
3735

3836
protected override void Configure(Configuration configuration)
3937
{
4038
base.Configure(configuration);
41-
if (Dialect is MsSql2000Dialect)
39+
using (var cp = ConnectionProviderFactory.NewConnectionProvider(cfg.Properties))
4240
{
43-
configuration.Properties[Environment.ConnectionDriver] =
44-
typeof (TestDriverThatDoesntSupportQueryBatching).AssemblyQualifiedName;
41+
if (cp.Driver is SqlClientDriver)
42+
{
43+
configuration.Properties[Environment.ConnectionDriver] =
44+
typeof(TestDriverThatDoesntSupportQueryBatching).AssemblyQualifiedName;
45+
}
4546
}
4647
}
4748

@@ -155,6 +156,21 @@ public void FutureValueOfLinqCanGetSingleEntityWhenQueryBatchingIsNotSupported()
155156
}
156157
}
157158

159+
[Test]
160+
public void FutureValueWithSelectorOfLinqCanGetSingleEntityWhenQueryBatchingIsNotSupported()
161+
{
162+
var personId = CreatePerson();
163+
164+
using (var session = OpenSession())
165+
{
166+
var futurePerson = session
167+
.Query<Person>()
168+
.Where(x => x.Id == personId)
169+
.ToFutureValue(q => q.FirstOrDefault());
170+
Assert.IsNotNull(futurePerson.Value);
171+
}
172+
}
173+
158174
private int CreatePerson()
159175
{
160176
using (var session = Sfi.OpenSession())

src/NHibernate.Test/NHSpecificTest/Futures/FutureCriteriaFixture.cs renamed to src/NHibernate.Test/Futures/FutureCriteriaFixture.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
using System.Linq;
22
using NHibernate.Criterion;
3-
using NHibernate.Impl;
43
using NUnit.Framework;
54

6-
namespace NHibernate.Test.NHSpecificTest.Futures
5+
namespace NHibernate.Test.Futures
76
{
87
[TestFixture]
98
public class FutureCriteriaFixture : FutureFixture

src/NHibernate.Test/NHSpecificTest/Futures/FutureFixture.cs renamed to src/NHibernate.Test/Futures/FutureFixture.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
using System.Collections;
2-
using NHibernate.Driver;
3-
using NHibernate.Impl;
42

53
using NUnit.Framework;
64

7-
namespace NHibernate.Test.NHSpecificTest.Futures
5+
namespace NHibernate.Test.Futures
86
{
97
public abstract class FutureFixture : TestCase
108
{
119
protected override IList Mappings
1210
{
13-
get { return new[] { "NHSpecificTest.Futures.Mappings.hbm.xml" }; }
11+
get { return new[] { "Futures.Mappings.hbm.xml" }; }
1412
}
1513

1614
protected override string MappingsAssembly

src/NHibernate.Test/NHSpecificTest/Futures/FutureQueryFixture.cs renamed to src/NHibernate.Test/Futures/FutureQueryFixture.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
using System.Linq;
22
using NHibernate.Driver;
3-
using NHibernate.Impl;
43
using NUnit.Framework;
54

6-
namespace NHibernate.Test.NHSpecificTest.Futures
5+
namespace NHibernate.Test.Futures
76
{
8-
using System.Collections;
9-
107
[TestFixture]
118
public class FutureQueryFixture : FutureFixture
129
{

src/NHibernate.Test/NHSpecificTest/Futures/FutureQueryOverFixture.cs renamed to src/NHibernate.Test/Futures/FutureQueryOverFixture.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
using System.Linq;
2-
using NHibernate.Criterion;
3-
using NHibernate.Impl;
42
using NUnit.Framework;
53

6-
namespace NHibernate.Test.NHSpecificTest.Futures
4+
namespace NHibernate.Test.Futures
75
{
86
[TestFixture]
97
public class FutureQueryOverFixture : FutureFixture

src/NHibernate.Test/NHSpecificTest/Futures/LinqFutureFixture.cs renamed to src/NHibernate.Test/Futures/LinqFutureFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using NUnit.Framework;
44
using System.Linq;
55

6-
namespace NHibernate.Test.NHSpecificTest.Futures
6+
namespace NHibernate.Test.Futures
77
{
88
[TestFixture]
99
public class LinqFutureFixture : FutureFixture

src/NHibernate.Test/NHSpecificTest/Futures/LinqToFutureValueFixture.cs renamed to src/NHibernate.Test/Futures/LinqToFutureValueFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using NHibernate.Linq;
33
using NUnit.Framework;
44

5-
namespace NHibernate.Test.NHSpecificTest.Futures
5+
namespace NHibernate.Test.Futures
66
{
77
public class LinqToFutureValueFixture : FutureFixture
88
{

src/NHibernate.Test/NHSpecificTest/Futures/Mappings.hbm.xml renamed to src/NHibernate.Test/Futures/Mappings.hbm.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
3-
namespace="NHibernate.Test.NHSpecificTest.Futures"
3+
namespace="NHibernate.Test.Futures"
44
assembly="NHibernate.Test">
55

66
<class name="Person">

src/NHibernate.Test/NHSpecificTest/Futures/Person.cs renamed to src/NHibernate.Test/Futures/Person.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System.Collections.Generic;
22

3-
namespace NHibernate.Test.NHSpecificTest.Futures
3+
namespace NHibernate.Test.Futures
44
{
55
public class Person
66
{

src/NHibernate.Test/NHibernate.Test.csproj

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,14 @@
393393
<Compile Include="FilterTest\Product.cs" />
394394
<Compile Include="FilterTest\Salesperson.cs" />
395395
<Compile Include="FilterTest\TestClass.cs" />
396+
<Compile Include="Futures\FallbackFixture.cs" />
397+
<Compile Include="Futures\FutureCriteriaFixture.cs" />
398+
<Compile Include="Futures\FutureFixture.cs" />
399+
<Compile Include="Futures\FutureQueryFixture.cs" />
400+
<Compile Include="Futures\FutureQueryOverFixture.cs" />
401+
<Compile Include="Futures\LinqFutureFixture.cs" />
402+
<Compile Include="Futures\LinqToFutureValueFixture.cs" />
403+
<Compile Include="Futures\Person.cs" />
396404
<Compile Include="Generatedkeys\ByTrigger\GeneratedIdentityFixture.cs" />
397405
<Compile Include="Generatedkeys\ByTrigger\MyEntity.cs" />
398406
<Compile Include="Generatedkeys\Identity\IdentityGeneratedKeysTest.cs" />
@@ -1002,7 +1010,6 @@
10021010
<Compile Include="NHSpecificTest\NH646\Fixture.cs" />
10031011
<Compile Include="NHSpecificTest\NH3234\Fixture.cs" />
10041012
<Compile Include="NHSpecificTest\NH3234\Domain.cs" />
1005-
<Compile Include="NHSpecificTest\Futures\LinqToFutureValueFixture.cs" />
10061013
<Compile Include="NHSpecificTest\NH2955\Employee.cs" />
10071014
<Compile Include="NHSpecificTest\NH2955\Fixture.cs" />
10081015
<Compile Include="NHSpecificTest\NH3175\Fixture.cs" />
@@ -1073,7 +1080,6 @@
10731080
<Compile Include="NHSpecificTest\EntityNameAndCompositeId\Fixture.cs" />
10741081
<Compile Include="NHSpecificTest\EntityNameAndInheritance\Fixture.cs" />
10751082
<Compile Include="NHSpecificTest\EntityNameWithFullName\Fixture.cs" />
1076-
<Compile Include="NHSpecificTest\Futures\LinqFutureFixture.cs" />
10771083
<Compile Include="NHSpecificTest\NH0000\Entity.cs" />
10781084
<Compile Include="NHSpecificTest\NH0000\Fixture.cs" />
10791085
<Compile Include="NHSpecificTest\NH0000\FixtureByCode.cs" />
@@ -1530,7 +1536,6 @@
15301536
<Compile Include="NHSpecificTest\ElementsEnums\IntEnumsBagPartialNameFixture.cs" />
15311537
<Compile Include="NHSpecificTest\ElementsEnums\IntEnumsBagFixture.cs" />
15321538
<Compile Include="NHSpecificTest\ElementsEnums\Something.cs" />
1533-
<Compile Include="NHSpecificTest\Futures\FutureQueryOverFixture.cs" />
15341539
<Compile Include="NHSpecificTest\ManyToOneFilters20Behaviour\Fixture.cs" />
15351540
<Compile Include="NHSpecificTest\ManyToOneFilters20Behaviour\Model.cs" />
15361541
<Compile Include="NHSpecificTest\NH1255\Domain.cs" />
@@ -1596,8 +1601,6 @@
15961601
<Compile Include="NHSpecificTest\Dates\TimeFixture.cs" />
15971602
<Compile Include="NHSpecificTest\DtcFailures\DtcFailuresFixture.cs" />
15981603
<Compile Include="NHSpecificTest\DtcFailures\Person.cs" />
1599-
<Compile Include="NHSpecificTest\Futures\FallbackFixture.cs" />
1600-
<Compile Include="NHSpecificTest\Futures\FutureFixture.cs" />
16011604
<Compile Include="NHSpecificTest\Logs\LogsFixture.cs" />
16021605
<Compile Include="NHSpecificTest\Logs\Person.cs" />
16031606
<Compile Include="NHSpecificTest\NH1391\Animal.cs" />
@@ -1939,9 +1942,6 @@
19391942
<Compile Include="NHSpecificTest\FileStreamSql2008\VendorCatalog.cs" />
19401943
<Compile Include="NHSpecificTest\FileStreamSql2008\Fixture.cs" />
19411944
<Compile Include="NHSpecificTest\FileStreamSql2008\Convert.cs" />
1942-
<Compile Include="NHSpecificTest\Futures\FutureQueryFixture.cs" />
1943-
<Compile Include="NHSpecificTest\Futures\FutureCriteriaFixture.cs" />
1944-
<Compile Include="NHSpecificTest\Futures\Person.cs" />
19451945
<Compile Include="NHSpecificTest\Dates\AllDates.cs" />
19461946
<Compile Include="NHSpecificTest\Dates\DateTimeOffsetFixture.cs" />
19471947
<Compile Include="NHSpecificTest\NH1274ExportExclude\Home.cs" />
@@ -3282,6 +3282,7 @@
32823282
<EmbeddedResource Include="NHSpecificTest\NH1291AnonExample\Mappings.hbm.xml" />
32833283
</ItemGroup>
32843284
<ItemGroup>
3285+
<EmbeddedResource Include="Futures\Mappings.hbm.xml" />
32853286
<EmbeddedResource Include="SessionBuilder\Mappings.hbm.xml" />
32863287
<EmbeddedResource Include="IdTest\IdentityClass.hbm.xml" />
32873288
<EmbeddedResource Include="NHSpecificTest\NH1904\StructMappings.hbm.xml" />
@@ -3787,7 +3788,6 @@
37873788
<EmbeddedResource Include="NHSpecificTest\NH1654\Mappings.hbm.xml" />
37883789
<EmbeddedResource Include="Pagination\DataPoint.hbm.xml" />
37893790
<EmbeddedResource Include="NHSpecificTest\Dates\Mappings\DateTime2.hbm.xml" />
3790-
<EmbeddedResource Include="NHSpecificTest\Futures\Mappings.hbm.xml" />
37913791
<EmbeddedResource Include="NHSpecificTest\NH1643\Mappings.hbm.xml" />
37923792
<EmbeddedResource Include="NHSpecificTest\NH1640\Mappings.hbm.xml" />
37933793
<EmbeddedResource Include="NHSpecificTest\NH1584\Mappings.hbm.xml" />

0 commit comments

Comments
 (0)