Browse Source

Fix manual trigger handlers.

pull/523/head
Sebastian 6 years ago
parent
commit
ccaee8fdb6
  1. 2
      backend/src/Squidex.Domain.Apps.Core.Model/Rules/EnrichedEvents/EnrichedManualEvent.cs
  2. 3
      backend/src/Squidex.Domain.Apps.Entities/Rules/ManualTriggerHandler.cs
  3. 2
      backend/src/Squidex.Domain.Apps.Entities/Rules/RuleDomainObject.cs
  4. 13
      backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/ManualTriggerHandlerTests.cs

2
backend/src/Squidex.Domain.Apps.Core.Model/Rules/EnrichedEvents/EnrichedManualEvent.cs

@ -7,7 +7,7 @@
namespace Squidex.Domain.Apps.Core.Rules.EnrichedEvents
{
public sealed class EnrichedManualEvent : EnrichedEvent
public sealed class EnrichedManualEvent : EnrichedUserEventBase
{
public override long Partition
{

3
backend/src/Squidex.Domain.Apps.Entities/Rules/ManualTriggerHandler.cs

@ -11,6 +11,7 @@ using Squidex.Domain.Apps.Core.Rules.EnrichedEvents;
using Squidex.Domain.Apps.Core.Rules.Triggers;
using Squidex.Domain.Apps.Events.Rules;
using Squidex.Infrastructure.EventSourcing;
using Squidex.Infrastructure.Reflection;
namespace Squidex.Domain.Apps.Entities.Rules
{
@ -23,6 +24,8 @@ namespace Squidex.Domain.Apps.Entities.Rules
Name = "Manual"
};
SimpleMapper.Map(@event.Payload, result);
return Task.FromResult<EnrichedManualEvent?>(result);
}

2
backend/src/Squidex.Domain.Apps.Entities/Rules/RuleDomainObject.cs

@ -95,6 +95,8 @@ namespace Squidex.Domain.Apps.Entities.Rules
private async Task<object?> Trigger(TriggerRule command)
{
await EnsureLoadedAsync();
var @event = SimpleMapper.Map(command, new RuleManuallyTriggered { RuleId = Snapshot.Id, AppId = Snapshot.AppId });
await ruleEnqueuer.Enqueue(Snapshot.RuleDef, Snapshot.Id, Envelope.Create(@event));

13
backend/tests/Squidex.Domain.Apps.Entities.Tests/Rules/ManualTriggerHandlerTests.cs

@ -12,6 +12,7 @@ using Squidex.Domain.Apps.Core.Rules.EnrichedEvents;
using Squidex.Domain.Apps.Core.Rules.Triggers;
using Squidex.Domain.Apps.Events;
using Squidex.Domain.Apps.Events.Rules;
using Squidex.Infrastructure;
using Squidex.Infrastructure.EventSourcing;
using Xunit;
@ -31,6 +32,18 @@ namespace Squidex.Domain.Apps.Entities.Rules
Assert.Equal("Manual", result.Single().Name);
}
[Fact]
public async Task Should_create_event_with_actor()
{
var actor = new RefToken(RefTokenType.Subject, "me");
var envelope = Envelope.Create<AppEvent>(new RuleManuallyTriggered { Actor = actor });
var result = await sut.CreateEnrichedEventsAsync(envelope);
Assert.Equal(actor, ((EnrichedUserEventBase)result.Single()).Actor);
}
[Fact]
public void Should_always_trigger()
{

Loading…
Cancel
Save