public void CheckRatesProvider() { var coinAverage = new CoinAverageRateProvider("BTC"); var jpy = coinAverage.GetRateAsync("JPY").GetAwaiter().GetResult(); var jpy2 = new BitpayRateProvider(new Bitpay(new Key(), new Uri("https://bitpay.com/"))).GetRateAsync("JPY").GetAwaiter().GetResult(); var cached = new CachedRateProvider("BTC", coinAverage, new MemoryCache(new MemoryCacheOptions() { ExpirationScanFrequency = TimeSpan.FromSeconds(1.0) })); cached.CacheSpan = TimeSpan.FromSeconds(10); var a = cached.GetRateAsync("JPY").GetAwaiter().GetResult(); var b = cached.GetRateAsync("JPY").GetAwaiter().GetResult(); //Manually check that cache get hit after 10 sec var c = cached.GetRateAsync("JPY").GetAwaiter().GetResult(); var bitstamp = new CoinAverageRateProvider("BTC") { Exchange = "bitstamp" }; var bitstampRate = bitstamp.GetRateAsync("USD").GetAwaiter().GetResult(); Assert.Throws <RateUnavailableException>(() => bitstamp.GetRateAsync("XXXXX").GetAwaiter().GetResult()); }
public void CheckRatesProvider() { var coinAverage = new CoinAverageRateProvider(); var jpy = coinAverage.GetRateAsync("JPY").GetAwaiter().GetResult(); var jpy2 = new BitpayRateProvider(new Bitpay(new Key(), new Uri("https://bitpay.com/"))).GetRateAsync("JPY").GetAwaiter().GetResult(); var cached = new CachedRateProvider(coinAverage, new MemoryCache(new MemoryCacheOptions() { ExpirationScanFrequency = TimeSpan.FromSeconds(1.0) })); cached.CacheSpan = TimeSpan.FromSeconds(10); var a = cached.GetRateAsync("JPY").GetAwaiter().GetResult(); var b = cached.GetRateAsync("JPY").GetAwaiter().GetResult(); //Manually check that cache get hit after 10 sec var c = cached.GetRateAsync("JPY").GetAwaiter().GetResult(); }