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