Skip to content

Commit b3c690a

Browse files
committed
get tests to use ilogger
1 parent 67920ff commit b3c690a

File tree

6 files changed

+46
-79
lines changed

6 files changed

+46
-79
lines changed

src/ServiceControl.Infrastructure/LoggerUtil.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,18 @@
66

77
public static class LoggerUtil
88
{
9+
/// <summary>
10+
/// used for tests
11+
/// </summary>
12+
public static ILoggerFactory LoggerFactory { private get; set; }
13+
914
public static void BuildLogger(this ILoggingBuilder loggingBuilder, LogLevel level)
1015
{
16+
if (LoggerFactory != null)
17+
{
18+
return;
19+
}
20+
1121
//TODO: can we get these from settings too?
1222
loggingBuilder.AddNLog();
1323
loggingBuilder.AddSeq();
@@ -16,13 +26,13 @@ public static void BuildLogger(this ILoggingBuilder loggingBuilder, LogLevel lev
1626

1727
public static ILogger<T> CreateStaticLogger<T>(LogLevel level = LogLevel.Information)
1828
{
19-
var factory = LoggerFactory.Create(configure => configure.BuildLogger(level));
29+
var factory = LoggerFactory ?? Microsoft.Extensions.Logging.LoggerFactory.Create(configure => configure.BuildLogger(level));
2030
return factory.CreateLogger<T>();
2131
}
2232

2333
public static ILogger CreateStaticLogger(Type type, LogLevel level = LogLevel.Information)
2434
{
25-
var factory = LoggerFactory.Create(configure => configure.BuildLogger(level));
35+
var factory = LoggerFactory ?? Microsoft.Extensions.Logging.LoggerFactory.Create(configure => configure.BuildLogger(level));
2636
return factory.CreateLogger(type);
2737
}
2838
}

src/ServiceControl.Transports.Tests/FullEndpointTestFixture.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
using System.Threading.Tasks;
55
using NServiceBus.AcceptanceTesting.Customization;
66
using NUnit.Framework;
7+
using ServiceControl.Infrastructure;
78

89
[TestFixture]
910
class FullEndpointTestFixture
1011
{
1112
[SetUp]
1213
public virtual async Task Setup()
1314
{
15+
LoggerUtil.LoggerFactory = new TestContextAppenderFactory();
1416
configuration = new TransportTestsConfiguration();
1517
var queueSuffix = $"-{System.IO.Path.GetRandomFileName().Replace(".", string.Empty)}";
1618

Lines changed: 14 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,87 +1,29 @@
11
namespace ServiceControl.Transport.Tests
22
{
33
using System;
4-
using NServiceBus.Logging;
4+
using Microsoft.Extensions.Logging;
55
using NUnit.Framework;
66

7-
class TestContextAppender : ILog
7+
class TestContextAppender(string categoryName) : ILogger
88
{
9-
public bool IsDebugEnabled => false;
10-
public bool IsInfoEnabled => false;
11-
public bool IsWarnEnabled => true;
12-
public bool IsErrorEnabled => true;
13-
public bool IsFatalEnabled => true;
14-
15-
public void Debug(string message) => Log(message, LogLevel.Debug);
16-
17-
public void Debug(string message, Exception exception)
18-
{
19-
var fullMessage = $"{message} {exception}";
20-
Log(fullMessage, LogLevel.Debug);
21-
}
22-
23-
public void DebugFormat(string format, params object[] args)
9+
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
2410
{
25-
var fullMessage = string.Format(format, args);
26-
Log(fullMessage, LogLevel.Debug);
11+
if (IsEnabled(logLevel))
12+
{
13+
TestContext.Out.WriteLine($"{categoryName}: {formatter(state, exception)}");
14+
}
2715
}
16+
public bool IsEnabled(LogLevel logLevel) => logLevel >= LogLevel.Warning;
2817

29-
public void Info(string message) => Log(message, LogLevel.Info);
18+
public IDisposable BeginScope<TState>(TState state) where TState : notnull => Disposable.Instance;
3019

31-
public void Info(string message, Exception exception)
20+
class Disposable : IDisposable
3221
{
33-
var fullMessage = $"{message} {exception}";
34-
Log(fullMessage, LogLevel.Info);
35-
}
22+
public static Disposable Instance = new();
3623

37-
public void InfoFormat(string format, params object[] args)
38-
{
39-
var fullMessage = string.Format(format, args);
40-
Log(fullMessage, LogLevel.Info);
24+
public void Dispose()
25+
{
26+
}
4127
}
42-
43-
public void Warn(string message) => Log(message, LogLevel.Warn);
44-
45-
public void Warn(string message, Exception exception)
46-
{
47-
var fullMessage = $"{message} {exception}";
48-
Log(fullMessage, LogLevel.Warn);
49-
}
50-
51-
public void WarnFormat(string format, params object[] args)
52-
{
53-
var fullMessage = string.Format(format, args);
54-
Log(fullMessage, LogLevel.Warn);
55-
}
56-
57-
public void Error(string message) => Log(message, LogLevel.Error);
58-
59-
public void Error(string message, Exception exception)
60-
{
61-
var fullMessage = $"{message} {exception}";
62-
Log(fullMessage, LogLevel.Error);
63-
}
64-
65-
public void ErrorFormat(string format, params object[] args)
66-
{
67-
var fullMessage = string.Format(format, args);
68-
Log(fullMessage, LogLevel.Error);
69-
}
70-
71-
public void Fatal(string message) => Log(message, LogLevel.Fatal);
72-
73-
public void Fatal(string message, Exception exception)
74-
{
75-
var fullMessage = $"{message} {exception}";
76-
Log(fullMessage, LogLevel.Fatal);
77-
}
78-
79-
public void FatalFormat(string format, params object[] args)
80-
{
81-
var fullMessage = string.Format(format, args);
82-
Log(fullMessage, LogLevel.Fatal);
83-
}
84-
85-
static void Log(string message, LogLevel _) => TestContext.Out.WriteLine(message);
8628
}
8729
}
Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
namespace ServiceControl.Transport.Tests
22
{
3-
using System;
4-
using NServiceBus.Logging;
3+
using Microsoft.Extensions.Logging;
54

65
class TestContextAppenderFactory : ILoggerFactory
76
{
8-
public ILog GetLogger(Type type) => GetLogger(type.FullName);
7+
public void AddProvider(ILoggerProvider provider)
8+
{
9+
}
910

10-
public ILog GetLogger(string name) => new TestContextAppender();
11+
public ILogger CreateLogger(string categoryName) => new TestContextAppender(categoryName);
12+
13+
public void Dispose()
14+
{
15+
}
1116
}
1217
}

src/ServiceControl.Transports.Tests/TransportManifestLibraryTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System.Runtime.InteropServices;
88
using NUnit.Framework;
99
using Particular.Approvals;
10+
using ServiceControl.Infrastructure;
1011
using ServiceControl.Transports;
1112

1213
[TestFixture]
@@ -16,6 +17,12 @@ public class TransportManifestLibraryTests
1617
const string transportType = "ServiceControl.Transports.ASBS.ASBSTransportCustomization, ServiceControl.Transports.ASBS";
1718
const string transportAlias = "ServiceControl.Transports.AzureServiceBus.AzureServiceBusTransport, ServiceControl.Transports.AzureServiceBus";
1819

20+
[SetUp]
21+
public void SetUp()
22+
{
23+
LoggerUtil.LoggerFactory = new TestContextAppenderFactory();
24+
}
25+
1926
[Test]
2027
public void Should_find_transport_manifest_by_name()
2128
{

src/ServiceControl.Transports.Tests/TransportTestFixture.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using System.Threading.Tasks;
1010
using Microsoft.Extensions.DependencyInjection;
1111
using NServiceBus;
12+
using NServiceBus.Extensions.Logging;
1213
using NServiceBus.Logging;
1314
using NServiceBus.Transport;
1415
using NUnit.Framework;
@@ -21,7 +22,7 @@ class TransportTestFixture
2122
public virtual async Task Setup()
2223
{
2324
//TODO remove LogManager usage
24-
LogManager.UseFactory(new TestContextAppenderFactory());
25+
LogManager.UseFactory(new ExtensionsLoggerFactory(new TestContextAppenderFactory()));
2526
configuration = new TransportTestsConfiguration();
2627
testCancellationTokenSource = Debugger.IsAttached ? new CancellationTokenSource() : new CancellationTokenSource(TestTimeout);
2728
registrations = [];

0 commit comments

Comments
 (0)