Sha256: 32a9d4c1f8b92fdf0618bf92080eff8337185f1d6530cc10642b18f5d7a0c122

Contents?: true

Size: 1.6 KB

Versions: 2

Compression:

Stored size: 1.6 KB

Contents

require 'spec_helper'
class CmFooSlaveConnection < ActiveRecord::Base
  establish_managed_connection(:slave_1_cm_test)
end

describe ConnectionManager::Using do
  
  it "should add sub class to current class with the name of the connection" do
    Fruit.send(:fetch_duplicate_class,"CmFooSlaveConnection")
    lambda { "Fruit::CmFooSlaveConnectionDup".constantize}.should_not raise_error
  end

  describe '#using' do
    it "should return an ActiveRecord::Relation" do
      Fruit.using("CmFooSlaveConnection").should be_kind_of(ActiveRecord::Relation)
    end
    it "should change the connection" do
      Fruit.using("CmFooSlaveConnection").connection.config.should_not eql(Fruit.connection.config)
    end
  
    it "should create the exact same sql if called from model or from relation" do
      class_sql = Fruit.using("CmFooSlaveConnection").where(:name => "malarky").to_sql
      relation_sql = Fruit.where(:name => "malarky").using("CmFooSlaveConnection").to_sql
      class_sql.should eql(relation_sql)
    end
  
    it "should have the same connection if called from model or from relation" do
      Fruit.where(:name => "malarky").using("CmFooSlaveConnection").connection.config.should eql(
        Fruit.using("CmFooSlaveConnection").where(:name => "malarky").connection.config)
      Fruit.using("CmFooSlaveConnection").where(:name => "malarky").connection.config.should_not eql(
        Fruit.where(:name => "malarky").connection.config)
      Fruit.where(:name => "malarky").using("CmFooSlaveConnection").connection.config.should_not eql(
        Fruit.where(:name => "malarky").connection.config)
    end
  end
end
  

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
connection_manager-1.0.3 spec/lib/using_spec.rb
connection_manager-1.0.2 spec/lib/using_spec.rb