public async Task ShouldCloseConnectionOnAuthorizationException() { var connection = new Mock <IConnection>(); var releaseManager = new Mock <IConnectionReleaseManager>(); var pooledConnection = new PooledConnection(connection.Object, releaseManager.Object); var resultException = await Record.ExceptionAsync(async() => await pooledConnection.OnErrorAsync(new AuthorizationException("Authorization error"))); releaseManager.Verify(rm => rm.MarkConnectionsForReauthorization(pooledConnection), Times.Once()); }
public async Task ShouldReturnConnectionErrorOnErrorAsync(Type exceptionType) { var connection = new Mock <IConnection>().Object; var releaseManager = new Mock <IConnectionReleaseManager>().Object; var pooledConnection = new PooledConnection(connection, releaseManager); var exception = (Exception)Activator.CreateInstance(exceptionType); var resultingException = await Record.ExceptionAsync(async() => await pooledConnection.OnErrorAsync(exception)); Assert.Equal(resultingException.GetType(), typeof(ServiceUnavailableException)); }
public async Task ShouldHaveUnrecoverableErrorOnErrorAsync(Type exceptionType) { var connection = new Mock <IConnection>().Object; var releaseManager = new Mock <IConnectionReleaseManager>().Object; var pooledConnection = new PooledConnection(connection, releaseManager); var exception = (Exception)Activator.CreateInstance(exceptionType, "Testing exception"); var resultingException = await Record.ExceptionAsync(async() => await pooledConnection.OnErrorAsync(exception)); Assert.Equal(resultingException.GetType(), exceptionType); Assert.True(pooledConnection.HasUnrecoverableError); }