1# frozen_string_literal: true
2
3require "em-hiredis"
4require "test_helper"
5require "btc_sell_prices"
6
7class BTCSellPricesTest < Minitest::Test
8 def setup
9 @redis = Minitest::Mock.new
10 @subject = BTCSellPrices.new(@redis, "")
11 end
12
13 def test_cad
14 stub_request(:get, "https://www.canadianbitcoins.com").to_return(
15 body: "<div id='ticker'><table><tbody><tr>" \
16 "<td>Bitcoin</td><td></td><td></td><td>$123.00</td>"
17 )
18 assert_equal BigDecimal(123), @subject.cad.sync
19 end
20 em :test_cad
21
22 def test_usd
23 stub_request(:get, "https://www.canadianbitcoins.com").to_return(
24 body: "<div id='ticker'><table><tbody><tr>" \
25 "<td>Bitcoin<td></td><td></td><td>$123.00</td>"
26 )
27 @redis.expect(:get, EMPromise.resolve("0.5"), ["cad_to_usd"])
28 assert_equal BigDecimal(123) / 2, @subject.usd.sync
29 end
30 em :test_usd
31end