The test coverage here actually proves that for Liquid expressions,
the issue has already been fixed as part of other work. Specifically
it was fixed in 2a22a328c4 in the
class StringExtensions.cs
63 lines
3.9 KiB
C#
63 lines
3.9 KiB
C#
using System;
|
|
using System.Globalization;
|
|
using System.Threading.Tasks;
|
|
using Elsa.Services.Models;
|
|
using Elsa.Testing.Shared;
|
|
using Elsa.Testing.Shared.AutoFixture.Attributes;
|
|
using Xunit;
|
|
|
|
namespace Elsa.Expressions
|
|
{
|
|
public class LiteralHandlerTests
|
|
{
|
|
[Theory(DisplayName = "When the desired return type is a string, the EvaluateAsync method should return the literal expression"), AutoMoqData]
|
|
public async Task EvaluateAsyncShouldReturnExpressionLiteralWhenReturnTypeIsString(LiteralHandler sut,
|
|
string expression,
|
|
[StubActivityExecutionContext] ActivityExecutionContext context)
|
|
{
|
|
var result = await sut.EvaluateAsync(expression, typeof(string), context, default);
|
|
Assert.Equal(expression, result);
|
|
}
|
|
|
|
[Theory(DisplayName = "When the desired return type is an object, the EvaluateAsync method should return the literal expression"), AutoMoqData]
|
|
public async Task EvaluateAsyncShouldReturnExpressionLiteralWhenReturnTypeIsObject(LiteralHandler sut,
|
|
string expression,
|
|
[StubActivityExecutionContext] ActivityExecutionContext context)
|
|
{
|
|
var result = await sut.EvaluateAsync(expression, typeof(object), context, default);
|
|
Assert.Equal(expression, result);
|
|
}
|
|
|
|
[Theory(DisplayName = "When the desired return type is not string or object but the expression is null, the EvaluateAsync method should return null"), AutoMoqData]
|
|
public async Task EvaluateAsyncShouldReturnNullWhenExpressionIsNull(LiteralHandler sut,
|
|
[StubActivityExecutionContext] ActivityExecutionContext context)
|
|
{
|
|
var result = await sut.EvaluateAsync(null, typeof(Uri), context, default);
|
|
Assert.Null(result);
|
|
}
|
|
|
|
[Theory(DisplayName = "When the desired return type is not string or object but the expression is empty string, the EvaluateAsync method should return null"), AutoMoqData]
|
|
public async Task EvaluateAsyncShouldReturnNullWhenExpressionIsEmpty(LiteralHandler sut,
|
|
[StubActivityExecutionContext] ActivityExecutionContext context)
|
|
{
|
|
var result = await sut.EvaluateAsync(string.Empty, typeof(Uri), context, default);
|
|
Assert.Null(result);
|
|
}
|
|
|
|
[Theory(DisplayName = "When the desired return type is not string or object but the expression is whitespace-only, the EvaluateAsync method should return null"), AutoMoqData]
|
|
public async Task EvaluateAsyncShouldReturnNullWhenExpressionIsWhitespaceOnly(LiteralHandler sut,
|
|
[StubActivityExecutionContext] ActivityExecutionContext context)
|
|
{
|
|
var result = await sut.EvaluateAsync(" ", typeof(Uri), context, default);
|
|
Assert.Null(result);
|
|
}
|
|
|
|
[Theory(DisplayName = "When the desired return type is DateTime, the EvaluateAsync method should convert the string to a DateTime"), AutoMoqData]
|
|
public async Task EvaluateAsyncShouldConvertToDateTimeWhenThatIsDesiredReturnType(LiteralHandler sut,
|
|
[StubActivityExecutionContext] ActivityExecutionContext context)
|
|
{
|
|
var result = await sut.EvaluateAsync("2001-03-04T12:45:32Z", typeof(DateTime), context, default);
|
|
Assert.Equal(new DateTime(2001, 03, 04, 12, 45, 32, DateTimeKind.Utc), result);
|
|
}
|
|
}
|
|
} |