diff --git a/src/Polly.Core/Simmy/Fault/FaultGenerator.cs b/src/Polly.Core/Simmy/Fault/FaultGenerator.cs index c5931c0..cfb943f 100644 --- a/src/Polly.Core/Simmy/Fault/FaultGenerator.cs +++ b/src/Polly.Core/Simmy/Fault/FaultGenerator.cs @@ -78,6 +78,6 @@ public sealed class FaultGenerator var generatorDelegate = generator._helper.CreateGenerator(); - return args => new ValueTask(generatorDelegate(args.Context)!.Value.Exception); + return args => new ValueTask(generatorDelegate(args.Context)?.Exception); } } diff --git a/test/Polly.Core.Tests/Simmy/Fault/FaultGeneratorTests.cs b/test/Polly.Core.Tests/Simmy/Fault/FaultGeneratorTests.cs index 1b7e2cc..fd77255 100644 --- a/test/Polly.Core.Tests/Simmy/Fault/FaultGeneratorTests.cs +++ b/test/Polly.Core.Tests/Simmy/Fault/FaultGeneratorTests.cs @@ -39,6 +39,24 @@ public class FaultGeneratorTests Generate(generator).ShouldBeOfType(); } + [Fact] + public void NoExceptionRegistered_ShouldReturnNull() + { + var generator = new FaultGenerator(); + + Generate(generator).ShouldBeNull(); + } + + [Fact] + public void AllWeightsZero_ShouldReturnNull() + { + var generator = new FaultGenerator(); + + generator.AddException(weight: 0); + + Generate(generator).ShouldBeNull(); + } + private static Exception? Generate(FaultGenerator generator) { Func> func = generator;