public async Task HTTPステータスが200かつSuccessが1_HealthStatusを返す() { var handler = new Mock <HttpMessageHandler>(); handler.Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .Callback <HttpRequestMessage, CancellationToken>((request, _) => { Assert.StartsWith("https://api.bitbank.cc/v1/", request.RequestUri.AbsoluteUri, StringComparison.Ordinal); }) .ReturnsAsync(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(Json) }); using var client = new HttpClient(handler.Object); using var restApi = new BitbankRestApiClient(client, " ", " "); var result = await restApi.GetStatusesAsync().ConfigureAwait(false); Assert.NotNull(result); Assert.All(result, entity => { Assert.Equal(EntityHelper.GetTestValue <decimal>(), entity.MinAmount); Assert.Equal(EntityHelper.GetTestValue <CurrencyPair>(), entity.Pair); Assert.Equal(EntityHelper.GetTestValue <SystemStatus>(), entity.Status); }); }
public async Task タイムアウト_BitbankDotNetExceptionをスローする() { var handler = new Mock <HttpMessageHandler>(); handler.Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .Throws <TaskCanceledException>(); using var client = new HttpClient(handler.Object); using var restApi = new BitbankRestApiClient(client, " ", " "); var result = restApi.GetStatusesAsync(); var exception = await Assert.ThrowsAsync <BitbankDotNetException>(() => result).ConfigureAwait(false); Assert.IsType <TaskCanceledException>(exception.InnerException); }
public async Task 正なJSONを取得_BitbankDotNetExceptionをスローする(string content) { var handler = new Mock <HttpMessageHandler>(); handler.Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(new HttpResponseMessage(HttpStatusCode.NotFound) { Content = new StringContent(content) }); using var client = new HttpClient(handler.Object); using var restApi = new BitbankRestApiClient(client, " ", " "); var result = restApi.GetStatusesAsync(); await Assert.ThrowsAsync <BitbankDotNetException>(() => result).ConfigureAwait(false); }
public async Task HTTPステータスが404またはSuccessが0_BitbankDotNetExceptionをスローする(HttpStatusCode statusCode, int success, int apiErrorCode) { var handler = new Mock <HttpMessageHandler>(); handler.Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()) .ReturnsAsync(new HttpResponseMessage(statusCode) { Content = new StringContent($"{{\"success\":{success},\"data\":{{\"code\":{apiErrorCode}}}}}") }); using var client = new HttpClient(handler.Object); using var restApi = new BitbankRestApiClient(client, " ", " "); var result = restApi.GetStatusesAsync(); var exception = await Assert.ThrowsAsync <BitbankDotNetException>(() => result).ConfigureAwait(false); Assert.Equal(apiErrorCode, exception.ApiErrorCode); }