require 'test/unit' require 'test_helper' # To run these tests, set the variables at the top of the class # definition. # # Note that NetRegistry does not provide any sort of test # server/account, so you'll probably want to refund any uncredited # purchases through the NetRegistry console at www.netregistry.com . # All purchases made in these tests are $1, so hopefully you won't be # sent broke if you forget... class NetRegistryTest < Test::Unit::TestCase def setup @gateway = NetRegistryGateway.new(fixtures(:net_registry)) @amount = 100 @valid_creditcard = credit_card @invalid_creditcard = credit_card('41111111111111111') @expired_creditcard = credit_card('4111111111111111', :year => '2000') @invalid_month_creditcard = credit_card('4111111111111111', :month => '13') end def test_successful_purchase_and_credit response = @gateway.purchase(@amount, @valid_creditcard) assert_equal 'approved', response.params['status'] assert_success response assert_match(/\A\d{16}\z/, response.authorization) response = @gateway.credit(@amount, response.authorization) assert_equal 'approved', response.params['status'] assert_success response end # #authorize and #capture haven't been tested because the author's # account hasn't been setup to support these methods (see the # documentation for the NetRegistry gateway class). There is no # mention of a #void transaction in NetRegistry's documentation, # either. if ENV['TEST_AUTHORIZE_AND_CAPTURE'] def test_successful_authorization_and_capture response = @gateway.authorize(@amount, @valid_creditcard) assert_success response assert_equal 'approved', response.params['status'] assert_match(/\A\d{6}\z/, response.authorization) response = @gateway.capture(@amount, response.authorization, :credit_card => @valid_creditcard) assert_success response assert_equal 'approved', response.params['status'] end end def test_purchase_with_invalid_credit_card response = @gateway.purchase(@amount, @invalid_creditcard) assert_equal 'declined', response.params['status'] assert_equal 'INVALID CARD', response.message assert_failure response end def test_purchase_with_expired_credit_card response = @gateway.purchase(@amount, @expired_creditcard) assert_equal 'failed', response.params['status'] assert_equal 'CARD EXPIRED', response.message assert_failure response end def test_purchase_with_invalid_month response = @gateway.purchase(@amount, @invalid_month_creditcard) assert_equal 'failed', response.params['status'] assert_equal 'Invalid month', response.message assert_failure response end def test_bad_login gateway = NetRegistryGateway.new( :login => 'bad-login', :password => 'bad-login' ) response = gateway.purchase(@amount, @valid_creditcard) assert_equal 'failed', response.params['status'] assert_failure response end end