public async Task ConvertWriteClusterErrorToSessionExpiredError(string code) { var handlerMock = new Mock <IClusterErrorHandler>(); var clusterConn = new ClusterConnection(CreateConnectionWithMode(AccessMode.Write), Uri, handlerMock.Object); var inError = ErrorExtensions.ParseServerException(code, null); var outError = await Record.ExceptionAsync(() => clusterConn.OnErrorAsync(inError)); outError.Should().BeOfType <SessionExpiredException>(); handlerMock.Verify(x => x.OnConnectionErrorAsync(Uri, inError), Times.Never); handlerMock.Verify(x => x.OnWriteError(Uri), Times.Once); }
public async Task ConvertConnectionErrorToSessionExpired() { var handlerMock = new Mock <IClusterErrorHandler>(); var clusterConn = new ClusterConnection(CreateConnectionWithMode(AccessMode.Read), Uri, handlerMock.Object); var inError = new ServiceUnavailableException("Connection error"); var outError = await Record.ExceptionAsync(() => clusterConn.OnErrorAsync(inError)); outError.Should().BeOfType <SessionExpiredException>(); handlerMock.Verify(x => x.OnConnectionErrorAsync(Uri, inError), Times.Once); handlerMock.Verify(x => x.OnWriteError(Uri), Times.Never); }
public async Task TreatsDatabaseUnavailableAsConnectionError() { var handlerMock = new Mock <IClusterErrorHandler>(); var clusterConn = new ClusterConnection(CreateConnectionWithMode(AccessMode.Read), Uri, handlerMock.Object); var inError = new TransientException("Neo.TransientError.General.DatabaseUnavailable", "Store copying"); var outError = await Record.ExceptionAsync(() => clusterConn.OnErrorAsync(inError)); outError.Should().BeEquivalentTo(inError); handlerMock.Verify(x => x.OnConnectionErrorAsync(Uri, inError)); }
public async Task ConvertClusterErrorToClientError() { var handlerMock = new Mock <IClusterErrorHandler>(); var clusterConn = new ClusterConnection(CreateConnectionWithMode(AccessMode.Read), Uri, handlerMock.Object); var inError = new ClientException("random error"); var outError = await Record.ExceptionAsync(() => clusterConn.OnErrorAsync(inError)); outError.Should().Be(inError); handlerMock.Verify(x => x.OnConnectionErrorAsync(Uri, inError), Times.Never); handlerMock.Verify(x => x.OnWriteError(Uri), Times.Never); }