-
-
Notifications
You must be signed in to change notification settings - Fork 288
/
LoggerTest.cs
89 lines (77 loc) · 2.08 KB
/
LoggerTest.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
namespace Testcontainers.Tests;
public abstract class LoggerTest : IAsyncLifetime
{
private readonly FakeLogger _fakeLogger;
protected LoggerTest(FakeLogger fakeLogger)
{
_fakeLogger = fakeLogger;
}
public Task InitializeAsync()
{
return new ContainerBuilder()
.WithImage(CommonImages.Alpine)
.WithCommand(CommonCommands.SleepInfinity)
.WithLogger(_fakeLogger)
.Build()
.StartAsync();
}
public Task DisposeAsync()
{
return Task.CompletedTask;
}
[Theory]
[InlineData(0)]
[InlineData(1)]
[InlineData(2)]
public void LogContainerRuntimeInformationOnce(int _)
{
Assert.Contains("Connected to Docker", _fakeLogger.Collector.GetSnapshot()[0].Message);
}
[UsedImplicitly]
public sealed class SingleInstanceTest : LoggerTest
{
public SingleInstanceTest()
: base(new SingleInstance())
{
}
}
[UsedImplicitly]
public sealed class SharedInstanceTest : LoggerTest, IClassFixture<SharedInstance>
{
public SharedInstanceTest(SharedInstance sharedInstance)
: base(sharedInstance)
{
}
}
[UsedImplicitly]
[Collection(nameof(SharedCollection))]
public sealed class SharedCollectionTest1 : LoggerTest
{
public SharedCollectionTest1(SharedInstance sharedInstance)
: base(sharedInstance)
{
}
}
[UsedImplicitly]
[Collection(nameof(SharedCollection))]
public sealed class SharedCollectionTest2 : LoggerTest
{
public SharedCollectionTest2(SharedInstance sharedInstance)
: base(sharedInstance)
{
}
}
public sealed class SingleInstance : FakeLogger
{
// Ctor ITestOutputHelper
}
public sealed class SharedInstance : FakeLogger
{
// Ctor IMessageSink
}
[CollectionDefinition(nameof(SharedCollection))]
public sealed class SharedCollection : ICollectionFixture<SharedInstance>
{
// Ctor IMessageSink
}
}