require 'spec_helper'

describe Balanced::Pager do
  describe '#adjust_pagination_params' do
    subject { Balanced::Pager.new 'a uri' }

    it 'sets limit based on per' do
      params = subject.send(:adjust_pagination_params, :per => 5)
      params[:limit].should == 5
    end

    it 'sets offset based on page and default limit' do
      params = subject.send(:adjust_pagination_params, :page => 2)
      params[:offset].should == 10
    end

    it 'sets offset based on page and per' do
      params = subject.send(:adjust_pagination_params, :page => 2, :per => 4)
      params[:offset].should == 4
    end

    it 'prefers per to limit' do
      params = subject.send(:adjust_pagination_params, :per => 5, :limit => 10)
      params[:limit].should == 5
    end

    it 'falls back to limit' do
      params = subject.send(:adjust_pagination_params, :limit => 3)
      params[:limit].should == 3
    end

    it 'prefers page to offset' do
      params = subject.send(:adjust_pagination_params, :page => 2, :offset => 0)
      params[:offset].should == 10
    end

    it 'falls back to offset' do
      params = subject.send(:adjust_pagination_params, :offset => 6)
      params[:offset].should == 6
    end
  end
end
