Improving maintainability of tests

This commit is contained in:
lucas.hipolito 2025-10-13 19:31:03 +02:00
parent ab7d0f6d55
commit 7147eb5124

View file

@ -1,5 +1,4 @@
using Elsa.Activities.UnitTests.Helpers;
using Elsa.Expressions.Models;
using Elsa.Workflows;
using Microsoft.Extensions.DependencyInjection;
using NSubstitute;
@ -8,45 +7,47 @@ namespace Elsa.Activities.UnitTests.Console;
public class WriteLineTests
{
private readonly TextWriter _mockTextWriter;
private readonly IStandardOutStreamProvider _mockProvider;
public WriteLineTests()
{
_mockTextWriter = Substitute.For<TextWriter>();
_mockProvider = Substitute.For<IStandardOutStreamProvider>();
_mockProvider.GetTextWriter().Returns(_mockTextWriter);
}
[Fact]
public async Task Should_Write_String_Literal_To_Output()
{
// Arrange
const string expectedText = "Hello, World!";
var mockTextWriter = Substitute.For<TextWriter>();
var mockProvider = Substitute.For<IStandardOutStreamProvider>();
mockProvider.GetTextWriter().Returns(mockTextWriter);
var writeLine = new WriteLine(expectedText);
// Act
await ActivityTestHelper.ExecuteActivityAsync(writeLine, services =>
{
services.AddSingleton(mockProvider);
services.AddSingleton(_mockProvider);
});
// Assert
mockTextWriter.Received(1).WriteLine(expectedText);
_mockTextWriter.Received(1).WriteLine(expectedText);
}
[Fact]
public async Task Should_Write_Null_Value_To_Output()
{
// Arrange
var mockTextWriter = Substitute.For<TextWriter>();
var mockProvider = Substitute.For<IStandardOutStreamProvider>();
mockProvider.GetTextWriter().Returns(mockTextWriter);
var writeLine = new WriteLine(new Input<string>(default(string)!));
// Act
await ActivityTestHelper.ExecuteActivityAsync(writeLine, services =>
{
services.AddSingleton(mockProvider);
services.AddSingleton(_mockProvider);
});
// Assert
mockTextWriter.Received(1).WriteLine(Arg.Is<string?>(s => s == null));
_mockTextWriter.Received(1).WriteLine(Arg.Is<string?>(s => s == null));
}
[Fact]
@ -54,20 +55,16 @@ public class WriteLineTests
{
// Arrange
const string expectedText = "";
var mockTextWriter = Substitute.For<TextWriter>();
var mockProvider = Substitute.For<IStandardOutStreamProvider>();
mockProvider.GetTextWriter().Returns(mockTextWriter);
var writeLine = new WriteLine(expectedText);
// Act
await ActivityTestHelper.ExecuteActivityAsync(writeLine, services =>
{
services.AddSingleton(mockProvider);
services.AddSingleton(_mockProvider);
});
// Assert
mockTextWriter.Received(1).WriteLine(expectedText);
_mockTextWriter.Received(1).WriteLine(expectedText);
}
[Fact]