test/test_sibit.rb in sibit-0.8.0 vs test/test_sibit.rb in sibit-0.9.0
- old
+ new
@@ -78,10 +78,13 @@
hash = sibit.latest
assert_equal('0000000000000538200a48202ca6340e983646ca088c7618ae82d68e0c76ef5a', hash)
end
def test_send_payment
+ stub_request(
+ :get, 'https://blockchain.info/ticker'
+ ).to_return(status: 200, body: '{"USD" : {"15m" : 5160.04}}')
json = {
unspent_outputs: [
{
tx_hash: 'fc8fb1a526aef220b54a66bbb3e0549bf34db4f25e1aebc3feb87e86d341e65d',
tx_hash_big_endian: '5de641d3867eb8fec3eb1a5ef2b44df39b54e0b3bb664ab520f2ae26a5b18ffc',
@@ -107,7 +110,47 @@
},
target, change
)
assert(!tx.nil?)
assert(tx.length > 30, tx)
+ end
+
+ def test_fail_if_not_enough_funds
+ stub_request(
+ :get, 'https://blockchain.info/ticker'
+ ).to_return(status: 200, body: '{"USD" : {"15m" : 5160.04}}')
+ json = {
+ unspent_outputs: []
+ }
+ stub_request(
+ :get,
+ 'https://blockchain.info/unspent?active=1JvCsJtLmCxEk7ddZFnVkGXpr9uhxZPmJi&limit=1000'
+ ).to_return(status: 200, body: JSON.pretty_generate(json))
+ sibit = Sibit.new
+ target = sibit.create(sibit.generate)
+ change = sibit.create(sibit.generate)
+ assert_raises Sibit::Error do
+ sibit.pay(
+ '0.0001BTC', 'XL',
+ {
+ '1JvCsJtLmCxEk7ddZFnVkGXpr9uhxZPmJi' =>
+ 'fd2333686f49d8647e1ce8d5ef39c304520b08f3c756b67068b30a3db217dcb2'
+ },
+ target, change
+ )
+ end
+ end
+
+ def test_fake_object_works
+ sibit = Sibit::Fake.new
+ assert_equal(4_000, sibit.price)
+ assert_equal('fd2333686f49d8647e1ce8d5ef39c304520b08f3c756b67068b30a3db217dcb2', sibit.generate)
+ assert_equal('1JvCsJtLmCxEk7ddZFnVkGXpr9uhxZPmJi', sibit.create(''))
+ assert_equal(100_000_000, sibit.balance(''))
+ assert_equal(
+ '9dfe55a30b5ee732005158c589179a398117117a68d21531fb6c78b85b544c54',
+ sibit.pay(0, 'M', {}, '', '')
+ )
+ assert_equal('00000000000000000008df8a6e1b61d1136803ac9791b8725235c9f780b4ed71', sibit.latest)
+ assert_equal({}, sibit.get_json('/'))
end
end