Skip to content

Commit 7124703

Browse files
committed
feat: Refactor log message writer classes to support generic writer types
1 parent d570382 commit 7124703

4 files changed

Lines changed: 43 additions & 13 deletions

File tree

tests/AsyncLogSinkBaseTests/src/MethodTests/RegisterLogMessageWriterMethodTests.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,20 @@
77

88
namespace AsyncLogSinkBaseTests.MethodTests.RegisterLogMessageWriterMethodTests;
99

10-
internal sealed class TestLogSink() : AsyncLogSinkBase(new TestLogMessageWriter())
10+
internal sealed class TestWriter
1111
{
1212
}
1313

14-
internal sealed class TestLogMessageWriter : IAsyncLogMessageWriter<object>
14+
internal sealed class TestLogSink() : AsyncLogSinkBase<TestWriter>(new TestLogMessageWriter(), new TestWriter())
1515
{
16+
}
17+
18+
19+
20+
internal sealed class TestLogMessageWriter : IAsyncLogMessageWriter<object, TestWriter>
21+
{
22+
public TestWriter Writer { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
23+
1624
public ValueTask WriteAsync(DateTimeOffset timestamp, LogLevel? logLevel, IEnumerable<string> senders, object? payload)
1725
{
1826
throw new NotImplementedException();

tests/AsyncLogSinkBaseTests/src/MethodTests/SubmitAsyncMethodTests.cs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,28 @@
77

88
namespace AsyncLogSinkBaseTests.MethodTests.SubmitAsyncMethodTests;
99

10-
internal sealed class DefaultLogMessageWriter : IAsyncLogMessageWriter<object>
10+
internal sealed class TestWriter
1111
{
12-
public List<object?> WrittenMessages { get; } = [];
12+
}
13+
14+
internal sealed class DefaultLogMessageWriter : IAsyncLogMessageWriter<object, TestWriter>
15+
{
16+
public TestWriter Writer { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
17+
18+
public List<string?> WrittenMessages { get; } = [];
1319

1420
public ValueTask WriteAsync(DateTimeOffset timestamp, LogLevel? logLevel, IEnumerable<string> senders, object? payload)
1521
{
16-
WrittenMessages.Add(payload);
17-
22+
WrittenMessages.Add(payload?.ToString());
23+
1824
return ValueTask.CompletedTask;
1925
}
2026
}
2127

22-
internal sealed class StringLogMessageWriter : IAsyncLogMessageWriter<string>
28+
internal sealed class StringLogMessageWriter : IAsyncLogMessageWriter<string, TestWriter>
2329
{
30+
public TestWriter Writer { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
31+
2432
public List<string?> WrittenMessages { get; } = [];
2533

2634
public ValueTask WriteAsync(DateTimeOffset timestamp, LogLevel? logLevel, IEnumerable<string> senders, string? payload)
@@ -31,7 +39,7 @@ public ValueTask WriteAsync(DateTimeOffset timestamp, LogLevel? logLevel, IEnume
3139
}
3240
}
3341

34-
internal sealed class TestLogSink() : AsyncLogSinkBase(new DefaultLogMessageWriter())
42+
internal sealed class TestLogSink() : AsyncLogSinkBase<TestWriter>(new DefaultLogMessageWriter(), new TestWriter())
3543
{
3644
}
3745

tests/LogSinkBaseTests/src/MethodTests/RegisterLogMessageWriterMethodTests.cs

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

77
namespace LogSinkBaseTests.MethodTests.RegisterLogMessageWriterMethodTests;
88

9-
internal sealed class TestLogSink() : LogSinkBase(new TestLogMessageWriter())
9+
internal sealed class TestWriter
1010
{
1111
}
1212

13-
internal sealed class TestLogMessageWriter : ILogMessageWriter<object>
13+
internal sealed class TestLogSink() : LogSinkBase<TestWriter>(new TestLogMessageWriter(), new TestWriter())
1414
{
15+
}
16+
17+
internal sealed class TestLogMessageWriter : ILogMessageWriter<object, TestWriter>
18+
{
19+
public TestWriter Writer { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
20+
1521
public void Write(DateTimeOffset timestamp, LogLevel? logLevel, IEnumerable<string> senders, object? payload)
1622
{
1723
throw new NotImplementedException();

tests/LogSinkBaseTests/src/MethodTests/SubmitMethodTests.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,14 @@
66

77
namespace LogSinkBaseTests.MethodTests.SubmitMethodTests;
88

9-
internal sealed class DefaultLogMessageWriter : ILogMessageWriter<object>
9+
internal sealed class TestWriter
1010
{
11+
}
12+
13+
internal sealed class DefaultLogMessageWriter : ILogMessageWriter<object, TestWriter>
14+
{
15+
public TestWriter Writer { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
16+
1117
public List<object?> WrittenMessages { get; } = [];
1218

1319
public void Write(DateTimeOffset timestamp, LogLevel? logLevel, IEnumerable<string> senders, object? payload)
@@ -16,8 +22,10 @@ public void Write(DateTimeOffset timestamp, LogLevel? logLevel, IEnumerable<stri
1622
}
1723
}
1824

19-
internal sealed class StringLogMessageWriter : ILogMessageWriter<string>
25+
internal sealed class StringLogMessageWriter : ILogMessageWriter<string, TestWriter>
2026
{
27+
public TestWriter Writer { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
28+
2129
public List<string?> WrittenMessages { get; } = [];
2230

2331
public void Write(DateTimeOffset timestamp, LogLevel? logLevel, IEnumerable<string> senders, string? payload)
@@ -26,7 +34,7 @@ public void Write(DateTimeOffset timestamp, LogLevel? logLevel, IEnumerable<stri
2634
}
2735
}
2836

29-
internal sealed class TestLogSink() : LogSinkBase(new DefaultLogMessageWriter())
37+
internal sealed class TestLogSink() : LogSinkBase<TestWriter>(new DefaultLogMessageWriter(), new TestWriter())
3038
{
3139
}
3240

0 commit comments

Comments
 (0)