Sha256: dad80740ebfa2d67709fea9b35a4390ba07575f346387795899aa87486fbbc15
Contents?: true
Size: 1.05 KB
Versions: 1
Compression:
Stored size: 1.05 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) { double('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.1 | spec/unit/axiom/algebra/summarization/summaries/summarize_by_spec.rb |