public async Task Test__Timeout__Throws() { var logFactory = new Mock <ILogFactory>(); var log = new Mock <ILog>(); logFactory.Setup(x => x.CreateLog(It.IsAny <object>())).Returns(log.Object); var handler = new StubHttpMessageHandler((request) => { IsAliveResponse isAlive = new IsAliveResponse() { Env = "UnitTest", IsDebug = false, Name = $"", Version = "1.0.0" }; Task.Delay(TimeSpan.FromSeconds(10)).Wait(); var serialized = JsonConvert.SerializeObject(isAlive); var responseObj = new HttpResponseMessage(HttpStatusCode.OK); responseObj.Content = new StringContent(serialized, Encoding.UTF8, "application/json"); return(responseObj); }); var blockchainApiClient = new BlockchainApiClient(logFactory.Object, "http://localhost:5000", 2, TimeSpan.FromSeconds(1), handler); await Assert.ThrowsAsync <OperationCanceledException>(async() => { var response = await blockchainApiClient.GetIsAliveAsync(); }); }
public async Task Test__TimeoutOnRealApi__Works() { var logFactory = new Mock <ILogFactory>(); var log = new Mock <ILog>(); logFactory.Setup(x => x.CreateLog(It.IsAny <object>())).Returns(log.Object); var blockchainApiClient = new BlockchainApiClient(logFactory.Object, "http://stellar-api.bcn.svc.cluster.local", 20); var response = await blockchainApiClient.GetIsAliveAsync(); }
public async Task Test__TimeoutOnRealApi__Throws() { var logFactory = new Mock <ILogFactory>(); var log = new Mock <ILog>(); logFactory.Setup(x => x.CreateLog(It.IsAny <object>())).Returns(log.Object); var blockchainApiClient = new BlockchainApiClient(logFactory.Object, "http://stellar-api.bcn.svc.cluster.local", 20, TimeSpan.FromSeconds(1)); await Assert.ThrowsAsync <TaskCanceledException>(async() => { var response = await blockchainApiClient.GetIsAliveAsync(); }); }
public async Task <bool> ValidateServiceUrlAsync(string serviceUrl) { var isUrlValid = false; try { using (var client = new BlockchainApiClient(_logFactory, serviceUrl, 3)) { var isAlive = await client.GetIsAliveAsync(); isUrlValid = isAlive != null; } } catch (Exception e) { _log.Info(nameof(ValidateHotwalletAsync), message: "Could not check api validity", context: $"{serviceUrl}", exception: e); } return(isUrlValid); }
public async Task <bool> ValidateHotwalletAsync(string apiUrl, string type, string address) { var isAddressValid = false; try { //TODO: WAIT FOR NEW IBlockchainApiClient on 2.1 framework (httpClientFactory will be there) //DIRTY HACK: using (var client = new BlockchainApiClient(_logFactory, apiUrl, 3)) { isAddressValid = await client.IsAddressValidAsync(address); } } catch (Exception e) { _log.Info(nameof(ValidateHotwalletAsync), message: "Could not check validity", context: $"{apiUrl}, {type}, {address}", exception: e); } return(isAddressValid); }