Browse Source

USER_ID added to scripting and rule formatter.

pull/341/head
Sebastian Stehle 7 years ago
parent
commit
330c5e870f
  1. 6
      src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleEventFormatter.cs
  2. 48
      tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleEventFormatterTests.cs

6
src/Squidex.Domain.Apps.Core.Operations/HandleRules/RuleEventFormatter.cs

@ -52,6 +52,7 @@ namespace Squidex.Domain.Apps.Core.HandleRules
AddPattern("SCHEMA_NAME", SchemaName);
AddPattern("TIMESTAMP_DATETIME", TimestampTime);
AddPattern("TIMESTAMP_DATE", TimestampDate);
AddPattern("USER_ID", UserId);
AddPattern("USER_NAME", UserName);
AddPattern("USER_EMAIL", UserEmail);
}
@ -226,6 +227,11 @@ namespace Squidex.Domain.Apps.Core.HandleRules
return @event.User?.DisplayName() ?? Fallback;
}
private static string UserId(EnrichedEvent @event)
{
return @event.User?.Id ?? Fallback;
}
private static string UserEmail(EnrichedEvent @event)
{
return @event.User?.Email ?? Fallback;

48
tests/Squidex.Domain.Apps.Core.Tests/Operations/HandleRules/RuleEventFormatterTests.cs

@ -33,6 +33,9 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules
public RuleEventFormatterTests()
{
A.CallTo(() => user.Id)
.Returns("123");
A.CallTo(() => user.Email)
.Returns("me@email.com");
@ -112,51 +115,39 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules
}
[Theory]
[InlineData("From $USER_NAME ($USER_EMAIL)")]
[InlineData("Script(`From ${event.user.name} (${event.user.email})`)")]
[InlineData("From $USER_NAME ($USER_EMAIL, $USER_ID)")]
[InlineData("Script(`From ${event.user.name} (${event.user.email}, ${event.user.id})`)")]
public void Should_format_email_and_display_name_from_user(string script)
{
var @event = new EnrichedContentEvent { User = user, Actor = new RefToken(RefTokenType.Subject, "123") };
var @event = new EnrichedContentEvent { User = user };
var result = sut.Format(script, @event);
Assert.Equal("From me (me@email.com)", result);
Assert.Equal("From me (me@email.com, 123)", result);
}
[Theory]
[InlineData("From $USER_NAME ($USER_EMAIL)")]
[InlineData("Script(`From ${event.user.name} (${event.user.email})`)")]
[InlineData("From $USER_NAME ($USER_EMAIL, $USER_ID)")]
[InlineData("Script(`From ${event.user.name} (${event.user.email}, ${event.user.id})`)")]
public void Should_return_null_if_user_is_not_found(string script)
{
var @event = new EnrichedContentEvent { Actor = new RefToken(RefTokenType.Subject, "123") };
var result = sut.Format(script, @event);
Assert.Equal("From null (null)", result);
}
[Theory]
[InlineData("From $USER_NAME ($USER_EMAIL)")]
[InlineData("Script(`From ${event.user.name} (${event.user.email})`)")]
public void Should_return_null_if_user_is_not_found_with_scripting(string script)
{
var @event = new EnrichedContentEvent { Actor = new RefToken(RefTokenType.Subject, "123") };
var @event = new EnrichedContentEvent();
var result = sut.Format(script, @event);
Assert.Equal("From null (null)", result);
Assert.Equal("From null (null, null)", result);
}
[Theory]
[InlineData("From $USER_NAME ($USER_EMAIL)")]
[InlineData("Script(`From ${event.user.name} (${event.user.email})`)")]
[InlineData("From $USER_NAME ($USER_EMAIL, $USER_ID)")]
[InlineData("Script(`From ${event.user.name} (${event.user.email}, ${event.user.id})`)")]
public void Should_format_email_and_display_name_from_client(string script)
{
var @event = new EnrichedContentEvent { User = new ClientUser(new RefToken(RefTokenType.Client, "android")) };
var result = sut.Format(script, @event);
Assert.Equal("From client:android (client:android)", result);
Assert.Equal("From client:android (client:android, android)", result);
}
[Theory]
@ -347,5 +338,16 @@ namespace Squidex.Domain.Apps.Core.Operations.HandleRules
Assert.Equal("{\"name\":\"Berlin\"}", result);
}
[Theory]
[InlineData("Script(`From ${event.actor}`)")]
public void Should_format_actor(string script)
{
var @event = new EnrichedContentEvent { Actor = new RefToken(RefTokenType.Client, "android") };
var result = sut.Format(script, @event);
Assert.Equal("From client:android", result);
}
}
}

Loading…
Cancel
Save