From b488158abe006bde338138cd7cf7e1106eb23a6b Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 14:14:00 -0800 Subject: [PATCH] .NET Workflows - Add unit tests for DefaultActionExecutor (Declarative Workflows) (#3836) * Initial plan * Add comprehensive unit tests for DefaultActionExecutor with 100% code coverage Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * Address code review feedback: Add explicit Xunit using and improve variable naming Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * Streamlined tests * Update dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.UnitTests/ObjectModel/DefaultActionExecutorTest.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Restore all 4 test cases and remove redundant event assertions Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> * Remove redudant tests --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: crickman <66376200+crickman@users.noreply.github.com> Co-authored-by: Chris Rickman Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../ObjectModel/DefaultActionExecutorTest.cs | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.UnitTests/ObjectModel/DefaultActionExecutorTest.cs diff --git a/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.UnitTests/ObjectModel/DefaultActionExecutorTest.cs b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.UnitTests/ObjectModel/DefaultActionExecutorTest.cs new file mode 100644 index 0000000000..0e7f0a4558 --- /dev/null +++ b/dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.UnitTests/ObjectModel/DefaultActionExecutorTest.cs @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft. All rights reserved. + +using System.Threading.Tasks; +using Microsoft.Agents.AI.Workflows.Declarative.ObjectModel; +using Microsoft.Agents.ObjectModel; +using Xunit.Abstractions; + +namespace Microsoft.Agents.AI.Workflows.Declarative.UnitTests.ObjectModel; + +/// +/// Tests for . +/// +public sealed class DefaultActionExecutorTest(ITestOutputHelper output) : WorkflowActionExecutorTest(output) +{ + [Fact] + public async Task ExecuteDefaultActionAsync() + { + // Arrange, Act & Assert + await this.ExecuteTestAsync( + this.FormatDisplayName(nameof(ExecuteDefaultActionAsync))); + } + + private async Task ExecuteTestAsync(string displayName) + { + // Arrange + ResetVariable model = this.CreateModel(displayName); + + // Act + DefaultActionExecutor action = new(model, this.State); + WorkflowEvent[] events = await this.ExecuteAsync(action); + + // Assert + VerifyModel(model, action); + Assert.NotEmpty(events); + } + + private ResetVariable CreateModel(string displayName) + { + // Use a simple concrete action type since DialogAction.Builder is abstract + ResetVariable.Builder actionBuilder = + new() + { + Id = this.CreateActionId(), + DisplayName = this.FormatDisplayName(displayName), + Variable = PropertyPath.Create(FormatVariablePath("TestVariable")), + }; + + return AssignParent(actionBuilder); + } +}