Sha256: a713e1c24232fac36261b24bf5de8596e6a9c264cc61651890c51148384c3dc6

Contents?: true

Size: 1.27 KB

Versions: 5

Compression:

Stored size: 1.27 KB

Contents

require File.expand_path(File.join(File.dirname(__FILE__), '../unit_test_helper'))

describe BraintreeRails::Luhn10Validator do
  class Validatable < Struct.new(:number)
    include ActiveModel::Validations
    validates_with BraintreeRails::Luhn10Validator, :attribute => :number
  end

  describe 'valid numbers' do
    it 'should pass for valid numbers' do
      Validatable.new(4111111111111111).must_be :valid?
      Validatable.new('5454545454545454').must_be :valid?
    end
  end

  describe 'invalid numbers' do
    it 'should fail for invalid numbers' do
      invalid_record = Validatable.new('1234567890123456')
      invalid_record.wont_be :valid?
      invalid_record.errors[:number].must_include 'failed Luhn 10 validation.'
    end

    it 'should fail for non integers' do
      invalid_record = Validatable.new('1234567890.123456')
      invalid_record.wont_be :valid?
      invalid_record.errors[:number].must_include 'must be an integer'

      invalid_record = Validatable.new(1234567890.123456)
      invalid_record.wont_be :valid?
      invalid_record.errors[:number].must_include 'must be an integer'

      invalid_record = Validatable.new('foobar')
      invalid_record.wont_be :valid?
      invalid_record.errors[:number].must_include 'must be an integer'
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
braintree-rails-0.4.5 test/unit/braintree_rails/luhn_10_validator_test.rb
braintree-rails-0.4.4 test/unit/braintree_rails/luhn_10_validator_test.rb
braintree-rails-0.4.3 test/unit/braintree_rails/luhn_10_validator_test.rb
braintree-rails-0.4.2 test/unit/braintree_rails/luhn_10_validator_test.rb
braintree-rails-0.4.1 test/unit/braintree_rails/luhn_10_validator_test.rb