Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,10 @@ public async Task IsolateAsync_Ok()
called.ShouldBeTrue();

var outcome = await controller.OnActionPreExecuteAsync(context);
var exception = outcome.Value.Exception.ShouldBeOfType<IsolatedCircuitException>();

Assert.True(outcome.HasValue);

var exception = outcome.GetValueOrDefault().Exception.ShouldBeOfType<IsolatedCircuitException>();
exception.RetryAfter.ShouldBeNull();
exception.TelemetrySource.ShouldNotBeNull();

Expand Down Expand Up @@ -125,7 +128,12 @@ public async Task OnActionPreExecute_CircuitOpenedByValue()
using var controller = CreateController();

await OpenCircuit(controller, Outcome.FromResult(99));
var exception = (BrokenCircuitException)(await controller.OnActionPreExecuteAsync(context)).Value.Exception!;

var outcome = await controller.OnActionPreExecuteAsync(context);

Assert.True(outcome.HasValue);

var exception = outcome.GetValueOrDefault().Exception.ShouldBeOfType<BrokenCircuitException>();
exception.RetryAfter.ShouldNotBeNull();
exception.TelemetrySource.ShouldNotBeNull();

Expand All @@ -149,7 +157,11 @@ await OpenCircuit(
{
try
{
(await controller.OnActionPreExecuteAsync(context)).Value.ThrowIfException();
var outcome = await controller.OnActionPreExecuteAsync(context);

Assert.True(outcome.HasValue);

outcome.GetValueOrDefault().ThrowIfException();
}
catch (BrokenCircuitException e)
{
Expand Down Expand Up @@ -217,7 +229,12 @@ public async Task OnActionPreExecute_CircuitOpenedByException()
using var controller = CreateController();

await OpenCircuit(controller, Outcome.FromException<int>(new InvalidOperationException()));
var exception = (BrokenCircuitException)(await controller.OnActionPreExecuteAsync(context)).Value.Exception!;

var outcome = await controller.OnActionPreExecuteAsync(context);

Assert.True(outcome.HasValue);

var exception = outcome.GetValueOrDefault().Exception.ShouldBeOfType<BrokenCircuitException>();
exception.InnerException.ShouldBeOfType<InvalidOperationException>();
exception.RetryAfter.ShouldNotBeNull();
exception.TelemetrySource.ShouldNotBeNull();
Expand Down Expand Up @@ -276,10 +293,13 @@ public async Task OnActionPreExecute_HalfOpen()

// act
await controller.OnActionPreExecuteAsync(context);
var error = (await controller.OnActionPreExecuteAsync(context)).Value.Exception;

var outcome = await controller.OnActionPreExecuteAsync(context);

// assert
var exception = error.ShouldBeOfType<BrokenCircuitException>();
Assert.True(outcome.HasValue);

var exception = outcome.GetValueOrDefault().Exception.ShouldBeOfType<BrokenCircuitException>();
exception.RetryAfter.ShouldNotBeNull();
exception.TelemetrySource.ShouldNotBeNull();
controller.CircuitState.ShouldBe(CircuitState.HalfOpen);
Expand Down Expand Up @@ -489,7 +509,10 @@ public async Task OnActionFailureAsync_VoidResult_EnsureBreakingExceptionNotSet(
// assert
controller.LastException.ShouldBeNull();
var outcome = await controller.OnActionPreExecuteAsync(context);
var exception = outcome.Value.Exception.ShouldBeOfType<BrokenCircuitException>();

Assert.True(outcome.HasValue);

var exception = outcome.GetValueOrDefault().Exception.ShouldBeOfType<BrokenCircuitException>();
exception.RetryAfter.ShouldNotBeNull();
exception.TelemetrySource.ShouldNotBeNull();
}
Expand Down Expand Up @@ -530,7 +553,10 @@ public async Task Flow_Closed_HalfOpen_Open_HalfOpen_Closed()
TimeSpan advanceTimeRejected = TimeSpan.FromMilliseconds(1);
AdvanceTime(advanceTimeRejected);
var outcome = await controller.OnActionPreExecuteAsync(context);
var exception = outcome.Value.Exception.ShouldBeOfType<BrokenCircuitException>();

Assert.True(outcome.HasValue);

var exception = outcome.GetValueOrDefault().Exception.ShouldBeOfType<BrokenCircuitException>();
exception.RetryAfter.ShouldBe(_options.BreakDuration - advanceTimeRejected);
exception.TelemetrySource.ShouldNotBeNull();

Expand Down
Loading