test_alt_top_up_form.rb

 1# frozen_string_literal: true
 2
 3require "test_helper"
 4require "alt_top_up_form"
 5require "customer"
 6
 7class AltTopUpFormTest < Minitest::Test
 8	def test_for
 9		CustomerFinancials::REDIS.expect(
10			:smembers,
11			EMPromise.resolve([]),
12			["jmp_customer_btc_addresses-test"]
13		)
14		assert_kind_of(
15			AltTopUpForm,
16			AltTopUpForm.for(customer).sync
17		)
18	end
19	em :test_for
20
21	def test_for_addresses
22		CustomerFinancials::REDIS.expect(
23			:smembers,
24			EMPromise.resolve(["testaddr"]),
25			["jmp_customer_btc_addresses-test"]
26		)
27		assert_kind_of(
28			AltTopUpForm,
29			AltTopUpForm.for(customer).sync
30		)
31	end
32	em :test_for_addresses
33
34	def test_for_cad
35		CustomerFinancials::REDIS.expect(
36			:smembers,
37			EMPromise.resolve([]),
38			["jmp_customer_btc_addresses-test"]
39		)
40		assert_kind_of(
41			AltTopUpForm,
42			AltTopUpForm.for(customer(plan_name: "test_cad")).sync
43		)
44	end
45	em :test_for_cad
46
47	def test_form_addrs
48		assert_kind_of(
49			Blather::Stanza::X,
50			AltTopUpForm.new(
51				customer, ["some_addr"]
52			).form
53		)
54	end
55
56	def test_form_new_addrs
57		assert_kind_of(
58			Blather::Stanza::X,
59			AltTopUpForm.new(
60				customer, []
61			).form
62		)
63	end
64
65	def test_parse_complete
66		iq_form = Blather::Stanza::X.new
67		iq_form.fields = [
68			{ var: "http://jabber.org/protocol/commands#actions", value: "complete" }
69		]
70		assert_kind_of(
71			AltTopUpForm::NoOp,
72			AltTopUpForm.new(customer, []).parse(iq_form)
73		)
74	end
75
76	def test_parse_btc
77		iq_form = Blather::Stanza::X.new
78		iq_form.fields = [
79			{ var: "http://jabber.org/protocol/commands#actions", value: "BTC" }
80		]
81		assert_kind_of(
82			AltTopUpForm::BitcoinAddress,
83			AltTopUpForm.new(customer, []).parse(iq_form)
84		)
85	end
86
87	def test_parse_xmr
88		iq_form = Blather::Stanza::X.new
89		iq_form.fields = [
90			{ var: "http://jabber.org/protocol/commands#actions", value: "XMR" }
91		]
92		assert_kind_of(
93			AltTopUpForm::SimpleSwapAddress,
94			AltTopUpForm.new(customer, []).parse(iq_form)
95		)
96	end
97end