M lib/alt_top_up_form.rb => lib/alt_top_up_form.rb +11 -2
@@ 3,7 3,7 @@
class AltTopUpForm
def self.for(customer)
customer.btc_addresses.then do |addrs|
- AltTopUpForm.new(*[
+ AltTopUpForm.new(customer, *[
(IS_CAD if customer.currency == :CAD),
(HasBitcoinAddresses.new(addrs) unless addrs.empty?),
AddBtcAddressField.for(addrs)
@@ 11,8 11,9 @@ class AltTopUpForm
end
end
- def initialize(*fields)
+ def initialize(customer, *fields)
@fields = fields
+ @balance = customer.balance
end
def form
@@ 35,6 36,13 @@ class AltTopUpForm
}
end
+ def balance
+ {
+ type: "fixed",
+ value: "Current balance: $#{'%.4f' % @balance}"
+ }
+ end
+
MAILING_ADDRESS = {
var: "adr",
type: "fixed",
@@ 47,6 55,7 @@ class AltTopUpForm
def fields
Enumerator.new do |y|
+ y << balance
y << MAILING_ADDRESS
@fields.each do |fs|
fs.each { |f| y << f }
M test/test_add_bitcoin_address.rb => test/test_add_bitcoin_address.rb +4 -2
@@ 7,13 7,15 @@ require "add_bitcoin_address"
class AddBitcoinAddressTest < Minitest::Test
def test_for
iq = Blather::Stanza::Iq::Command.new
- AddBitcoinAddress.for(iq, AltTopUpForm.new, Customer.new("test"))
+ customer = Customer.new("test")
+ AddBitcoinAddress.for(iq, AltTopUpForm.new(customer), customer)
end
def test_for_add_bitcoin
iq = Blather::Stanza::Iq::Command.new
iq.form.fields = [{ var: "add_btc_address", value: "true" }]
- AddBitcoinAddress.for(iq, AltTopUpForm.new, Customer.new("test"))
+ customer = Customer.new("test")
+ AddBitcoinAddress.for(iq, AltTopUpForm.new(customer), customer)
end
def test_write
M test/test_alt_top_up_form.rb => test/test_alt_top_up_form.rb +9 -5
@@ 47,7 47,10 @@ class AltTopUpFormTest < Minitest::Test
def test_form_addrs
assert_kind_of(
Blather::Stanza::X,
- AltTopUpForm.new(AltTopUpForm::AddBtcAddressField.new).form
+ AltTopUpForm.new(
+ Customer.new("test"),
+ AltTopUpForm::AddBtcAddressField.new
+ ).form
)
end
@@ 55,6 58,7 @@ class AltTopUpFormTest < Minitest::Test
assert_kind_of(
Blather::Stanza::X,
AltTopUpForm.new(
+ Customer.new("test"),
AltTopUpForm::AddBtcAddressField::AddNewBtcAddressField.new
).form
)
@@ 65,7 69,7 @@ class AltTopUpFormTest < Minitest::Test
iq_form.fields = [
{ var: "add_btc_address", value: "true" }
]
- assert AltTopUpForm.new.parse(iq_form)[:add_btc_address]
+ assert AltTopUpForm.new(Customer.new("t")).parse(iq_form)[:add_btc_address]
end
def test_parse_1
@@ 73,7 77,7 @@ class AltTopUpFormTest < Minitest::Test
iq_form.fields = [
{ var: "add_btc_address", value: "1" }
]
- assert AltTopUpForm.new.parse(iq_form)[:add_btc_address]
+ assert AltTopUpForm.new(Customer.new("t")).parse(iq_form)[:add_btc_address]
end
def test_parse_false
@@ 81,11 85,11 @@ class AltTopUpFormTest < Minitest::Test
iq_form.fields = [
{ var: "add_btc_address", value: "false" }
]
- refute AltTopUpForm.new.parse(iq_form)[:add_btc_address]
+ refute AltTopUpForm.new(Customer.new("t")).parse(iq_form)[:add_btc_address]
end
def test_parse_not_presend
iq_form = Blather::Stanza::X.new
- refute AltTopUpForm.new.parse(iq_form)[:add_btc_address]
+ refute AltTopUpForm.new(Customer.new("t")).parse(iq_form)[:add_btc_address]
end
end