Skip to content

Commit ce8e744

Browse files
committed
refs and cleanup
1 parent e4ec0c2 commit ce8e744

10 files changed

Lines changed: 303 additions & 297 deletions

src/global.json renamed to global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{
1+
{
22
"sdk": {
33
"version": "10.0.103",
44
"allowPrerelease": true,

src/Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@
1414
<PackageVersion Include="NServiceBus.Extensions.Hosting" Version="4.0.0" />
1515
<PackageVersion Include="ProjectDefaults" Version="1.0.172" />
1616
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="10.0.3" />
17-
<PackageVersion Include="xunit.v3" Version="3.2.2" />
17+
<PackageVersion Include="TUnit" Version="1.15.11" />
1818
</ItemGroup>
1919
</Project>

src/Tests/DeferredLoggerFactoryTests.cs

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,94 @@
11
using NServiceBus.Logging;
2+
using System.Threading.Tasks;
23

34
/// <summary>
45
/// Tests for the DeferredLoggerFactory pattern using a local test implementation.
56
/// This tests the deferred logging pattern used for capturing logs before endpoint startup.
67
/// </summary>
78
public class DeferredLoggerFactoryTests
89
{
9-
[Fact]
10-
public void GetLogger_with_type_returns_NamedLogger()
10+
[Test]
11+
public async Task GetLogger_with_type_returns_NamedLogger()
1112
{
1213
var factory = new TestDeferredLoggerFactory(LogLevel.Debug);
1314

1415
var log = factory.GetLogger(typeof(DeferredLoggerFactoryTests));
1516

16-
Assert.NotNull(log);
17-
Assert.IsType<TestNamedLogger>(log);
17+
await Assert.That(log).IsNotNull();
18+
await Assert.That(log).IsTypeOf<TestNamedLogger>();
1819
}
1920

20-
[Fact]
21-
public void GetLogger_with_string_returns_NamedLogger()
21+
[Test]
22+
public async Task GetLogger_with_string_returns_NamedLogger()
2223
{
2324
var factory = new TestDeferredLoggerFactory(LogLevel.Debug);
2425

2526
var log = factory.GetLogger("TestLogger");
2627

27-
Assert.NotNull(log);
28-
Assert.IsType<TestNamedLogger>(log);
28+
await Assert.That(log).IsNotNull();
29+
await Assert.That(log).IsTypeOf<TestNamedLogger>();
2930
}
3031

31-
[Fact]
32-
public void Write_adds_message_to_deferred_logs()
32+
[Test]
33+
public async Task Write_adds_message_to_deferred_logs()
3334
{
3435
var factory = new TestDeferredLoggerFactory(LogLevel.Debug);
3536

3637
factory.Write("TestLogger", LogLevel.Info, "test message");
3738

38-
Assert.Single(factory.DeferredLogs);
39-
Assert.True(factory.DeferredLogs.ContainsKey("TestLogger"));
40-
Assert.Single(factory.DeferredLogs["TestLogger"]);
39+
await Assert.That(factory.DeferredLogs).HasSingleItem();
40+
await Assert.That(factory.DeferredLogs.ContainsKey("TestLogger")).IsTrue();
41+
await Assert.That(factory.DeferredLogs["TestLogger"]).HasSingleItem();
4142
var (level, message) = factory.DeferredLogs["TestLogger"].First();
42-
Assert.Equal(LogLevel.Info, level);
43-
Assert.Equal("test message", message);
43+
await Assert.That(level).IsEqualTo(LogLevel.Info);
44+
await Assert.That(message).IsEqualTo("test message");
4445
}
4546

46-
[Fact]
47-
public void Write_filters_messages_below_configured_level()
47+
[Test]
48+
public async Task Write_filters_messages_below_configured_level()
4849
{
4950
var factory = new TestDeferredLoggerFactory(LogLevel.Warn);
5051

5152
factory.Write("TestLogger", LogLevel.Debug, "debug message");
5253
factory.Write("TestLogger", LogLevel.Info, "info message");
5354

54-
Assert.Empty(factory.DeferredLogs);
55+
await Assert.That(factory.DeferredLogs).IsEmpty();
5556
}
5657

57-
[Fact]
58-
public void Write_accepts_messages_at_or_above_configured_level()
58+
[Test]
59+
public async Task Write_accepts_messages_at_or_above_configured_level()
5960
{
6061
var factory = new TestDeferredLoggerFactory(LogLevel.Warn);
6162

6263
factory.Write("TestLogger", LogLevel.Warn, "warn message");
6364
factory.Write("TestLogger", LogLevel.Error, "error message");
6465
factory.Write("TestLogger", LogLevel.Fatal, "fatal message");
6566

66-
Assert.Single(factory.DeferredLogs);
67-
Assert.Equal(3, factory.DeferredLogs["TestLogger"].Count);
67+
await Assert.That(factory.DeferredLogs).HasSingleItem();
68+
await Assert.That(factory.DeferredLogs["TestLogger"].Count).IsEqualTo(3);
6869
}
6970

70-
[Fact]
71-
public void Write_groups_messages_by_logger_name()
71+
[Test]
72+
public async Task Write_groups_messages_by_logger_name()
7273
{
7374
var factory = new TestDeferredLoggerFactory(LogLevel.Debug);
7475

7576
factory.Write("Logger1", LogLevel.Info, "message 1");
7677
factory.Write("Logger2", LogLevel.Info, "message 2");
7778
factory.Write("Logger1", LogLevel.Info, "message 3");
7879

79-
Assert.Equal(2, factory.DeferredLogs.Count);
80-
Assert.Equal(2, factory.DeferredLogs["Logger1"].Count);
81-
Assert.Single(factory.DeferredLogs["Logger2"]);
80+
await Assert.That(factory.DeferredLogs.Count).IsEqualTo(2);
81+
await Assert.That(factory.DeferredLogs["Logger1"].Count).IsEqualTo(2);
82+
await Assert.That(factory.DeferredLogs["Logger2"]).HasSingleItem();
8283
}
8384

84-
[Theory]
85-
[InlineData(LogLevel.Debug, true, true, true, true, true)]
86-
[InlineData(LogLevel.Info, false, true, true, true, true)]
87-
[InlineData(LogLevel.Warn, false, false, true, true, true)]
88-
[InlineData(LogLevel.Error, false, false, false, true, true)]
89-
[InlineData(LogLevel.Fatal, false, false, false, false, true)]
90-
public void GetLogger_sets_enabled_levels_correctly(
85+
[Test]
86+
[Arguments(LogLevel.Debug, true, true, true, true, true)]
87+
[Arguments(LogLevel.Info, false, true, true, true, true)]
88+
[Arguments(LogLevel.Warn, false, false, true, true, true)]
89+
[Arguments(LogLevel.Error, false, false, false, true, true)]
90+
[Arguments(LogLevel.Fatal, false, false, false, false, true)]
91+
public async Task GetLogger_sets_enabled_levels_correctly(
9192
LogLevel configuredLevel,
9293
bool expectedDebug,
9394
bool expectedInfo,
@@ -99,24 +100,24 @@ public void GetLogger_sets_enabled_levels_correctly(
99100

100101
var log = factory.GetLogger("TestLogger");
101102

102-
Assert.Equal(expectedDebug, log.IsDebugEnabled);
103-
Assert.Equal(expectedInfo, log.IsInfoEnabled);
104-
Assert.Equal(expectedWarn, log.IsWarnEnabled);
105-
Assert.Equal(expectedError, log.IsErrorEnabled);
106-
Assert.Equal(expectedFatal, log.IsFatalEnabled);
103+
await Assert.That(log.IsDebugEnabled).IsEqualTo(expectedDebug);
104+
await Assert.That(log.IsInfoEnabled).IsEqualTo(expectedInfo);
105+
await Assert.That(log.IsWarnEnabled).IsEqualTo(expectedWarn);
106+
await Assert.That(log.IsErrorEnabled).IsEqualTo(expectedError);
107+
await Assert.That(log.IsFatalEnabled).IsEqualTo(expectedFatal);
107108
}
108109

109-
[Fact]
110-
public void Logger_writes_through_factory()
110+
[Test]
111+
public async Task Logger_writes_through_factory()
111112
{
112113
var factory = new TestDeferredLoggerFactory(LogLevel.Debug);
113114
var logger = factory.GetLogger("TestLogger");
114115

115116
logger.Info("test info message");
116117
logger.Error("test error message");
117118

118-
Assert.Single(factory.DeferredLogs);
119-
Assert.Equal(2, factory.DeferredLogs["TestLogger"].Count);
119+
await Assert.That(factory.DeferredLogs).HasSingleItem();
120+
await Assert.That(factory.DeferredLogs["TestLogger"].Count).IsEqualTo(2);
120121
}
121122
}
122123

@@ -214,4 +215,4 @@ public void Fatal(string? message, Exception? exception) =>
214215

215216
public void FatalFormat(string format, params object?[] args) =>
216217
factory.Write(name, LogLevel.Fatal, string.Format(format, args));
217-
}
218+
}

src/Tests/IntegrationTests.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
using Microsoft.Extensions.Hosting;
33
using NServiceBus.Logging;
44
using Microsoft.Extensions.Logging;
5+
using System.Threading.Tasks;
56

67
public class IntegrationTests
78
{
8-
[Fact]
9+
[Test]
910
public async Task Ensure_log_messages_are_redirected()
1011
{
1112
var msLoggerFactory = new LoggerFactory();
@@ -26,15 +27,15 @@ public async Task Ensure_log_messages_are_redirected()
2627
};
2728
await endpoint.SendLocal(message, cancellationToken: cancel);
2829
await Task.Delay(500, cancel);
29-
Assert.NotEmpty(LogMessageCapture.LoggingEvents);
30+
await Assert.That(LogMessageCapture.LoggingEvents).IsNotEmpty();
3031
await endpoint.Stop(cancel);
3132
}
3233

33-
[Fact]
34+
[Test]
3435
public Task Ensure_log_messages_are_redirected_in_Hosting_deferred() =>
3536
RunWithHost(true);
3637

37-
[Fact]
38+
[Test]
3839
public Task Ensure_log_messages_are_redirected_in_Hosting_not_deferred() =>
3940
RunWithHost(false);
4041

@@ -74,7 +75,7 @@ static async Task RunWithHost(bool deferLogging)
7475
await messageSession.SendLocal(message);
7576
await Task.Delay(500);
7677

77-
Assert.NotEmpty(LogMessageCapture.LoggingEvents);
78+
await Assert.That(LogMessageCapture.LoggingEvents).IsNotEmpty();
7879
await host.StopAsync();
7980
}
8081

src/Tests/LoggerFactoryTests.cs

Lines changed: 32 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
using NServiceBus.Logging;
2+
using System.Threading.Tasks;
23

34
/// <summary>
45
/// Tests for the LoggerFactory class through the public MicrosoftLogFactory API.
56
/// </summary>
67
public class LoggerFactoryTests
78
{
8-
[Fact]
9-
public void GetLogger_with_type_returns_ILog_implementation()
9+
[Test]
10+
public async Task GetLogger_with_type_returns_ILog_implementation()
1011
{
1112
var mockFactory = new MockMsLoggerFactory();
1213
var factory = new MicrosoftLogFactory();
@@ -16,12 +17,12 @@ public void GetLogger_with_type_returns_ILog_implementation()
1617
var loggerFactory = GetLoggingFactory(factory);
1718
var log = loggerFactory.GetLogger(typeof(LoggerFactoryTests));
1819

19-
Assert.NotNull(log);
20-
Assert.IsAssignableFrom<ILog>(log);
20+
await Assert.That(log).IsNotNull();
21+
await Assert.That(log).IsAssignableTo<ILog>();
2122
}
2223

23-
[Fact]
24-
public void GetLogger_with_string_returns_ILog_implementation()
24+
[Test]
25+
public async Task GetLogger_with_string_returns_ILog_implementation()
2526
{
2627
var mockFactory = new MockMsLoggerFactory();
2728
var factory = new MicrosoftLogFactory();
@@ -30,12 +31,12 @@ public void GetLogger_with_string_returns_ILog_implementation()
3031
var loggerFactory = GetLoggingFactory(factory);
3132
var log = loggerFactory.GetLogger("MyCustomLogger");
3233

33-
Assert.NotNull(log);
34-
Assert.IsAssignableFrom<ILog>(log);
34+
await Assert.That(log).IsNotNull();
35+
await Assert.That(log).IsAssignableTo<ILog>();
3536
}
3637

37-
[Fact]
38-
public void GetLogger_with_type_creates_logger_with_type_name()
38+
[Test]
39+
public async Task GetLogger_with_type_creates_logger_with_type_name()
3940
{
4041
var mockFactory = new MockMsLoggerFactory();
4142
var factory = new MicrosoftLogFactory();
@@ -44,12 +45,12 @@ public void GetLogger_with_type_creates_logger_with_type_name()
4445
var loggerFactory = GetLoggingFactory(factory);
4546
loggerFactory.GetLogger(typeof(LoggerFactoryTests));
4647

47-
Assert.Single(mockFactory.Loggers);
48-
Assert.True(mockFactory.Loggers.ContainsKey(typeof(LoggerFactoryTests).FullName!));
48+
await Assert.That(mockFactory.Loggers).HasSingleItem();
49+
await Assert.That(mockFactory.Loggers.ContainsKey(typeof(LoggerFactoryTests).FullName!)).IsTrue();
4950
}
5051

51-
[Fact]
52-
public void GetLogger_with_string_creates_logger_with_given_name()
52+
[Test]
53+
public async Task GetLogger_with_string_creates_logger_with_given_name()
5354
{
5455
var mockFactory = new MockMsLoggerFactory();
5556
var factory = new MicrosoftLogFactory();
@@ -58,12 +59,12 @@ public void GetLogger_with_string_creates_logger_with_given_name()
5859
var loggerFactory = GetLoggingFactory(factory);
5960
loggerFactory.GetLogger("MyCustomLogger");
6061

61-
Assert.Single(mockFactory.Loggers);
62-
Assert.True(mockFactory.Loggers.ContainsKey("MyCustomLogger"));
62+
await Assert.That(mockFactory.Loggers).HasSingleItem();
63+
await Assert.That(mockFactory.Loggers.ContainsKey("MyCustomLogger")).IsTrue();
6364
}
6465

65-
[Fact]
66-
public void GetLogger_with_type_logs_to_correct_logger()
66+
[Test]
67+
public async Task GetLogger_with_type_logs_to_correct_logger()
6768
{
6869
var mockFactory = new MockMsLoggerFactory();
6970
var factory = new MicrosoftLogFactory();
@@ -74,12 +75,12 @@ public void GetLogger_with_type_logs_to_correct_logger()
7475
log.Info("test message");
7576

7677
var mockLogger = mockFactory.Loggers[typeof(LoggerFactoryTests).FullName!];
77-
Assert.Single(mockLogger.LogEntries);
78-
Assert.Equal("test message", mockLogger.LogEntries[0].Message);
78+
await Assert.That(mockLogger.LogEntries).HasSingleItem();
79+
await Assert.That(mockLogger.LogEntries[0].Message).IsEqualTo("test message");
7980
}
8081

81-
[Fact]
82-
public void GetLogger_with_string_logs_to_correct_logger()
82+
[Test]
83+
public async Task GetLogger_with_string_logs_to_correct_logger()
8384
{
8485
var mockFactory = new MockMsLoggerFactory();
8586
var factory = new MicrosoftLogFactory();
@@ -90,12 +91,12 @@ public void GetLogger_with_string_logs_to_correct_logger()
9091
log.Warn("warning message");
9192

9293
var mockLogger = mockFactory.Loggers["CustomLogger"];
93-
Assert.Single(mockLogger.LogEntries);
94-
Assert.Equal("warning message", mockLogger.LogEntries[0].Message);
94+
await Assert.That(mockLogger.LogEntries).HasSingleItem();
95+
await Assert.That(mockLogger.LogEntries[0].Message).IsEqualTo("warning message");
9596
}
9697

97-
[Fact]
98-
public void GetLogger_called_multiple_times_with_same_type_returns_separate_wrapper_instances()
98+
[Test]
99+
public async Task GetLogger_called_multiple_times_with_same_type_returns_separate_wrapper_instances()
99100
{
100101
var mockFactory = new MockMsLoggerFactory();
101102
var factory = new MicrosoftLogFactory();
@@ -105,11 +106,11 @@ public void GetLogger_called_multiple_times_with_same_type_returns_separate_wrap
105106
var log1 = loggerFactory.GetLogger(typeof(LoggerFactoryTests));
106107
var log2 = loggerFactory.GetLogger(typeof(LoggerFactoryTests));
107108

108-
Assert.NotSame(log1, log2);
109+
await Assert.That(log2).IsNotSameReferenceAs(log1);
109110
}
110111

111-
[Fact]
112-
public void GetLogger_called_multiple_times_with_different_types_creates_different_loggers()
112+
[Test]
113+
public async Task GetLogger_called_multiple_times_with_different_types_creates_different_loggers()
113114
{
114115
var mockFactory = new MockMsLoggerFactory();
115116
var factory = new MicrosoftLogFactory();
@@ -119,7 +120,7 @@ public void GetLogger_called_multiple_times_with_different_types_creates_differe
119120
loggerFactory.GetLogger(typeof(LoggerFactoryTests));
120121
loggerFactory.GetLogger(typeof(string));
121122

122-
Assert.Equal(2, mockFactory.Loggers.Count);
123+
await Assert.That(mockFactory.Loggers.Count).IsEqualTo(2);
123124
}
124125

125126
// Helper to invoke protected GetLoggingFactory method
@@ -137,4 +138,4 @@ static ILoggerFactory GetLoggingFactory(MicrosoftLogFactory factory)
137138
throw exception.InnerException!;
138139
}
139140
}
140-
}
141+
}

0 commit comments

Comments
 (0)