-
Notifications
You must be signed in to change notification settings - Fork 49
Expand file tree
/
Copy pathPersistenceTestFixture.cs
More file actions
57 lines (41 loc) · 1.9 KB
/
PersistenceTestFixture.cs
File metadata and controls
57 lines (41 loc) · 1.9 KB
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
56
57
namespace ServiceControl.Audit.Persistence.Tests
{
using System;
using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
using Auditing.BodyStorage;
using NUnit.Framework;
using UnitOfWork;
[TestFixture]
abstract class PersistenceTestFixture
{
public Action<PersistenceSettings> SetSettings = _ => { };
[SetUp]
public virtual Task Setup()
{
configuration = new PersistenceTestsConfiguration();
testCancellationTokenSource = Debugger.IsAttached ? new CancellationTokenSource() : new CancellationTokenSource(TestTimeout);
return configuration.Configure(SetSettings);
}
[TearDown]
public virtual Task Cleanup()
{
testCancellationTokenSource?.Dispose();
return configuration?.Cleanup();
}
protected string PersisterName => configuration.Name;
protected IAuditDataStore DataStore => configuration.AuditDataStore;
protected IFailedAuditStorage FailedAuditStorage => configuration.FailedAuditStorage;
protected IBodyStorage BodyStorage => configuration.BodyStorage;
protected IAuditIngestionUnitOfWorkFactory AuditIngestionUnitOfWorkFactory =>
configuration.AuditIngestionUnitOfWorkFactory;
protected ValueTask<IAuditIngestionUnitOfWork> StartAuditUnitOfWork(int batchSize) =>
AuditIngestionUnitOfWorkFactory.StartNew(batchSize, TestContext.CurrentContext.CancellationToken);
protected IServiceProvider ServiceProvider => configuration.ServiceProvider;
protected PersistenceTestsConfiguration configuration;
protected CancellationToken TestTimeoutCancellationToken => testCancellationTokenSource.Token;
CancellationTokenSource testCancellationTokenSource;
static readonly TimeSpan TestTimeout = TimeSpan.FromSeconds(30);
}
}