public async Task ShouldUseRetryAndLoggingCommandDecorators() { var args = new FakeRetryCommandArgs(2); await _bus.ExecuteAsync(args); Assert.Equal(3, args.TimesExecuted); Assert.Equal(4, _logger.GetMessages(LogLevel.Information).Length); }
public async Task ShouldRetryCommandThreeTimes() { var args = new FakeRetryCommandArgs(2); await _bus.ExecuteAsync(args); Assert.Equal(3, args.TimesExecuted); }
public async Task ShouldWorkCorrectlyWithCustomPolicyAndServiceCollection() { var bus = new ServiceCollection() .AddKlinkedCqrs(b => b.UseAssemblyFor <FakeLogger>().AddRetry(Policy.Handle <Exception>().RetryAsync(12))) .BuildServiceProvider() .GetRequiredService <ICqrsBus>(); var args = new FakeRetryCommandArgs(11); await bus.ExecuteAsync(args); Assert.Equal(12, args.TimesExecuted); }
public async Task ShouldWorkCorrectlyWithServiceCollection() { var bus = new ServiceCollection() .AddKlinkedCqrs(b => b.UseAssemblyFor <FakeLogger>().AddRetry()) .BuildServiceProvider() .GetRequiredService <ICqrsBus>(); var args = new FakeRetryCommandArgs(2); await bus.ExecuteAsync(args); Assert.Equal(3, args.TimesExecuted); }
public async Task ShouldAllowUsageOfCustomRetryPolicy() { var bus = CqrsBus .UseAssemblyFor <FakeLogger>() .AddRetry(Policy.Handle <Exception>().RetryAsync(12)) .Build(); var args = new FakeRetryCommandArgs(11); await bus.ExecuteAsync(args); Assert.Equal(12, args.TimesExecuted); }
public async Task ShouldThrowExceptionIfRetriesExceeded() { var args = new FakeRetryCommandArgs(4); await Assert.ThrowsAsync <Exception>(() => _bus.ExecuteAsync(args)); }