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