Sha256: 93854eebe555b5be7e08acde93714bad560e53ba6ad81fd933672396c551ae15
Contents?: true
Size: 1.7 KB
Versions: 1
Compression:
Stored size: 1.7 KB
Contents
require 'spec_helper' module Aggrobot module QueryPlanner describe DefaultQueryPlanner do let(:collection) { double } let(:group) { 'group_col' } subject(:query_planner) { DefaultQueryPlanner.new(collection, group) } describe '#sub_query' do context 'when group was specified' do before do collection.should_receive(:where).with('group_col' => 'group').and_return('collection') end it 'returns the correct subquery' do expect(query_planner.sub_query('group')).to eq 'collection' end end context 'when default group' do let(:query_planner) { DefaultQueryPlanner.new(collection, DEFAULT_GROUP_BY) } it 'returns the correct subquery' do expect(query_planner.sub_query('group')).to eq collection end end end describe '#query_results' do context 'collection is none' do before { query_planner.stub(:collection_is_none? => true) } it { expect(query_planner.query_results).to be_empty } end context 'collection is not none' do let(:grouped_relation) { double } before do query_planner.stub(:collection_is_none? => false) collection.should_receive(:group).with('group_col').and_return(grouped_relation) grouped_relation.should_receive(:pluck) .with('group_col', SqlFunctions.count, 'extra_col1', 'extra_col2') .and_return(:results) end it 'returns results for columns' do expect(query_planner.query_results(['extra_col1', 'extra_col2'])).to eq :results end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aggrobot-0.0.2 | spec/unit/aggrobot/query_planners/default_query_planner_spec.rb |