test/razorpay/test_entity.rb in razorpay-1.2.1 vs test/razorpay/test_entity.rb in razorpay-2.0.0

- old
+ new

@@ -1,24 +1,47 @@ require 'test_helper' -require 'razorpay/entity' +require 'ostruct' module Razorpay # Tests for Razorpay::Entity class EntityTest < Minitest::Test def setup @hash = { 'a' => 1 } @entity = Entity.new(@hash) end + def test_create_instance + res = OpenStruct.new(parsed_response: { 'entity' => 'non_existent_entity' }) + entity = Razorpay::Request.new('dummy').create_instance(res) + assert_instance_of Razorpay::Entity, entity + end + + def test_raise_error + error = { 'code' => 'NON_EXISTENT_ERROR', 'description' => 'Unknown error' } + assert_raises(Razorpay::Error) { Razorpay::Request.new('dummy').raise_error(error, 500) } + end + + def test_respond_to_missing_method + order_id = 'order_50sX9hGHZJvjjI' + stub_get(%r{orders/#{order_id}$}, 'fake_order') + order = Razorpay::Order.fetch(order_id) + assert_equal order.respond_to?(:non_existent_method), false + + payment_id = 'fake_payment_id' + stub_get(%r{payments/#{payment_id}$}, 'fake_payment') + payment = Razorpay::Payment.fetch(payment_id) + assert_equal payment.respond_to?(:method), true + end + def test_attribute_get assert_equal @hash['a'], @entity.a end def test_json_conversion assert_equal '{"a":1}', @entity.to_json end def test_invalid_attribute_get - assert_raises(NameError, 'It must raise a NameError on invalid attribute') { @entity.b } + assert_raises(NoMethodError, 'It must raise a NoMethodError on invalid attribute') { @entity.b } end end end