public void TestShouldNotDeleteACategoryWithoutTimestapData() { // Arrange Category vCategory = new Category { CategoryName = _FOO }; _Db.Categories.Add(vCategory); _Db.SaveChanges(); StoreContext vContext = new StoreContext(); Category vCategoryToDelete = new Category { Id = vCategory.Id }; vContext.Categories.Remove(vCategoryToDelete); // Act RetryLimitExceededException vResult = Assert.Throws <RetryLimitExceededException> (() => vContext.SaveChanges()); DbUpdateConcurrencyException vInnerException = vResult.InnerException as DbUpdateConcurrencyException; // Assert vInnerException?.Entries.Count.Should().Be(1); ((Category)vInnerException?.Entries[0].Entity)?.Id.Should().Be(vCategory.Id); }
public void RetryLimitExceededException_exposes_public_string_and_inner_exception_constructor() { var inner = new Exception(); var ex = new RetryLimitExceededException("Foo", inner); Assert.Equal("Foo", ex.Message); Assert.Same(inner, ex.InnerException); }
public void When_I_try_to_access_the_database_and_it_the_retries_exceed_the_max_count() { try { var entity = _db.ToDoItems.FirstOrDefault(); } catch (RetryLimitExceededException exception) { _result = exception; } }
/// <summary> /// Obtiene un <see cref="ServiceResult"/> que representa un /// <see cref="ServiceResult"/> fallido a partir de la excepción /// producida. /// </summary> /// <param name="ex">Excepción que se ha producido.</param> /// <returns> /// Un resultado que representa y describe una falla en la /// operación solicitada. /// </returns> protected static ServiceResult ResultFromException(Exception ex) { return(ex switch { null => throw new ArgumentNullException(nameof(ex)), DataNotFoundException _ => NotFound, TaskCanceledException _ => NetworkFailure, DbUpdateConcurrencyException _ => ConcurrencyFailure, DbUpdateException _ => DbFailure, RetryLimitExceededException _ => NetworkFailure, _ => ex, });
public void FixedDelayPolicyExecuteActionTest() { TestFixedDelayPolicy policy = new TestFixedDelayPolicy( strategy: new NetworkConnectivityErrorDetectionStrategy(), maxRetryCount: 3, intervalBetweenRetries: TimeSpan.FromMilliseconds(20)); // execute an action that throws a retry limit exception CancellationToken token = new CancellationToken(); Assert.Equal(policy.ExecuteAction <int>((s) => { throw new RetryLimitExceededException(); }, token), default(int)); // execute an action that throws a retry limit exeception with an inner exception Assert.Throws <Exception>(() => { policy.ExecuteAction <int>((s) => { var e = new RetryLimitExceededException("retry", new Exception()); throw e; }); }); }
public CustomRetryLimitExceededException(string message, RetryLimitExceededException innerException) : base(message, innerException) { }