Skip to content

Commit 49ef7dc

Browse files
committed
fix: Remove Sonar code smells
1 parent 1cf48b2 commit 49ef7dc

File tree

4 files changed

+33
-11
lines changed

4 files changed

+33
-11
lines changed

src/Testcontainers.Xunit/ContainerLifetime.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,16 @@ public TContainerEntity Container
3636

3737
#if !XUNIT_V3
3838
/// <inheritdoc />
39-
LifetimeTask IAsyncLifetime.DisposeAsync() => DisposeAsync();
39+
LifetimeTask IAsyncLifetime.DisposeAsync() => DisposeAsyncCore();
4040
#else
4141
/// <inheritdoc />
42-
LifetimeTask IAsyncDisposable.DisposeAsync() => DisposeAsync();
42+
async LifetimeTask IAsyncDisposable.DisposeAsync()
43+
{
44+
await DisposeAsyncCore()
45+
.ConfigureAwait(false);
46+
47+
GC.SuppressFinalize(this);
48+
}
4349
#endif
4450

4551
/// <summary>
@@ -80,7 +86,7 @@ await Container.StartAsync()
8086
}
8187

8288
/// <inheritdoc cref="IAsyncLifetime" />
83-
protected virtual async LifetimeTask DisposeAsync()
89+
protected virtual async LifetimeTask DisposeAsyncCore()
8490
{
8591
if (_exception == null)
8692
{

src/Testcontainers.Xunit/DbContainerFixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ await base.InitializeAsync()
2525
}
2626

2727
/// <inheritdoc />
28-
protected override async LifetimeTask DisposeAsync()
28+
protected override async LifetimeTask DisposeAsyncCore()
2929
{
3030
if (_testMethods != null)
3131
{
3232
await _testMethods.DisposeAsync()
3333
.ConfigureAwait(true);
3434
}
3535

36-
await base.DisposeAsync()
36+
await base.DisposeAsyncCore()
3737
.ConfigureAwait(true);
3838
}
3939

src/Testcontainers.Xunit/DbContainerTest.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ public abstract class DbContainerTest<TBuilderEntity, TContainerEntity>(ITestOut
1212
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity>, new()
1313
where TContainerEntity : IContainer, IDatabaseContainer
1414
{
15-
private readonly CancellationTokenSource _cts = new CancellationTokenSource();
1615
private DbContainerTestMethods _testMethods;
1716

1817
/// <inheritdoc />
@@ -25,15 +24,15 @@ await base.InitializeAsync()
2524
}
2625

2726
/// <inheritdoc />
28-
protected override async LifetimeTask DisposeAsync()
27+
protected override async LifetimeTask DisposeAsyncCore()
2928
{
3029
if (_testMethods != null)
3130
{
3231
await _testMethods.DisposeAsync()
3332
.ConfigureAwait(true);
3433
}
3534

36-
await base.DisposeAsync()
35+
await base.DisposeAsyncCore()
3736
.ConfigureAwait(true);
3837
}
3938

src/Testcontainers.Xunit/MessageSinkLogger.cs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,37 @@ namespace Testcontainers.Xunit;
22

33
internal sealed class MessageSinkLogger(IMessageSink messageSink) : Logger
44
{
5+
private readonly IMessageSink _messageSink = messageSink;
6+
57
protected override void Log<TState>(TState state, Exception exception, Func<TState, Exception, string> formatter)
68
{
7-
if (messageSink == null)
9+
if (_messageSink == null)
810
{
911
return;
1012
}
1113

1214
var message = GetMessage(state, exception, formatter);
13-
messageSink.OnMessage(new DiagnosticMessage($"[testcontainers.org] {message}"));
15+
_messageSink.OnMessage(new DiagnosticMessage($"[testcontainers.org] {message}"));
16+
}
17+
18+
public override bool Equals(object obj)
19+
{
20+
if (ReferenceEquals(this, obj))
21+
{
22+
return true;
23+
}
24+
25+
if (obj is MessageSinkLogger other)
26+
{
27+
return Equals(_messageSink, other._messageSink);
28+
}
29+
30+
return false;
1431
}
1532

1633
/// <returns>
1734
/// The hash code of the underlying message sink, because <see cref="DotNet.Testcontainers.Clients.DockerApiClient.LogContainerRuntimeInfoAsync" />
1835
/// logs the runtime information once per Docker Engine API client and logger.
1936
/// </returns>
20-
public override int GetHashCode() => messageSink?.GetHashCode() ?? 0;
37+
public override int GetHashCode() => _messageSink?.GetHashCode() ?? 0;
2138
}

0 commit comments

Comments
 (0)