Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions src/Test/TestCases.Workflows/WF4Samples/LiteralTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,53 @@ public void CanConvertToString_EmptyString_ReturnsFalse()
literal.CanConvertToString(null).ShouldBeFalse();
}

[Theory]
[InlineData(" ")]
[InlineData(" ")]
[InlineData("\t")]
public void CanConvertToString_WhitespaceOnlyString_ReturnsFalse(string value)
{
var literal = new Literal<string>(value);
literal.CanConvertToString(null).ShouldBeFalse();
}

[Theory]
[InlineData(" ")]
[InlineData(" ")]
[InlineData("\t")]
public void XamlSerialize_WhitespaceOnlyStringLiteral_WritesLiteralElement(string value)
{
var argument = new InArgument<string>(new Literal<string>(value));

var xaml = XamlServices.Save(argument);

// Literal declares Value - a string - as its content property, which the XAML parser
// keeps; InArgument declares Expression, which it does not.
xaml.ShouldContain("<Literal");
}

[Theory]
[InlineData(" ")]
[InlineData(" ")]
[InlineData("\t")]
public void XamlRoundTrip_WhitespaceOnlyStringLiteral_PreservesTheValue(string value)
{
var argument = new InArgument<string>(new Literal<string>(value));

var xaml = XamlServices.Save(argument);
var deserialized = (InArgument<string>)XamlServices.Load(new StringReader(xaml));

deserialized.Expression.ShouldBeOfType<Literal<string>>();
((Literal<string>)deserialized.Expression).Value.ShouldBe(value);
}

[Fact]
public void CanConvertToString_StringWithSurroundingWhitespace_ReturnsTrue()
{
var literal = new Literal<string>(" x ");
literal.CanConvertToString(null).ShouldBeTrue();
}

[Fact]
public void CanConvertToString_IntValue_ReturnsTrue()
{
Expand Down
2 changes: 1 addition & 1 deletion src/UiPath.Workflow.Runtime/Expressions/Literal.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public bool CanConvertToString(IValueSerializerContext context)
if (valueType == TypeHelper.StringType)
{
string myValue = Value as string;
if (string.IsNullOrEmpty(myValue))
if (string.IsNullOrWhiteSpace(myValue))
{
return false;
}
Expand Down