Sha256: 5f84cbe1bfda3f415cfc84d9a7336b3730335fcd18e09b97c7c32c5d96df9e40

Contents?: true

Size: 856 Bytes

Versions: 1

Compression:

Stored size: 856 Bytes

Contents

# encoding: utf-8

require 'spec_helper'

describe Algebra::Summarization::Summaries, '#summarize_by' do
  subject { object.summarize_by(header, tuple) }

  let(:object)      { described_class.new(summarizers)           }
  let(:summarizers) { { :count => summarizer }                   }
  let(:summarizer)  { mock('Summarizer', :call => 1)             }
  let(:header)      { Relation::Header.new([ [ :id, Integer ] ]) }
  let(:tuple)       { Tuple.new(header, [ 1 ])                   }

  it 'passes the tuple to the aggregate function' do
    summarizer.should_receive(:call).with(nil, tuple)
    subject
  end

  it 'aggregates the value returned by the summarizer' do
    subject
    key, value = subject.to_hash.first
    key.should == :count
    value.should be_kind_of(Algebra::Summarization::Summary)
    value.call(tuple).should == 1
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
veritas-0.0.4 spec/unit/veritas/algebra/summarization/summaries/summarize_by_spec.rb