Fix unit tests

This commit is contained in:
Sipke Schoorstra 2021-09-16 20:34:32 +02:00
parent 37d687d526
commit cea453cb4f
4 changed files with 45 additions and 4 deletions

View file

@ -0,0 +1,12 @@
using System.Reflection;
using AutoFixture;
using AutoFixture.Xunit2;
using Elsa.Testing.Shared.AutoFixture.Customizations;
namespace Elsa.Testing.Shared.AutoFixture.Attributes
{
public class StubActivityBlueprintAttribute : CustomizeAttribute
{
public override ICustomization GetCustomization(ParameterInfo parameter) => new StubActivityBlueprintCustomization(parameter);
}
}

View file

@ -11,4 +11,10 @@ namespace Elsa.Testing.Shared.AutoFixture.Customizations
public StubElsaContextCustomization(ParameterInfo? parameter) : base(parameter) {}
}
public class StubActivityBlueprintCustomization : SpecimenBuilderForParameterCustomization
{
protected override ISpecimenBuilder GetUnfilteredSpecimenBuilder() => new StubActivityBlueprintSpecimenBuilder();
public StubActivityBlueprintCustomization(ParameterInfo? parameter) : base(parameter) {}
}
}

View file

@ -0,0 +1,22 @@
using System.Collections.Generic;
using AutoFixture.Kernel;
using Elsa.Services.Models;
using Moq;
namespace Elsa.Testing.Shared.AutoFixture.SpecimenBuilders
{
public class StubActivityBlueprintSpecimenBuilder : ISpecimenBuilder
{
public object Create(object request, ISpecimenContext context)
=> request.IsAnAutofixtureRequestForType<IActivityBlueprint>()? GetContext() : new NoSpecimen();
static object GetContext()
{
var mock = new Mock<IActivityBlueprint>();
mock.Setup(x => x.PropertyStorageProviders).Returns(new Dictionary<string, string>());
return mock.Object;
}
}
}

View file

@ -5,6 +5,7 @@ using Xunit;
using Elsa.ActivityResults;
using System.Linq;
using Elsa.Testing.Shared;
using Elsa.Testing.Shared.AutoFixture.Attributes;
namespace Elsa.Activities.Signaling
{
@ -54,9 +55,9 @@ namespace Elsa.Activities.Signaling
}
[Theory(DisplayName = "The ResumeAsync method should return a 'Done' Outcome result"), AutoMoqData]
public async Task ResumeAsyncShouldReturnDoneResult(SignalReceived sut, Signal triggeredSignal, object signalInput)
public async Task ResumeAsyncShouldReturnDoneResult(SignalReceived sut, Signal triggeredSignal, object signalInput, [StubActivityBlueprint] IActivityBlueprint activityBlueprint)
{
var context = new ActivityExecutionContext(default!, default!, default!, triggeredSignal, default, default);
var context = new ActivityExecutionContext(default!, default!, activityBlueprint, triggeredSignal, default, default);
triggeredSignal.Input = signalInput;
var result = await sut.ResumeAsync(context);
@ -66,9 +67,9 @@ namespace Elsa.Activities.Signaling
}
[Theory(DisplayName = "The ResumeAsync method should include the original signal input within the Output result"), AutoMoqData]
public async Task ResumeAsyncShouldReturnOriginalSignalInputWithinDoneResult(SignalReceived sut, Signal triggeredSignal, object signalInput)
public async Task ResumeAsyncShouldReturnOriginalSignalInputWithinDoneResult(SignalReceived sut, Signal triggeredSignal, object signalInput, [StubActivityBlueprint] IActivityBlueprint activityBlueprint)
{
var context = new ActivityExecutionContext(default!, default!, default!, triggeredSignal, default, default);
var context = new ActivityExecutionContext(default!, default!, activityBlueprint, triggeredSignal, default, default);
triggeredSignal.Input = signalInput;
await sut.ResumeAsync(context);
var resultOutput = sut.Output;