Sha256: 1b4558951a14d7fa84b6691568c73acbe6ee1fead1d3363a8d33bfde7afc084d
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
# encoding: utf-8 require 'spec_helper' describe Algebra::Summarization::Summaries, '#summarize_by' do subject { object.summarize_by(tuple) } let(:object) { described_class.new(header, summarizers) } let(:summarizers) { { :count => summarizer } } let(:summarizer) { mock('Summarizer', :call => 1) } let(:header) { Relation::Header.coerce([ [ :id, Integer ] ]) } let(:tuple_header) { Relation::Header.coerce([ [ :id, Integer ], [ :name, String ] ]) } let(:tuple) { Tuple.new(tuple_header, [ 1, 'Dan Kubb' ]) } it_should_behave_like 'a command method' 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 key, value = subject.to_hash.first key.should eql(:count) value.should be_instance_of(Algebra::Summarization::Summary) value.call(tuple.project(header)).should eql(1) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
axiom-0.1.0 | spec/unit/axiom/algebra/summarization/summaries/summarize_by_spec.rb |