From cea453cb4ff6ee1e87a87dd5b5d9e9c7327ee24d Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Thu, 16 Sep 2021 20:34:32 +0200 Subject: [PATCH] Fix unit tests --- .../StubActivityBlueprintAttribute.cs | 12 ++++++++++ .../StubElsaContextCustomization.cs | 6 +++++ .../StubActivityBlueprintSpecimenBuilder.cs | 22 +++++++++++++++++++ .../Signaling/SignalReceivedTests.cs | 9 ++++---- 4 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 test/shared/Elsa.Testing.Shared/AutoFixture/Attributes/StubActivityBlueprintAttribute.cs create mode 100644 test/shared/Elsa.Testing.Shared/AutoFixture/SpecimenBuilders/StubActivityBlueprintSpecimenBuilder.cs diff --git a/test/shared/Elsa.Testing.Shared/AutoFixture/Attributes/StubActivityBlueprintAttribute.cs b/test/shared/Elsa.Testing.Shared/AutoFixture/Attributes/StubActivityBlueprintAttribute.cs new file mode 100644 index 000000000..4fee82714 --- /dev/null +++ b/test/shared/Elsa.Testing.Shared/AutoFixture/Attributes/StubActivityBlueprintAttribute.cs @@ -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); + } +} \ No newline at end of file diff --git a/test/shared/Elsa.Testing.Shared/AutoFixture/Customizations/StubElsaContextCustomization.cs b/test/shared/Elsa.Testing.Shared/AutoFixture/Customizations/StubElsaContextCustomization.cs index acb64ef86..8f7b58742 100644 --- a/test/shared/Elsa.Testing.Shared/AutoFixture/Customizations/StubElsaContextCustomization.cs +++ b/test/shared/Elsa.Testing.Shared/AutoFixture/Customizations/StubElsaContextCustomization.cs @@ -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) {} + } } \ No newline at end of file diff --git a/test/shared/Elsa.Testing.Shared/AutoFixture/SpecimenBuilders/StubActivityBlueprintSpecimenBuilder.cs b/test/shared/Elsa.Testing.Shared/AutoFixture/SpecimenBuilders/StubActivityBlueprintSpecimenBuilder.cs new file mode 100644 index 000000000..79ba1ea05 --- /dev/null +++ b/test/shared/Elsa.Testing.Shared/AutoFixture/SpecimenBuilders/StubActivityBlueprintSpecimenBuilder.cs @@ -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()? GetContext() : new NoSpecimen(); + + static object GetContext() + { + var mock = new Mock(); + + mock.Setup(x => x.PropertyStorageProviders).Returns(new Dictionary()); + + return mock.Object; + } + } +} \ No newline at end of file diff --git a/test/unit/Elsa.UnitTests/Activities/Signaling/SignalReceivedTests.cs b/test/unit/Elsa.UnitTests/Activities/Signaling/SignalReceivedTests.cs index 7e6336cd2..c1c049f1b 100644 --- a/test/unit/Elsa.UnitTests/Activities/Signaling/SignalReceivedTests.cs +++ b/test/unit/Elsa.UnitTests/Activities/Signaling/SignalReceivedTests.cs @@ -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;