Sha256: b90678bba82b157def118b6d37975f332e5a78b0f9df02178a18d3c21b88723b

Contents?: true

Size: 1.94 KB

Versions: 5

Compression:

Stored size: 1.94 KB

Contents

require "spec_helper"

describe Jan::Validator do
  describe ".validate" do
    context "valid codes" do
      valid_codes.each do |code|
        it "#{code} should be valid" do
          actual = Jan::Validator.validate(code)
          expect(actual).to be true
        end
      end
    end

    context "invalid codes" do
      invalid_codes.each do |code|
        it "#{code} should be invalid" do
          actual = Jan::Validator.validate(code)
          expect(actual).to be false
        end
      end
    end
  end

  describe ".validate_size" do
    context "valid codes" do
      valid_size_codes = [8, 13].map{|n| "x" * n }

      valid_size_codes.each do |code|
        it "#{code} should be valid" do
          actual = Jan::Validator.validate_size(code)
          expect(actual).to be true
        end
      end
    end

    context "invalid codes" do
      invalid_size_codes = [1,2,3,4,5,6,7,9,10,11,12,14,15].map{|n| "x" * n }

      invalid_size_codes.each do |code|
        it "#{code} should be invalid" do
          actual = Jan::Validator.validate_size(code)
          expect(actual).to be false
        end
      end
    end
  end

  describe ".validate_check_digit" do
    context "valid codes" do
      valid_check_digit_codes = (3..15).to_a.map{|n| Jan::Random.code(n) }

      valid_check_digit_codes.each do |code|
        it "#{code} should be valid" do
          actual = Jan::Validator.validate_check_digit(code)
          expect(actual).to be true
        end
      end
    end

    context "invalid codes" do
      invalid_check_digit_codes = []
      (3..15).each do |n|
        code = Jan::Random.code(n)
        code[-1] = ((Jan::Parser.check_digit(code) + 1 ) % 10).to_s
        invalid_check_digit_codes << code
      end

      invalid_check_digit_codes.each do |code|
        it "#{code} should be invalid" do
          actual = Jan::Validator.validate_check_digit(code)
          expect(actual).to be false
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
jan-0.1.0 spec/jan/validator_spec.rb
jan-0.0.5 spec/jan/validator_spec.rb
jan-0.0.4 spec/jan/validator_spec.rb
jan-0.0.3 spec/jan/validator_spec.rb
jan-0.0.2 spec/jan/validator_spec.rb