Sha256: f5d8e9889d3e7881517b30c29039f091b5500f97e83ab577691ee152af81a2e3

Contents?: true

Size: 1.6 KB

Versions: 2

Compression:

Stored size: 1.6 KB

Contents

require 'spec_helper'
module Alf
  module Operator::Relational
    describe Group do
        
      let(:operator_class){ Group }
      it_should_behave_like("An operator class")
        
      let(:input) {[
        {:a => "via_method", :time => 1, :b => "b"},
        {:a => "via_method", :time => 2, :b => "b"},
        {:a => "via_reader", :time => 3, :b => "b"},
      ]}
  
      let(:expected) {[
        {:a => "via_method", :as => Alf::Relation[{:time => 1, :b => "b"}, 
                                                  {:time => 2, :b => "b"}]},
        {:a => "via_reader", :as => Alf::Relation[{:time => 3, :b => "b"}]},
      ]}
  
      subject{ operator.to_a.sort{|k1,k2| k1[:a] <=> k2[:a]} }
  
      describe "without --allbut" do
  
        describe "when factored with commandline args" do
          let(:operator){ Group.run(["--", "time", "b", "--", "as"]) }
          before{ operator.pipe(input) }
          it { should == expected }
        end
    
        describe "when factored with Lispy" do
          let(:operator){ Lispy.group(input, [:time, :b], :as) }
          it { should == expected }
        end
        
      end
  
      describe "with --allbut" do
          
        describe "when factored with commandline args" do
          let(:operator){ Group.run(["--allbut", "--","a", "--", "as"]) }
          before{ operator.pipe(input) }
          it { should == expected }
        end
    
        describe "when factored with Lispy" do
          let(:operator){ Lispy.group(input, [:a], :as, :allbut => true) }
          it { should == expected }
        end
        
      end
  
    end 
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
alf-0.10.1 spec/unit/operator/relational/test_group.rb
alf-0.10.0 spec/unit/operator/relational/test_group.rb