Skip to content

Commit 3412781

Browse files
committed
improve tests
1 parent 21cad4c commit 3412781

File tree

2 files changed

+37
-21
lines changed

2 files changed

+37
-21
lines changed

FineCodeCoverageTests/CoverletConsole_Tests.cs

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public class CoverletConsoleUtil_Tests
136136
private CoverletConsoleUtil coverletConsoleUtil;
137137
private bool executed;
138138
private readonly List<string> coverletSettings = new List<string> { "setting1", "setting2" };
139-
private readonly ExecuteResponse successfulExecuteResponse = new ExecuteResponse { ExitCode = 3 };
139+
private readonly ExecuteResponse successfulExecuteResponse = new ExecuteResponse { ExitCode = 3, Output = "Successful output" };
140140

141141
[SetUp]
142142
public void SetUp()
@@ -165,21 +165,15 @@ public async Task Should_Execute_The_Request_From_The_Execute_Request_Provider_W
165165
public async Task Should_Log_Settings_Before_Executing()
166166
{
167167
var mockLogger = mocker.GetMock<ILogger>();
168-
var logged = false;
169168
mockLogger.Setup(logger => logger.Log(It.IsAny<IEnumerable<string>>())).Callback<IEnumerable<string>>(messages =>
170169
{
171-
if (!logged)
170+
var msgList = messages as List<string>;
171+
Assert.Multiple(() =>
172172
{
173-
logged = true;
174-
175-
var msgList = messages as List<string>;
176-
Assert.Multiple(() =>
177-
{
178-
Assert.That(msgList[0], Is.EqualTo("Coverlet Run (TheProjectName) - Arguments"));
179-
Assert.That(msgList.Skip(1), Is.EquivalentTo(coverletSettings));
180-
Assert.That(executed, Is.False);
181-
});
182-
}
173+
Assert.That(msgList[0], Is.EqualTo("Coverlet Run (TheProjectName) - Arguments"));
174+
Assert.That(msgList.Skip(1), Is.EqualTo(coverletSettings));
175+
Assert.That(executed, Is.False);
176+
});
183177
});
184178

185179
await RunSuccessfullyAsync();
@@ -191,20 +185,41 @@ public async Task Should_Log_Settings_Before_Executing()
191185
public void Should_Throw_With_ExecuteResponse_Output_When_ExitCode_Is_Greater_Than_3()
192186
{
193187
var failureExecuteResponse = new ExecuteResponse { ExitCode = 4, Output = "failure message" };
194-
Assert.ThrowsAsync<Exception>(() => RunAsync(failureExecuteResponse), "failure message");
188+
var exception = Assert.ThrowsAsync<Exception>(async() => await RunAsync(failureExecuteResponse));
189+
190+
Assert.That(exception.Message, Is.EqualTo("Error. Exit code: 4"));
195191
}
196192

197193
[Test]
198-
public void Should_Log_With_ExecuteResponse_Output_When_ExitCode_Is_Greater_Than_3()
194+
public void Should_Log_With_ExecuteResponse_ExitCode_And_Output_When_ExitCode_Is_Greater_Than_3()
199195
{
200196
var failureExecuteResponse = new ExecuteResponse { ExitCode = 4, Output = "failure message" };
201197

202-
203-
Assert.ThrowsAsync<Exception>(() => RunAsync(failureExecuteResponse), "failure message");
198+
Assert.ThrowsAsync<Exception>(() => RunAsync(failureExecuteResponse));
204199

205200
var mockLogger = mocker.GetMock<ILogger>();
206201
mockLogger.Verify(logger => logger.Log("Coverlet Run (TheProjectName) Error. Exit code: 4", "failure message"));
207202
}
203+
204+
[Test]
205+
public async Task Should_Log_The_ExecuteResponse_Output_On_Success()
206+
{
207+
var mockLogger = mocker.GetMock<ILogger>();
208+
mockLogger.Setup(logger => logger.Log(It.IsAny<string[]>())).Callback<string[]>(messages =>
209+
{
210+
Assert.Multiple(() =>
211+
{
212+
Assert.That(messages, Is.EqualTo(new string[] { "Coverlet Run (TheProjectName) - Output", successfulExecuteResponse.Output }));
213+
Assert.That(executed, Is.True);
214+
});
215+
216+
});
217+
218+
await RunSuccessfullyAsync();
219+
220+
mockLogger.Verify();
221+
}
222+
208223
private async Task RunSuccessfullyAsync()
209224
{
210225
await RunAsync(successfulExecuteResponse);

SharedProject/Core/Coverlet/Console/CoverletConsoleUtil.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,20 +177,21 @@ public async Task RunAsync(ICoverageProject project, CancellationToken cancellat
177177
cancellationToken
178178
);
179179
180-
/*
180+
/*
181181
0 - Success.
182182
1 - If any test fails.
183183
2 - Coverage percentage is below threshold.
184184
3 - Test fails and also coverage percentage is below threshold.
185185
*/
186186
if (result.ExitCode > 3)
187187
{
188-
logger.Log($"{title} Error. Exit code: {result.ExitCode}", result.Output);
188+
var errorExitCodeMessage = $"Error. Exit code: {result.ExitCode}";
189+
logger.Log($"{title} {errorExitCodeMessage}", result.Output);
189190

190-
throw new Exception(result.Output);
191+
throw new Exception(errorExitCodeMessage);
191192
}
192193

193-
logger.Log(title, result.Output);
194+
logger.Log($"{title} - Output", result.Output);
194195
}
195196
}
196197
}

0 commit comments

Comments
 (0)