99
1010
1111using System . Linq ;
12+ using NHibernate . Criterion ;
1213using NHibernate . DomainModel ;
1314using NUnit . Framework ;
1415using NHibernate . Linq ;
@@ -19,23 +20,68 @@ namespace NHibernate.Test.NHSpecificTest.GH2463
1920 [ TestFixture ]
2021 public class FixtureAsync : TestCase
2122 {
23+ protected override bool AppliesTo ( Dialect . Dialect dialect )
24+ {
25+ return Dialect . SupportsScalarSubSelects ;
26+ }
27+
2228 protected override string [ ] Mappings
2329 {
2430 get { return new [ ] { "ABC.hbm.xml" } ; }
2531 }
2632
33+ protected override void OnSetUp ( )
34+ {
35+ using ( var session = OpenSession ( ) )
36+ using ( var transaction = session . BeginTransaction ( ) )
37+ {
38+ var a = new A { Name = "A" , AnotherName = "X" } ;
39+ session . Save ( a ) ;
40+
41+ var b = new B { Name = "B" , AnotherName = "X" } ;
42+ session . Save ( b ) ;
43+
44+ transaction . Commit ( ) ;
45+ }
46+ }
47+
48+ protected override void OnTearDown ( )
49+ {
50+ using ( var session = OpenSession ( ) )
51+ using ( var transaction = session . BeginTransaction ( ) )
52+ {
53+ session . CreateQuery ( "delete from System.Object" ) . ExecuteUpdate ( ) ;
54+
55+ transaction . Commit ( ) ;
56+ }
57+ }
58+
59+ //Also see GH-2599
2760 [ Test ]
28- public async Task CanJoinOnEntityWithDiscriminatorAsync ( )
61+ public async Task CanJoinOnEntityWithDiscriminatorLinqAsync ( )
2962 {
3063 using ( var s = OpenSession ( ) )
3164 {
32- await ( s . Query < A > ( ) . Join (
33- s . Query < A > ( ) ,
34- a => a . Id ,
35- b => b . Id ,
65+ var list = await ( s . Query < A > ( ) . Join (
66+ s . Query < B > ( ) ,
67+ a => a . AnotherName ,
68+ b => b . AnotherName ,
3669 ( a , b ) =>
3770 new { a , b } ) . ToListAsync ( ) ) ;
3871 }
3972 }
73+
74+ [ Test ]
75+ public async Task CanJoinOnEntityWithDiscriminatorQueryOverAsync ( )
76+ {
77+ using ( var s = OpenSession ( ) )
78+ {
79+ A a = null ;
80+ B b = null ;
81+ var list = await ( s . QueryOver < A > ( ( ) => a )
82+ . JoinEntityAlias ( ( ) => b , ( ) => a . AnotherName == b . AnotherName )
83+ . Select ( ( x ) => a . AsEntity ( ) , ( x ) => b . AsEntity ( ) ) . ListAsync < object [ ] > ( ) ) ;
84+ }
85+ }
4086 }
4187}
0 commit comments