public async Task CreateLastFmSession_HandlesKnownErrorsCorrectly() { // Arrange var deserializerMock = MakeFakeErrorLastFmDeserializer(); var handlerMock = MakeFakeForbiddenHttpMessageHandler(); var factoryMock = MakeFakeHttpClientFactory(handlerMock.Object); var service = new HttpLastFmService( factoryMock.Object, deserializerMock.Object, new HttpLastFmService.Settings("key", "secret") ); // Act var result = await service.CreateLastFmSession("token"); // Assert result.IsFailed.Should().BeTrue(); result.Errors.Should().ContainEquivalentOf( new LastFmResultError( (int)HttpStatusCode.Forbidden, new LastFmError() { ErrorCode = 1, Message = "Message" } ) ); }
private (HttpLastFmService, Mock <HttpMessageHandler>) MakeOkService() { var deserializerMock = new Mock <ILastFmDeserializer>(); var handlerMock = MakeFakeOkHttpMessageHandler(); var factoryMock = MakeFakeHttpClientFactory(handlerMock.Object); var service = new HttpLastFmService( factoryMock.Object, deserializerMock.Object, new HttpLastFmService.Settings("key", "secret") ); return(service, handlerMock); }
public async Task CreateLastFmSession_HandlesUnknownErrorsCorrectly() { // Arrange var exception = new JsonException(); var deserializerMock = MakeFakeExceptionLastFmDeserializer(exception); var handlerMock = MakeFakeForbiddenHttpMessageHandler(); var factoryMock = MakeFakeHttpClientFactory(handlerMock.Object); var service = new HttpLastFmService( factoryMock.Object, deserializerMock.Object, new HttpLastFmService.Settings("key", "secret") ); // Act var result = await service.CreateLastFmSession("token"); // Assert result.IsFailed.Should().BeTrue(); result.Errors.Should().ContainEquivalentOf( new LastFmResultError((int)HttpStatusCode.ServiceUnavailable, null) .CausedBy(exception) ); }