Sha256: d7bfd6ff0b38757b9b75673d8396a39de45022435529c231f61b74f60e04de37

Contents?: true

Size: 1.54 KB

Versions: 35

Compression:

Stored size: 1.54 KB

Contents

# frozen_string_literal: true

require 'zizia/always_invalid_validator'

shared_examples 'a Zizia::Parser' do
  describe '#file' do
    it 'is an accessor' do
      expect { parser.file = :a_new_file }
        .to change { parser.file }
        .to(:a_new_file)
    end
  end

  describe '#records' do
    it 'yields records' do
      unless described_class == Zizia::Parser
        expect { |b| parser.records(&b) }
          .to yield_control.exactly(record_count).times
      end
    end
  end

  describe '#valid?' do
    it 'is valid' do
      expect(parser).to be_valid
    end

    context 'when not valid' do
      before do
        parser.validators = [Zizia::AlwaysInvalidValidator.new]
      end

      it 'is invalid' do
        expect { parser.validate }
          .to change { parser.valid? }
          .to be_falsey
      end
    end
  end

  describe '#validate' do
    it 'is true when valid' do
      expect(parser.validate).to be_truthy
    end

    context 'when not valid' do
      before do
        parser.validators = [Zizia::AlwaysInvalidValidator.new]
      end

      it 'is invalid' do
        expect(parser.validate).to be_falsey
      end
    end
  end

  describe '#validate!' do
    it 'is true when valid' do
      expect(parser.validate).to be_truthy
    end

    context 'when not valid' do
      before do
        parser.validators = [Zizia::AlwaysInvalidValidator.new]
      end

      it 'raises a ValidationError' do
        expect { parser.validate! }
          .to raise_error Zizia::Parser::ValidationError
      end
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
zizia-6.0.1 lib/zizia/spec/shared_examples/a_parser.rb
zizia-6.0.0 lib/zizia/spec/shared_examples/a_parser.rb
zizia-5.5.0 lib/zizia/spec/shared_examples/a_parser.rb
zizia-5.4.0 lib/zizia/spec/shared_examples/a_parser.rb
zizia-5.3.0 lib/zizia/spec/shared_examples/a_parser.rb
zizia-5.2.0 lib/zizia/spec/shared_examples/a_parser.rb
zizia-5.1.0 lib/zizia/spec/shared_examples/a_parser.rb
zizia-5.0.1 lib/zizia/spec/shared_examples/a_parser.rb
zizia-5.0.0 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.6.0.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.5.4.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.5.3.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.5.2.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.5.1.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.4.1.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.4.0.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.3.1.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.2.0.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.1.0.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb
zizia-4.0.4.alpha.01 lib/zizia/spec/shared_examples/a_parser.rb