From bf48dd726bdeccb910eeee32e49de80c897ec86d Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Sat, 9 May 2026 02:56:19 -0500 Subject: [PATCH 1/5] Added necessary minimum 1.16 version flags Signed-off-by: Whit Waldo --- .../MultiAppChildWorkflowAndActivityTests.cs | 3 ++- .../MultiAppChildWorkflowTests.cs | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowAndActivityTests.cs b/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowAndActivityTests.cs index 9ea19699f..13cadcbd8 100644 --- a/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowAndActivityTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowAndActivityTests.cs @@ -14,6 +14,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Common.Options; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -27,7 +28,7 @@ public sealed class MultiAppChildWorkflowAndActivityTests private static readonly string App2Id = $"workflow-app-2-{UniqueId}"; private static readonly string App3Id = $"workflow-app-3-{UniqueId}"; - [Fact] + [MinimumDaprRuntimeFact("1.16")] public async Task ShouldScheduleChildWorkflowOnRemoteApp_ThatCallsActivityOnAnotherRemoteApp_UsingAppIds() { var options1 = new DaprRuntimeOptions().WithAppId(App1Id); diff --git a/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowTests.cs b/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowTests.cs index 1a4c2ff08..4e715163b 100644 --- a/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowTests.cs @@ -14,6 +14,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Common.Options; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -22,7 +23,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class MultiAppChildWorkflowTests { - [Fact] + [MinimumDaprRuntimeFact("1.16")] public async Task ShouldScheduleChildWorkflowOnRemoteAppUsingAppId() { var guid = Guid.NewGuid().ToString("N"); From 91568f253b302b404556c39e4afd82d377377839 Mon Sep 17 00:00:00 2001 From: Whit Waldo Date: Sat, 9 May 2026 02:57:59 -0500 Subject: [PATCH 2/5] Adding test failures on older Dapr runtime versions that don't support tested features Signed-off-by: Whit Waldo --- .../MaxConcurrentWorkflowsTests.cs | 5 +++-- test/Dapr.IntegrationTest.Workflow/ParallelExecutionTests.cs | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/test/Dapr.IntegrationTest.Workflow/MaxConcurrentWorkflowsTests.cs b/test/Dapr.IntegrationTest.Workflow/MaxConcurrentWorkflowsTests.cs index c1e34a998..cfec310a2 100644 --- a/test/Dapr.IntegrationTest.Workflow/MaxConcurrentWorkflowsTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/MaxConcurrentWorkflowsTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -25,7 +26,7 @@ public sealed class MaxConcurrentWorkflowsTests /// Verifies that setting to 1 /// does not deadlock the runtime and that all scheduled workflows eventually complete. /// - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldCompleteAllWorkflowsWhenLimitIsOne() { const int workflowCount = 3; @@ -86,7 +87,7 @@ await Task.WhenAll(workflowInstanceIds.Select(id => /// Verifies that a custom value /// greater than 1 does not deadlock the runtime and that all scheduled workflows complete. /// - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldCompleteAllWorkflowsWithCustomConcurrencyLimit() { const int limit = 2; diff --git a/test/Dapr.IntegrationTest.Workflow/ParallelExecutionTests.cs b/test/Dapr.IntegrationTest.Workflow/ParallelExecutionTests.cs index 806ee0e60..8b651c1c3 100644 --- a/test/Dapr.IntegrationTest.Workflow/ParallelExecutionTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ParallelExecutionTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -21,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class ParallelExecutionTests { - [Fact] + [MinimumDaprRuntimeFact("1.17.0")] public async Task ShouldExecuteActivitiesInParallel() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); From dc265d5087e2914268dd7fc4d1ffde5ed5823a72 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 9 May 2026 08:20:32 +0000 Subject: [PATCH 3/5] test: gate max concurrent activity workflow tests to dapr 1.17+ Agent-Logs-Url: https://github.com/dapr/dotnet-sdk/sessions/3f327d55-2698-49ae-9b0c-1021aec6d1c8 Co-authored-by: WhitWaldo <2238529+WhitWaldo@users.noreply.github.com> --- .../MaxConcurrentActivitiesTests.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/Dapr.IntegrationTest.Workflow/MaxConcurrentActivitiesTests.cs b/test/Dapr.IntegrationTest.Workflow/MaxConcurrentActivitiesTests.cs index ae13e38ec..897c61e2c 100644 --- a/test/Dapr.IntegrationTest.Workflow/MaxConcurrentActivitiesTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/MaxConcurrentActivitiesTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -25,7 +26,7 @@ public sealed class MaxConcurrentActivitiesTests /// Verifies that = 1 limits /// activity execution to a single concurrent activity even when the workflow fans out more. /// - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldRespectMaxConcurrentActivitiesLimitOfOne() { const int limit = 1; @@ -82,7 +83,7 @@ public async Task ShouldRespectMaxConcurrentActivitiesLimitOfOne() /// Verifies that = 3 allows up to /// 3 concurrent activities and that all activities complete successfully. /// - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldRespectMaxConcurrentActivitiesLimitOfThree() { const int limit = 3; From 53a3bd7719081eb560e49da9c13c929c1fb60f7c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 9 May 2026 09:31:36 +0000 Subject: [PATCH 4/5] test(workflow): gate timeout-prone integration tests to min runtime 1.17 Agent-Logs-Url: https://github.com/dapr/dotnet-sdk/sessions/72bdff95-810b-40a6-a9d7-b22917836138 Co-authored-by: WhitWaldo <2238529+WhitWaldo@users.noreply.github.com> --- .../ActivityCompletionAcknowledgementTests.cs | 2 +- .../ActivityCompletionLoadTests.cs | 2 +- .../ChildWorkflowRetryPolicyBackoffTests.cs | 2 +- test/Dapr.IntegrationTest.Workflow/ContinueAsNewTests.cs | 2 +- .../DaprApiTokenWorkflowTests.cs | 2 +- test/Dapr.IntegrationTest.Workflow/ErrorHandlingTests.cs | 2 +- .../ExternalInputWorkflowTests.cs | 6 +++--- test/Dapr.IntegrationTest.Workflow/MultiAppActivityTests.cs | 2 +- .../MultiAppChildWorkflowTests.cs | 2 +- test/Dapr.IntegrationTest.Workflow/PauseResumeTests.cs | 2 +- test/Dapr.IntegrationTest.Workflow/PurgeTests.cs | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/test/Dapr.IntegrationTest.Workflow/ActivityCompletionAcknowledgementTests.cs b/test/Dapr.IntegrationTest.Workflow/ActivityCompletionAcknowledgementTests.cs index 79275831c..fc09689a3 100644 --- a/test/Dapr.IntegrationTest.Workflow/ActivityCompletionAcknowledgementTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ActivityCompletionAcknowledgementTests.cs @@ -22,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class ActivityCompletionAcknowledgementTests { - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ActivityCompletion_ShouldNotBeRetried_WhenAcknowledged() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/ActivityCompletionLoadTests.cs b/test/Dapr.IntegrationTest.Workflow/ActivityCompletionLoadTests.cs index 96b180329..337be1074 100644 --- a/test/Dapr.IntegrationTest.Workflow/ActivityCompletionLoadTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ActivityCompletionLoadTests.cs @@ -23,7 +23,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class ActivityCompletionLoadTests { - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ActivityCompletions_ShouldBeAcknowledged_UnderLoad() { const int activityCount = 50; diff --git a/test/Dapr.IntegrationTest.Workflow/ChildWorkflowRetryPolicyBackoffTests.cs b/test/Dapr.IntegrationTest.Workflow/ChildWorkflowRetryPolicyBackoffTests.cs index 48a2f19cc..1f278a863 100644 --- a/test/Dapr.IntegrationTest.Workflow/ChildWorkflowRetryPolicyBackoffTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ChildWorkflowRetryPolicyBackoffTests.cs @@ -27,7 +27,7 @@ public sealed class ChildWorkflowRetryPolicyBackoffTests private static readonly TimeSpan FirstRetryInterval = TimeSpan.FromSeconds(5); private static readonly TimeSpan AllowedSkew = TimeSpan.FromSeconds(1); - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ShouldRetryChildWorkflowWithBackoff() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/ContinueAsNewTests.cs b/test/Dapr.IntegrationTest.Workflow/ContinueAsNewTests.cs index 2b3946f3e..f0efae5da 100644 --- a/test/Dapr.IntegrationTest.Workflow/ContinueAsNewTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ContinueAsNewTests.cs @@ -21,7 +21,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class ContinueAsNewTests { - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ShouldContinueAsNewUntilComplete() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/DaprApiTokenWorkflowTests.cs b/test/Dapr.IntegrationTest.Workflow/DaprApiTokenWorkflowTests.cs index 22b8d727a..bc7ffc117 100644 --- a/test/Dapr.IntegrationTest.Workflow/DaprApiTokenWorkflowTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/DaprApiTokenWorkflowTests.cs @@ -24,7 +24,7 @@ public sealed class DaprApiTokenWorkflowTests { private const string DaprApiTokenEnvVarName = "DAPR_API_TOKEN"; - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ShouldRunWorkflowWithDaprApiTokenFromEnvVar() { const string daprApiToken = "workflow-env-token"; diff --git a/test/Dapr.IntegrationTest.Workflow/ErrorHandlingTests.cs b/test/Dapr.IntegrationTest.Workflow/ErrorHandlingTests.cs index 660319899..1d42b6de3 100644 --- a/test/Dapr.IntegrationTest.Workflow/ErrorHandlingTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ErrorHandlingTests.cs @@ -63,7 +63,7 @@ public async Task ShouldRetryFailedActivityAndSucceed() Assert.Equal("Success after retries", output); } - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ShouldCancelTimerOnExternalEvent() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/ExternalInputWorkflowTests.cs b/test/Dapr.IntegrationTest.Workflow/ExternalInputWorkflowTests.cs index cd48f8672..680ff02dd 100644 --- a/test/Dapr.IntegrationTest.Workflow/ExternalInputWorkflowTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ExternalInputWorkflowTests.cs @@ -30,7 +30,7 @@ public sealed partial class ExternalInputWorkflowTests new("Computers", 500, 100) ]; - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleMultipleExternalEvents_Simple() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -173,7 +173,7 @@ await daprWorkflowClient.ScheduleNewWorkflowAsync(nameof(OrderProcessingWorkflow Assert.True(resultValue.Processed); } - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleExternalEventTimeout() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -317,7 +317,7 @@ public enum ApprovalResult Rejected = 2 } - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleMultipleExternalEvents() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/MultiAppActivityTests.cs b/test/Dapr.IntegrationTest.Workflow/MultiAppActivityTests.cs index 5f2e28b00..72e2e32e7 100644 --- a/test/Dapr.IntegrationTest.Workflow/MultiAppActivityTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/MultiAppActivityTests.cs @@ -22,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class MultiAppActivityTests { - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ShouldScheduleActivityOnRemoteAppUsingAppId() { var guid = Guid.NewGuid().ToString("N"); diff --git a/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowTests.cs b/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowTests.cs index 4e715163b..662a96d70 100644 --- a/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowTests.cs @@ -23,7 +23,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class MultiAppChildWorkflowTests { - [MinimumDaprRuntimeFact("1.16")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldScheduleChildWorkflowOnRemoteAppUsingAppId() { var guid = Guid.NewGuid().ToString("N"); diff --git a/test/Dapr.IntegrationTest.Workflow/PauseResumeTests.cs b/test/Dapr.IntegrationTest.Workflow/PauseResumeTests.cs index 1bc41a7be..c26f7b3b8 100644 --- a/test/Dapr.IntegrationTest.Workflow/PauseResumeTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/PauseResumeTests.cs @@ -21,7 +21,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class PauseResumeTests { - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ShouldReportPausedStatusWhenWorkflowIsSuspended() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/PurgeTests.cs b/test/Dapr.IntegrationTest.Workflow/PurgeTests.cs index 6c847f11b..19c97c229 100644 --- a/test/Dapr.IntegrationTest.Workflow/PurgeTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/PurgeTests.cs @@ -22,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class PurgeTests { - [Fact] + [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] public async Task ShouldPurgeCompletedWorkflowInstance() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); From 35fe8085d3b2a7c4a3f796120cfe8e3799588c5f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 9 May 2026 09:51:26 +0000 Subject: [PATCH 5/5] test(workflow): gate all remaining integration tests to minimum runtime 1.17 Agent-Logs-Url: https://github.com/dapr/dotnet-sdk/sessions/798b3e3a-a557-47a9-9199-88cb2236b08e Co-authored-by: WhitWaldo <2238529+WhitWaldo@users.noreply.github.com> --- .../ActivityCompletionAcknowledgementTests.cs | 3 ++- .../ActivityCompletionLoadTests.cs | 3 ++- .../ActivitySleepTests.cs | 3 ++- .../ChildWorkflowRetryPolicyBackoffTests.cs | 3 ++- .../ContinueAsNewCarryoverEventsTests.cs | 3 ++- .../ContinueAsNewTests.cs | 3 ++- .../CurrentUtcDateTimeConsistencyTests.cs | 3 ++- .../DaprApiTokenWorkflowTests.cs | 3 ++- .../ErrorHandlingTests.cs | 5 +++-- .../ExternalEventDoesNotBlockConcurrencySlotTests.cs | 3 ++- .../ExternalInputWorkflowTests.cs | 11 ++++++----- .../Dapr.IntegrationTest.Workflow/FanOutFanInTests.cs | 3 ++- .../MultiAppActivityTests.cs | 3 ++- .../MultiAppChildWorkflowAndActivityTests.cs | 2 +- .../ParallelExecutionTests.cs | 2 +- .../Dapr.IntegrationTest.Workflow/PauseResumeTests.cs | 5 +++-- test/Dapr.IntegrationTest.Workflow/PurgeTests.cs | 7 ++++--- .../ReplaySafetyTests.cs | 7 ++++--- .../Dapr.IntegrationTest.Workflow/SubworkflowTests.cs | 5 +++-- .../TaskChainingWorkflowTests.cs | 3 ++- .../TaskExecutionKeyTests.cs | 3 ++- .../TerminateWorkflowTests.cs | 5 +++-- test/Dapr.IntegrationTest.Workflow/TimerTests.cs | 3 ++- .../WorkflowMonitorTests.cs | 3 ++- .../WorkflowRetryPolicyBackoffTests.cs | 3 ++- 25 files changed, 60 insertions(+), 37 deletions(-) diff --git a/test/Dapr.IntegrationTest.Workflow/ActivityCompletionAcknowledgementTests.cs b/test/Dapr.IntegrationTest.Workflow/ActivityCompletionAcknowledgementTests.cs index fc09689a3..3989246c0 100644 --- a/test/Dapr.IntegrationTest.Workflow/ActivityCompletionAcknowledgementTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ActivityCompletionAcknowledgementTests.cs @@ -14,6 +14,7 @@ using System.Collections.Concurrent; using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -22,7 +23,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class ActivityCompletionAcknowledgementTests { - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ActivityCompletion_ShouldNotBeRetried_WhenAcknowledged() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/ActivityCompletionLoadTests.cs b/test/Dapr.IntegrationTest.Workflow/ActivityCompletionLoadTests.cs index 337be1074..c24ed5da7 100644 --- a/test/Dapr.IntegrationTest.Workflow/ActivityCompletionLoadTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ActivityCompletionLoadTests.cs @@ -14,6 +14,7 @@ using System.Collections.Concurrent; using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -23,7 +24,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class ActivityCompletionLoadTests { - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ActivityCompletions_ShouldBeAcknowledged_UnderLoad() { const int activityCount = 50; diff --git a/test/Dapr.IntegrationTest.Workflow/ActivitySleepTests.cs b/test/Dapr.IntegrationTest.Workflow/ActivitySleepTests.cs index 4edbcff55..9b2dee8d9 100644 --- a/test/Dapr.IntegrationTest.Workflow/ActivitySleepTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ActivitySleepTests.cs @@ -14,6 +14,7 @@ using System.Diagnostics; using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -22,7 +23,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class ActivitySleepTests { - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleActivitySleep() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/ChildWorkflowRetryPolicyBackoffTests.cs b/test/Dapr.IntegrationTest.Workflow/ChildWorkflowRetryPolicyBackoffTests.cs index 1f278a863..583cf9592 100644 --- a/test/Dapr.IntegrationTest.Workflow/ChildWorkflowRetryPolicyBackoffTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ChildWorkflowRetryPolicyBackoffTests.cs @@ -14,6 +14,7 @@ using System.Collections.Concurrent; using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -27,7 +28,7 @@ public sealed class ChildWorkflowRetryPolicyBackoffTests private static readonly TimeSpan FirstRetryInterval = TimeSpan.FromSeconds(5); private static readonly TimeSpan AllowedSkew = TimeSpan.FromSeconds(1); - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldRetryChildWorkflowWithBackoff() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/ContinueAsNewCarryoverEventsTests.cs b/test/Dapr.IntegrationTest.Workflow/ContinueAsNewCarryoverEventsTests.cs index 041f6ca0d..ca42bfe62 100644 --- a/test/Dapr.IntegrationTest.Workflow/ContinueAsNewCarryoverEventsTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ContinueAsNewCarryoverEventsTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -35,7 +36,7 @@ public sealed class ContinueAsNewCarryoverEventsTests /// After the fix the full buffer is captured once all events are processed, so every /// signal survives as a carryover event and the workflow counts down to zero. /// - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ContinueAsNew_ShouldCarryOverEvents_WhenMultipleSignalsArriveTogether() { const int signalCount = 250; diff --git a/test/Dapr.IntegrationTest.Workflow/ContinueAsNewTests.cs b/test/Dapr.IntegrationTest.Workflow/ContinueAsNewTests.cs index f0efae5da..63c8d0970 100644 --- a/test/Dapr.IntegrationTest.Workflow/ContinueAsNewTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ContinueAsNewTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -21,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class ContinueAsNewTests { - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldContinueAsNewUntilComplete() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/CurrentUtcDateTimeConsistencyTests.cs b/test/Dapr.IntegrationTest.Workflow/CurrentUtcDateTimeConsistencyTests.cs index 9ca126d48..5a7b0ff91 100644 --- a/test/Dapr.IntegrationTest.Workflow/CurrentUtcDateTimeConsistencyTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/CurrentUtcDateTimeConsistencyTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -53,7 +54,7 @@ public sealed class CurrentUtcDateTimeConsistencyTests /// while checkpoint (2) returns the second turn's timestamp, so the /// sequence is not monotonically non-decreasing and the assertion fails. /// - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task CurrentUtcDateTime_IsMonotonicallyNonDecreasing_AcrossReplays() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/DaprApiTokenWorkflowTests.cs b/test/Dapr.IntegrationTest.Workflow/DaprApiTokenWorkflowTests.cs index bc7ffc117..0521f9b4d 100644 --- a/test/Dapr.IntegrationTest.Workflow/DaprApiTokenWorkflowTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/DaprApiTokenWorkflowTests.cs @@ -14,6 +14,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Common.Options; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -24,7 +25,7 @@ public sealed class DaprApiTokenWorkflowTests { private const string DaprApiTokenEnvVarName = "DAPR_API_TOKEN"; - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldRunWorkflowWithDaprApiTokenFromEnvVar() { const string daprApiToken = "workflow-env-token"; diff --git a/test/Dapr.IntegrationTest.Workflow/ErrorHandlingTests.cs b/test/Dapr.IntegrationTest.Workflow/ErrorHandlingTests.cs index 1d42b6de3..c74adbb8e 100644 --- a/test/Dapr.IntegrationTest.Workflow/ErrorHandlingTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ErrorHandlingTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -21,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class ErrorHandlingTests { - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldRetryFailedActivityAndSucceed() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -63,7 +64,7 @@ public async Task ShouldRetryFailedActivityAndSucceed() Assert.Equal("Success after retries", output); } - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldCancelTimerOnExternalEvent() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/ExternalEventDoesNotBlockConcurrencySlotTests.cs b/test/Dapr.IntegrationTest.Workflow/ExternalEventDoesNotBlockConcurrencySlotTests.cs index 4b96454a4..8e01aa5a3 100644 --- a/test/Dapr.IntegrationTest.Workflow/ExternalEventDoesNotBlockConcurrencySlotTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ExternalEventDoesNotBlockConcurrencySlotTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -34,7 +35,7 @@ public sealed class ExternalEventDoesNotBlockConcurrencySlotTests /// 3 workflows that each wait on an external event, then schedule a 4th workflow and /// confirm it completes before releasing the waiting ones. /// - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task FourthWorkflow_ShouldComplete_WhileFirstThreeAreWaitingOnExternalEvent() { const int concurrencyLimit = 3; diff --git a/test/Dapr.IntegrationTest.Workflow/ExternalInputWorkflowTests.cs b/test/Dapr.IntegrationTest.Workflow/ExternalInputWorkflowTests.cs index 680ff02dd..49233c917 100644 --- a/test/Dapr.IntegrationTest.Workflow/ExternalInputWorkflowTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ExternalInputWorkflowTests.cs @@ -13,6 +13,7 @@ using Dapr.Client; using Dapr.Testcontainers.Common; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -30,7 +31,7 @@ public sealed partial class ExternalInputWorkflowTests new("Computers", 500, 100) ]; - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleMultipleExternalEvents_Simple() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -77,7 +78,7 @@ public async Task ShouldHandleMultipleExternalEvents_Simple() Assert.Equal("FirstData-42-True", output); } - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleStandardWorkflowsWithDependencyInjection() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -173,7 +174,7 @@ await daprWorkflowClient.ScheduleNewWorkflowAsync(nameof(OrderProcessingWorkflow Assert.True(resultValue.Processed); } - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleExternalEventTimeout() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -216,7 +217,7 @@ public async Task ShouldHandleExternalEventTimeout() Assert.Equal("Timeout", output); } - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleExternalEventWithDefaultValue() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -317,7 +318,7 @@ public enum ApprovalResult Rejected = 2 } - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleMultipleExternalEvents() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/FanOutFanInTests.cs b/test/Dapr.IntegrationTest.Workflow/FanOutFanInTests.cs index dffcc869f..bc064781f 100644 --- a/test/Dapr.IntegrationTest.Workflow/FanOutFanInTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/FanOutFanInTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -23,7 +24,7 @@ public sealed class FanOutFanInTests { private const string CompletedMessage = "Workflow completed!"; - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldFanOutAndFanIn() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/MultiAppActivityTests.cs b/test/Dapr.IntegrationTest.Workflow/MultiAppActivityTests.cs index 72e2e32e7..1051fe858 100644 --- a/test/Dapr.IntegrationTest.Workflow/MultiAppActivityTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/MultiAppActivityTests.cs @@ -14,6 +14,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Common.Options; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -22,7 +23,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class MultiAppActivityTests { - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldScheduleActivityOnRemoteAppUsingAppId() { var guid = Guid.NewGuid().ToString("N"); diff --git a/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowAndActivityTests.cs b/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowAndActivityTests.cs index 13cadcbd8..a7d4cef45 100644 --- a/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowAndActivityTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/MultiAppChildWorkflowAndActivityTests.cs @@ -28,7 +28,7 @@ public sealed class MultiAppChildWorkflowAndActivityTests private static readonly string App2Id = $"workflow-app-2-{UniqueId}"; private static readonly string App3Id = $"workflow-app-3-{UniqueId}"; - [MinimumDaprRuntimeFact("1.16")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldScheduleChildWorkflowOnRemoteApp_ThatCallsActivityOnAnotherRemoteApp_UsingAppIds() { var options1 = new DaprRuntimeOptions().WithAppId(App1Id); diff --git a/test/Dapr.IntegrationTest.Workflow/ParallelExecutionTests.cs b/test/Dapr.IntegrationTest.Workflow/ParallelExecutionTests.cs index 8b651c1c3..cca458b86 100644 --- a/test/Dapr.IntegrationTest.Workflow/ParallelExecutionTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ParallelExecutionTests.cs @@ -71,7 +71,7 @@ public async Task ShouldExecuteActivitiesInParallel() Assert.True(duration.TotalSeconds < 5, $"Expected parallel execution to complete in < 5 seconds, took {duration.TotalSeconds}"); } - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldFanOutFanInWithActivities() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/PauseResumeTests.cs b/test/Dapr.IntegrationTest.Workflow/PauseResumeTests.cs index c26f7b3b8..b36ca8f8a 100644 --- a/test/Dapr.IntegrationTest.Workflow/PauseResumeTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/PauseResumeTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -21,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class PauseResumeTests { - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldReportPausedStatusWhenWorkflowIsSuspended() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -63,7 +64,7 @@ public async Task ShouldReportPausedStatusWhenWorkflowIsSuspended() Assert.Equal(WorkflowRuntimeStatus.Suspended, pausedState.RuntimeStatus); } - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldPauseAndResumeWorkflow() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/PurgeTests.cs b/test/Dapr.IntegrationTest.Workflow/PurgeTests.cs index 19c97c229..07e9f767c 100644 --- a/test/Dapr.IntegrationTest.Workflow/PurgeTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/PurgeTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Grpc.Core; using Microsoft.Extensions.Configuration; @@ -22,7 +23,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class PurgeTests { - [Dapr.Testcontainers.Xunit.Attributes.MinimumDaprRuntimeFact("1.17")] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldPurgeCompletedWorkflowInstance() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -68,7 +69,7 @@ public async Task ShouldPurgeCompletedWorkflowInstance() Assert.Null(stateAfterPurge); } - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task PurgeShouldNotWorkOnSuspendedWorkflowInstance() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -112,7 +113,7 @@ await Assert.ThrowsAnyAsync(() => await daprWorkflowClient.TerminateWorkflowAsync(workflowInstanceId, cancellation: TestContext.Current.CancellationToken); } - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldPurgeTerminatedWorkflowInstance() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/ReplaySafetyTests.cs b/test/Dapr.IntegrationTest.Workflow/ReplaySafetyTests.cs index f5b8f208e..9f9ace5e6 100644 --- a/test/Dapr.IntegrationTest.Workflow/ReplaySafetyTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/ReplaySafetyTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -22,7 +23,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed partial class ReplaySafetyTests { - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ReplaySafeLogger_ShouldNotDuplicateLogsOnReplay() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -64,7 +65,7 @@ public async Task ReplaySafeLogger_ShouldNotDuplicateLogsOnReplay() Assert.Equal("Completed", output); } - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task Workflow_ShouldUseDeterministicGuidGeneration() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -110,7 +111,7 @@ public async Task Workflow_ShouldUseDeterministicGuidGeneration() Assert.All(guids, g => Assert.NotEqual(Guid.Empty, g)); } - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task NewGuid_ShouldRemainStableAcrossReplays() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/SubworkflowTests.cs b/test/Dapr.IntegrationTest.Workflow/SubworkflowTests.cs index 63644579a..ab845dc0b 100644 --- a/test/Dapr.IntegrationTest.Workflow/SubworkflowTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/SubworkflowTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -21,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class SubworkflowTests { - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleSubworkflow() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -68,7 +69,7 @@ public async Task ShouldHandleSubworkflow() Assert.True(subworkflowResultValue); } - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleMultipleParallelSubworkflows() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/TaskChainingWorkflowTests.cs b/test/Dapr.IntegrationTest.Workflow/TaskChainingWorkflowTests.cs index 20c0bc7ad..5d913e901 100644 --- a/test/Dapr.IntegrationTest.Workflow/TaskChainingWorkflowTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/TaskChainingWorkflowTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -23,7 +24,7 @@ public sealed class TaskChainingWorkflowTests { private static readonly int[] expected = [43, 45, 90]; - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleTaskChaining() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/TaskExecutionKeyTests.cs b/test/Dapr.IntegrationTest.Workflow/TaskExecutionKeyTests.cs index 29362e6f3..b21a63916 100644 --- a/test/Dapr.IntegrationTest.Workflow/TaskExecutionKeyTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/TaskExecutionKeyTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -21,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class TaskExecutionKeyTests { - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ActivityContext_ShouldContainTaskExecutionKey() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/TerminateWorkflowTests.cs b/test/Dapr.IntegrationTest.Workflow/TerminateWorkflowTests.cs index 933afa14c..cb83f2610 100644 --- a/test/Dapr.IntegrationTest.Workflow/TerminateWorkflowTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/TerminateWorkflowTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -21,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class TerminateWorkflowTests { - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldTerminateRunningWorkflow() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); @@ -77,7 +78,7 @@ await Assert.ThrowsAnyAsync(() => Assert.Equal(WorkflowRuntimeStatus.Terminated, result.RuntimeStatus); } - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldReturnFromTerminateGrpcCall() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/TimerTests.cs b/test/Dapr.IntegrationTest.Workflow/TimerTests.cs index 905392656..4ef6535c0 100644 --- a/test/Dapr.IntegrationTest.Workflow/TimerTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/TimerTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -24,7 +25,7 @@ public sealed class TimerTests private const string InitialMessage = "Test1"; private const string FinalMessage = "Test2"; - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ValidateStatusMessagesWithDelay() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/WorkflowMonitorTests.cs b/test/Dapr.IntegrationTest.Workflow/WorkflowMonitorTests.cs index 03fe6d8bb..727386ea6 100644 --- a/test/Dapr.IntegrationTest.Workflow/WorkflowMonitorTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/WorkflowMonitorTests.cs @@ -13,6 +13,7 @@ using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -21,7 +22,7 @@ namespace Dapr.IntegrationTest.Workflow; public sealed class WorkflowMonitorTests { - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldHandleContinueAsNew() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components"); diff --git a/test/Dapr.IntegrationTest.Workflow/WorkflowRetryPolicyBackoffTests.cs b/test/Dapr.IntegrationTest.Workflow/WorkflowRetryPolicyBackoffTests.cs index a95d1539a..2622eb2ec 100644 --- a/test/Dapr.IntegrationTest.Workflow/WorkflowRetryPolicyBackoffTests.cs +++ b/test/Dapr.IntegrationTest.Workflow/WorkflowRetryPolicyBackoffTests.cs @@ -14,6 +14,7 @@ using System.Collections.Concurrent; using Dapr.Testcontainers.Common; using Dapr.Testcontainers.Harnesses; +using Dapr.Testcontainers.Xunit.Attributes; using Dapr.Workflow; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -27,7 +28,7 @@ public sealed class WorkflowRetryPolicyBackoffTests private static readonly TimeSpan FirstRetryInterval = TimeSpan.FromSeconds(5); private static readonly TimeSpan AllowedSkew = TimeSpan.FromSeconds(1); - [Fact] + [MinimumDaprRuntimeFact("1.17")] public async Task ShouldRetryActivityWithBackoff() { var componentsDir = TestDirectoryManager.CreateTestDirectory("workflow-components");