From d608b9de145bf7418977ef148fe588440a81c3bb Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Thu, 27 Nov 2025 20:52:21 +0100 Subject: [PATCH] Adds unit tests for SetName activity (#7116) * Add unit tests for `SetName` activity to validate workflow name assignment and edge case handling * Remove unused `Elsa.Workflows.Activities` import from `SetNameTests`. --- .../Primitives/SetNameTests.cs | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 test/unit/Elsa.Activities.UnitTests/Primitives/SetNameTests.cs diff --git a/test/unit/Elsa.Activities.UnitTests/Primitives/SetNameTests.cs b/test/unit/Elsa.Activities.UnitTests/Primitives/SetNameTests.cs new file mode 100644 index 000000000..b6247700c --- /dev/null +++ b/test/unit/Elsa.Activities.UnitTests/Primitives/SetNameTests.cs @@ -0,0 +1,56 @@ +using Elsa.Testing.Shared; +using Elsa.Workflows; + +namespace Elsa.Activities.UnitTests.Primitives; + +public class SetNameTests +{ + [Fact(DisplayName = "SetName sets workflow name and completes successfully")] + public async Task Should_Set_Workflow_Name_And_Complete() + { + // Arrange + const string name = "My Workflow"; + + // Act + var context = await ExecuteAsync(name); + + // Assert + Assert.Equal(name, context.WorkflowExecutionContext.Name); + Assert.Equal(ActivityStatus.Completed, context.Status); + } + + [Theory(DisplayName = "SetName handles various name values")] + [InlineData("Simple Name")] + [InlineData("Name-With-Dashes")] + [InlineData("Name_With_Underscores")] + [InlineData("Name.With.Dots")] + [InlineData("123 Numeric Name")] + [InlineData("")] + public async Task Should_Handle_Various_Name_Values(string name) + { + // Act + var context = await ExecuteAsync(name); + + // Assert + Assert.Equal(name, context.WorkflowExecutionContext.Name); + } + + [Fact(DisplayName = "SetName handles null value")] + public async Task Should_Handle_Null_Value() + { + // Act + var context = await ExecuteAsync(null!); + + // Assert + Assert.Null(context.WorkflowExecutionContext.Name); + } + + private static async Task ExecuteAsync(string name) + { + var setName = new SetName + { + Value = new(name) + }; + return await new ActivityTestFixture(setName).ExecuteAsync(); + } +}