Sha256: 3dd063851ec1f5a25e3c9555e2dd3f5dcad580e7676310bafa30ce2bb53cf1ad

Contents?: true

Size: 1.15 KB

Versions: 7

Compression:

Stored size: 1.15 KB

Contents

shared_examples_for "an enumerable dataset" do
  subject(:dataset) { klass.new(data) }

  let(:data) do
    [{ 'name' => 'Jane' }, { 'name' => 'Joe' }]
  end

  describe '#each' do
    it 'yields tuples through row_proc' do
      result = []

      dataset.each { |tuple| result << tuple }
      expect(result).to match_array([{ name: 'Jane' }, { name: 'Joe' }])
    end
  end

  describe '#to_a' do
    it 'casts dataset to an array' do
      expect(dataset.to_a).to eql([{ name: 'Jane' }, { name: 'Joe' }])
    end
  end

  describe '#find_all' do
    it 'yields tuples through row_proc' do
      result = dataset.find_all { |tuple| tuple[:name] == 'Jane' }

      expect(result).to be_instance_of(klass)
      expect(result).to match_array([{ name: 'Jane' }])
    end
  end

  describe '#kind_of?' do
    it 'does not forward to data object' do
      expect(dataset).to be_kind_of(klass)
    end
  end

  describe '#instance_of?' do
    it 'does not forward to data object' do
      expect(dataset).to be_instance_of(klass)
    end
  end

  describe '#is_a?' do
    it 'does not forward to data object' do
      expect(dataset.is_a?(klass)).to be(true)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rom-0.6.2 spec/shared/enumerable_dataset.rb
rom-0.6.1 spec/shared/enumerable_dataset.rb
rom-0.6.0 spec/shared/enumerable_dataset.rb
rom-0.6.0.rc1 spec/shared/enumerable_dataset.rb
rom-0.6.0.beta3 spec/shared/enumerable_dataset.rb
rom-0.6.0.beta2 spec/shared/enumerable_dataset.rb
rom-0.6.0.beta1 spec/shared/enumerable_dataset.rb