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); + } +}