Sha256: e27123e597c7edb5fab7f5761334e93bbb02f01468f443f0e910d26f034c9d4e

Contents?: true

Size: 762 Bytes

Versions: 4

Compression:

Stored size: 762 Bytes

Contents

require 'spec_helper'
module Alf
  describe Viewpoint, "parse" do

    subject{ viewpoint.parse(&expr) }

    context 'on predicate expressions' do
      let(:viewpoint){ Viewpoint }
      let(:expr){ ->{ eq(:x, 2) } }

      it{ should be_a(Predicate) }
    end

    context 'on relational expressions' do
      let(:viewpoint){ Viewpoint }
      let(:expr){ ->{ restrict(:suppliers, ->{ sid == 'S1' }) } }

      it{ should be_a(Algebra::Restrict) }
    end

    context 'on a sub-viewpoint' do
      let(:viewpoint){
        Module.new{
          include Alf::Viewpoint
          def hello; "world"; end
        }
      }
      let(:expr){ ->{ hello } }

      it 'uses the expected binding' do
        subject.should eq("world")
      end
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
alf-core-0.15.0 spec/unit/alf-viewpoint/test_parse.rb
alf-core-0.14.0 spec/unit/alf-viewpoint/test_parse.rb
alf-core-0.13.1 spec/unit/alf-viewpoint/test_parse.rb
alf-core-0.13.0 spec/unit/alf-viewpoint/test_parse.rb