Skip to content

Commit

Permalink
fix: restore some missing aliases for all types (#230)
Browse files Browse the repository at this point in the history
* fix: restore some missing aliases for all types
  * dateTime prefix incorrectly cased date-time
  * text-to-length excluded of valid aliases
* Update the automatically generated documentation related to the list of functions and predicates

---------

Co-authored-by: AppVeyor bot <[email protected]>
  • Loading branch information
Seddryck and AppVeyor bot authored Dec 28, 2023
1 parent 1f27e32 commit 10fc87a
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 4 deletions.
23 changes: 21 additions & 2 deletions Expressif.Testing/ExpressionTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public void Evaluate_ObjectIndexAsParameter_Valid()
}

[Test]
public void Evaluate_Synonyms_Valid()
public void Evaluate_AliasesPrefix_Valid()
{
var context = new Context();
context.CurrentObject.Set(new List<char>() { 'e', 's' });
Expand All @@ -80,6 +80,25 @@ public void Evaluate_Synonyms_Valid()
Assert.That(result, Is.EqualTo("nikola tela"));
}

[Test]
public void Evaluate_AliasesDateTime_Valid()
{
var expression = new Expression("dateTime-to-add(04:00:00, 4)", new Context());
var result = expression.Evaluate("2023-12-28 02:00:00");
Assert.That(result, Is.EqualTo(DateTime.Parse("2023-12-28 18:00:00")));
}

[Test]
[TestCase("null-to-empty | count-chars")]
[TestCase("null-to-empty | text-to-length")]
[TestCase("null-to-empty | length")]
public void Evaluate_AliasesAllStyles_Valid(string code)
{
var expression = new Expression(code, new Context());
var result = expression.Evaluate("foo");
Assert.That(result, Is.EqualTo(3));
}

[Test]
public void Evaluate_FunctionAsParameter_Valid()
{
Expand All @@ -91,4 +110,4 @@ public void Evaluate_FunctionAsParameter_Valid()
var result = expression.Evaluate("Nikola Tesla");
Assert.That(result, Is.EqualTo("nikola te"));
}
}
}
1 change: 1 addition & 0 deletions Expressif/Functions/BaseTypeMapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public abstract class BaseTypeMapper
public Type Execute(string functionName)
{
var name = functionName.ToKebabCase();
name = name.Replace("date-time", "dateTime");
if (!Mapping.TryGetValue(name, out var value))
throw new NotImplementedFunctionException(functionName);
return value;
Expand Down
2 changes: 1 addition & 1 deletion Expressif/Functions/Text/CountingFunctions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public abstract class BaseTextCountingFunction : BaseTextFunction
/// <summary>
/// Returns the length of the argument value. If the value is `null` or `empty` then it returns `0`. If the value is `blank` then it returns `-1`.
/// </summary>
[Function(prefix: "", aliases: ["count-chars"])]
[Function(aliases: ["count-chars"])]
public class Length : BaseTextCountingFunction
{
protected override object EvaluateSpecial(string value) => -1;
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ Install-Package Expressif
|Text | first-chars | text-to-first-chars |
|Text | html-to-text | |
|Text | last-chars | text-to-last-chars |
|Text | length | count-chars |
|Text | length | text-to-length, count-chars |
|Text | lower | text-to-lower |
|Text | mask-to-text | |
|Text | null-to-empty | |
Expand Down
1 change: 1 addition & 0 deletions docs/_data/function.json
Original file line number Diff line number Diff line change
Expand Up @@ -948,6 +948,7 @@
"Name": "length",
"IsPublic": true,
"Aliases": [
"text-to-length",
"count-chars"
],
"Scope": "Text",
Expand Down

0 comments on commit 10fc87a

Please sign in to comment.