forked from nhibernate/nhibernate-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAutoJoinSettingFixture.cs
55 lines (48 loc) · 1.4 KB
/
AutoJoinSettingFixture.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using System.Transactions;
using NHibernate.Cfg;
using NUnit.Framework;
namespace NHibernate.Test.SystemTransactions
{
[TestFixture(true)]
[TestFixture(false)]
[TestFixture(new object[] { null })]
public class AutoJoinSettingFixture : TestCase
{
private readonly bool? _autoJoinTransaction;
public AutoJoinSettingFixture(bool? autoJoinTransaction)
{
_autoJoinTransaction = autoJoinTransaction;
}
protected override string[] Mappings => new[] { "TransactionTest.Person.hbm.xml" };
protected override string MappingsAssembly => "NHibernate.Test";
protected override void Configure(Configuration configuration)
{
if (_autoJoinTransaction.HasValue)
configuration.SetProperty(Environment.AutoJoinTransaction, _autoJoinTransaction.ToString());
else
configuration.Properties.Remove(Environment.AutoJoinTransaction);
}
[Test]
public void CheckTransactionJoined()
{
using (new TransactionScope())
using (var s = OpenSession())
{
Assert.That(
s.GetSessionImplementation().TransactionContext,
_autoJoinTransaction == false ? Is.Null : Is.Not.Null);
}
}
[Theory]
public void CanOverrideAutoJoin(bool autoJoin)
{
using (new TransactionScope())
using (var s = Sfi.WithOptions().AutoJoinTransaction(autoJoin).OpenSession())
{
Assert.That(
s.GetSessionImplementation().TransactionContext,
autoJoin ? Is.Not.Null : Is.Null);
}
}
}
}