Sha256: 1d9f277bb7799d83f70ad1e8208414b97546882fd75761804626af4aa381a153

Contents?: true

Size: 853 Bytes

Versions: 2

Compression:

Stored size: 853 Bytes

Contents

require 'spec_helper'

describe 'Veritas::Relation::Materialized#optimize' do
  subject { object.optimize }

  let(:klass)  { Relation::Materialized                }
  let(:object) { klass.new([ [ :id, Integer ] ], body) }

  context 'with an empty Array' do
    let(:body) { [] }

    it { should eql(Relation::Empty.new(object.header)) }

    it 'returns an equivalent object to the unoptimized operation' do
      should == object
    end

    it 'does not execute body#each' do
      body.should_not_receive(:each)
      subject
    end

    it_should_behave_like 'an optimize method'
  end

  context 'with an nonempty Array' do
    let(:body) { [ [ 1 ] ] }

    it { should equal(object) }

    it 'does not execute body#each' do
      body.should_not_receive(:each)
      subject
    end

    it_should_behave_like 'an optimize method'
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
veritas-0.0.2 spec/integration/veritas/relation/materialized/optimize_spec.rb
veritas-0.0.1 spec/integration/veritas/relation/materialized/optimize_spec.rb