/
ConfigureEndpointLearningPersistence.cs
48 lines (39 loc) · 1.35 KB
/
ConfigureEndpointLearningPersistence.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
using System;
using System.IO;
using System.Threading.Tasks;
using NServiceBus;
using NServiceBus.AcceptanceTesting.Support;
using NServiceBus.Persistence;
using NUnit.Framework;
public class ConfigureEndpointLearningPersistence : IConfigureEndpointTestExecution
{
public Task Configure(string endpointName, EndpointConfiguration configuration, RunSettings settings, PublisherMetadata publisherMetadata)
{
var testRunId = TestContext.CurrentContext.Test.ID;
string tempDir;
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
//can't use bin dir since that will be too long on the build agents
tempDir = @"c:\temp";
}
else
{
tempDir = Path.GetTempPath();
}
storageDir = Path.Combine(tempDir, testRunId);
configuration.UsePersistence<InMemoryPersistence, StorageType.Subscriptions>();
configuration.UsePersistence<InMemoryPersistence, StorageType.Timeouts>();
configuration.UsePersistence<LearningPersistence, StorageType.Sagas>()
.SagaStorageDirectory(storageDir);
return Task.FromResult(0);
}
public Task Cleanup()
{
if (Directory.Exists(storageDir))
{
Directory.Delete(storageDir, true);
}
return Task.FromResult(0);
}
string storageDir;
}