Skip to content

Commit fcb0df5

Browse files
committed
udpate test
1 parent a692cc6 commit fcb0df5

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

src/Abstractions/TaskFailureDetails.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,17 @@ internal CoreFailureDetails ToCoreFailureDetails()
155155
return null;
156156
}
157157

158-
if (exception is CoreOrchestrationException coreEx && exception is not CoreSubOrchestrationFailedException)
158+
if (exception is CoreOrchestrationException coreEx)
159159
{
160+
if (coreEx is CoreSubOrchestrationFailedException)
161+
{
162+
return new TaskFailureDetails(
163+
coreEx.GetType().ToString(),
164+
coreEx.Message,
165+
coreEx.StackTrace,
166+
FromCoreFailureDetailsRecursive(coreEx.FailureDetails?.InnerFailure) ?? FromExceptionRecursive(coreEx.InnerException));
167+
}
168+
160169
return new TaskFailureDetails(
161170
coreEx.FailureDetails?.ErrorType ?? "(unknown)",
162171
coreEx.FailureDetails?.ErrorMessage ?? "(unknown)",

test/Grpc.IntegrationTests/OrchestrationErrorHandling.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using Xunit.Abstractions;
88
using Xunit.Sdk;
99

10+
using CoreSubOrchestrationFailedException = DurableTask.Core.Exceptions.SubOrchestrationFailedException;
11+
1012
namespace Microsoft.DurableTask.Grpc.Tests;
1113

1214
/// <summary>
@@ -427,7 +429,7 @@ public async Task RetrySubOrchestratorFailuresCustomLogic(int expectedNumberOfAt
427429
}
428430

429431
// This handler only works with CustomException
430-
if (!retryContext.LastFailure.IsCausedBy(exceptionType))
432+
if (!retryContext.LastFailure.IsCausedBy(typeof(CoreSubOrchestrationFailedException)))
431433
{
432434
return false;
433435
}
@@ -543,8 +545,8 @@ static void ValidateInnermostFailureDetailsChain(TaskFailureDetails? failureDeta
543545
{
544546
// Outer failure represents the orchestration failure
545547
Assert.NotNull(ex.FailureDetails);
546-
Assert.True(ex.FailureDetails.IsCausedBy<TaskFailedException>());
547-
Assert.Contains("ThrowException", ex.FailureDetails.ErrorMessage);
548+
Assert.True(ex.FailureDetails.IsCausedBy<CoreSubOrchestrationFailedException>());
549+
Assert.Contains("Exception of type", ex.FailureDetails.ErrorMessage);
548550

549551
// Inner failure represents the original exception thrown by the activity
550552
ValidateInnermostFailureDetailsChain(ex.FailureDetails.InnerFailure);
@@ -583,8 +585,8 @@ static void ValidateInnermostFailureDetailsChain(TaskFailureDetails? failureDeta
583585
Assert.True(metadata.FailureDetails!.IsCausedBy<TaskFailedException>());
584586
Assert.Contains("Sub", metadata.FailureDetails.ErrorMessage);
585587
Assert.NotNull(metadata.FailureDetails.InnerFailure);
586-
Assert.True(metadata.FailureDetails.InnerFailure!.IsCausedBy<TaskFailedException>());
587-
Assert.Contains("ThrowException", metadata.FailureDetails.InnerFailure.ErrorMessage);
588+
Assert.True(metadata.FailureDetails.InnerFailure!.IsCausedBy<CoreSubOrchestrationFailedException>());
589+
Assert.Contains("Exception of type", metadata.FailureDetails.InnerFailure.ErrorMessage);
588590

589591
ValidateInnermostFailureDetailsChain(metadata.FailureDetails.InnerFailure.InnerFailure);
590592
}

0 commit comments

Comments
 (0)