Sha256: da1c352c136d10429646b102d4af9d6bbc69a12b55324952d7da58c13a7aa5a9

Contents?: true

Size: 1.22 KB

Versions: 3

Compression:

Stored size: 1.22 KB

Contents

require "spec_helper"

describe BrDocuments::Gtin do
  describe "#valid?" do
    context 'when the checksum is valid' do
      context 'when the GTIN has 8 digits' do
        subject { described_class.new('12345618') }

        it { is_expected.to be_valid }
      end

      context 'when the GTIN has 12 digits' do
        subject { described_class.new('114567854874') }

        it { is_expected.to be_valid }
      end

      context 'when the GTIN has 13 digits' do
        subject { described_class.new('1145678548719') }

        it { is_expected.to be_valid }
      end

      context 'when the GTIN has 14 digits' do
        subject { described_class.new('1234567891125') }

        it { is_expected.to be_valid }
      end

      context 'when the final digit is zero' do
        subject { described_class.new('7898417964120') }

        it { is_expected.to be_valid }
      end

      context 'when the number of digits is different of 8, 13 or 14' do
        subject { described_class.new('12345678901234560') }

        it { is_expected.to_not be_valid }
      end
    end

    context 'when the checksum is invald' do
      subject { described_class.new('1145678548712') }

      it { is_expected.to_not be_valid }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
br_documents-0.1.3 spec/gtin/gtin_spec.rb
br_documents-0.1.2 spec/gtin/gtin_spec.rb
br_documents-0.1.1 spec/gtin/gtin_spec.rb