Sha256: a6f9f03503865809598ff82ad14f7e2343891417596571cc06b9afab71ae1350

Contents?: true

Size: 898 Bytes

Versions: 1

Compression:

Stored size: 898 Bytes

Contents

require 'spec_helper'

describe 'Veritas::Optimizer::Algebra::Extension::UnoptimizedOperand#optimizable?' do
  subject { object.optimizable? }

  let(:klass)      { Optimizer::Algebra::Extension::UnoptimizedOperand }
  let(:header)     { Relation::Header.new([ [ :id, Integer ] ])        }
  let(:base)       { Relation.new(header, [ [ 1 ] ].each)              }
  let(:extensions) { [ :text, lambda { |tuple| 1 } ]                   }
  let(:relation)   { operand.extend { |r| r.add(*extensions) }         }
  let(:object)     { klass.new(relation)                               }

  before do
    object.operation.should be_kind_of(Algebra::Extension)
  end

  context 'when the operand is optimizable' do
    let(:operand) { base.rename({}) }

    it { should be(true) }
  end

  context 'when the operand is not optimizable' do
    let(:operand) { base }

    it { should be(false) }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
veritas-0.0.2 spec/unit/veritas/optimizer/algebra/extension/unoptimized_operand/optimizable_spec.rb