Sha256: 041a07d5b5dc2a26df4514d4ffda47da922ef19381a813d56af63285be2ae8d1

Contents?: true

Size: 1010 Bytes

Versions: 5

Compression:

Stored size: 1010 Bytes

Contents

require 'spec_helper'
module Alf
  module Operator::Relational
    describe Join do
        
      let(:suppliers){Relation.coerce [
        {:sid => 'S1', :city => 'London'},
        {:sid => 'S2', :city => 'Paris'},
        {:sid => 'S3', :city => 'Paris'},
        {:sid => 'S4', :city => 'London'},
        {:sid => 'S5', :city => 'Athens'},
      ]} 
      
      describe "when applied to sub-relations" do
        let(:suppliers_by_city){Relation.coerce( 
          Lispy.group(suppliers, [:sid], :suppliers)
        )}
        let(:s2_s3){Relation.coerce([
          {:sid => 'S3'},
          {:sid => 'S2'}
        ])} 
        let(:right){Relation.coerce([
          {:suppliers => s2_s3, :hello => "world"}
        ])}
        let(:expected){Relation.coerce([
          {:suppliers => s2_s3, :hello => "world", :city => 'Paris'}
        ])}
        subject{Relation.coerce(
          Lispy.join(suppliers_by_city, right)
        )}
        it{ should == expected }
      end
      
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
alf-0.10.1 spec/unit/operator/relational/test_join.rb
alf-0.10.0 spec/unit/operator/relational/test_join.rb
alf-0.9.3 spec/unit/operator/relational/test_join.rb
alf-0.9.2 spec/unit/operator/relational/test_join.rb
alf-0.9.1 spec/unit/operator/relational/test_join.rb