Sha256: 5531d88a563f841828e162d75d9dbbbac801ea083d838b3da33ef7a7a33a9e01

Contents?: true

Size: 1.26 KB

Versions: 5

Compression:

Stored size: 1.26 KB

Contents

require 'spec_helper'

describe ThinkingSphinx::ActiveRecord::DatabaseAdapters::PostgreSQLAdapter do
  let(:adapter) {
    ThinkingSphinx::ActiveRecord::DatabaseAdapters::PostgreSQLAdapter.new(model)
  }
  let(:model)   { double('model') }

  describe '#boolean_value' do
    it "returns 'TRUE' for true" do
      adapter.boolean_value(true).should == 'TRUE'
    end

    it "returns 'FALSE' for false" do
      adapter.boolean_value(false).should == 'FALSE'
    end
  end

  describe '#cast_to_timestamp' do
    it "converts to unix timestamps" do
      adapter.cast_to_timestamp('created_at').
        should == 'extract(epoch from created_at)::int'
    end
  end

  describe '#concatenate' do
    it "concatenates with the given separator" do
      adapter.concatenate('foo, bar, baz', ',').
        should == "COALESCE(foo, '') || ',' || COALESCE(bar, '') || ',' || COALESCE(baz, '')"
    end
  end

  describe '#convert_nulls' do
    it "translates arguments to a COALESCE SQL call" do
      adapter.convert_nulls('id', 5).should == 'COALESCE(id, 5)'
    end
  end

  describe '#group_concatenate' do
    it "group concatenates the clause with the given separator" do
      adapter.group_concatenate('foo', ',').
        should == "array_to_string(array_agg(foo), ',')"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
thinking-sphinx-3.0.2 spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb
thinking-sphinx-3.0.1 spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb
thinking-sphinx-3.0.0 spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb
thinking-sphinx-3.0.0.rc spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb
thinking-sphinx-3.0.0.pre spec/thinking_sphinx/active_record/database_adapters/postgresql_adapter_spec.rb