Sha256: f0158242ef019ad30ada66a52049300a3964b53b7cf4569c7a65154972956dab

Contents?: true

Size: 1.77 KB

Versions: 10

Compression:

Stored size: 1.77 KB

Contents

require File.expand_path(File.dirname(__FILE__) + '/spec_helper')

describe "Foreign Key definition" do

  let(:definition) {
    options = {:name => "posts_user_fkey", :column_names => :user, :references_column_names => :id}
    SchemaPlus::ActiveRecord::ConnectionAdapters::ForeignKeyDefinition.new(:posts, :users, options)
  }

  it "dumps to sql with quoted values" do
    expect(definition.to_sql).to eq(%Q{CONSTRAINT posts_user_fkey FOREIGN KEY (#{quote_column_name('user')}) REFERENCES #{quote_table_name('users')} (#{quote_column_name('id')})})
  end

  it "dumps to sql with deferrable values" do
    options = {:name => "posts_user_fkey", :column_names => :user, :references_column_names => :id, :deferrable => true}
    deferred_definition = SchemaPlus::ActiveRecord::ConnectionAdapters::ForeignKeyDefinition.new(:posts, :users, options)
    expect(deferred_definition.to_sql).to eq(%Q{CONSTRAINT posts_user_fkey FOREIGN KEY (#{quote_column_name('user')}) REFERENCES #{quote_table_name('users')} (#{quote_column_name('id')}) DEFERRABLE})
  end

  it "dumps to sql with initially deferrable values" do
    options = {:name => "posts_user_fkey", :column_names => :user, :references_column_names => :id, :deferrable => :initially_deferred}
    initially_deferred_definition = SchemaPlus::ActiveRecord::ConnectionAdapters::ForeignKeyDefinition.new(:posts, :users, options)
    expect(initially_deferred_definition.to_sql).to eq(%Q{CONSTRAINT posts_user_fkey FOREIGN KEY (#{quote_column_name('user')}) REFERENCES #{quote_table_name('users')} (#{quote_column_name('id')}) DEFERRABLE INITIALLY DEFERRED})
  end

  def quote_table_name(table)
    ActiveRecord::Base.connection.quote_table_name(table)
  end

  def quote_column_name(column)
    ActiveRecord::Base.connection.quote_column_name(column)
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
schema_plus-1.8.9 spec/foreign_key_definition_spec.rb
schema_plus-1.8.8 spec/foreign_key_definition_spec.rb
schema_plus-1.8.7 spec/foreign_key_definition_spec.rb
schema_plus-1.8.6 spec/foreign_key_definition_spec.rb
schema_plus-1.8.5 spec/foreign_key_definition_spec.rb
schema_plus-1.8.4 spec/foreign_key_definition_spec.rb
schema_plus-1.8.3 spec/foreign_key_definition_spec.rb
schema_plus-1.8.2 spec/foreign_key_definition_spec.rb
schema_plus-1.8.1 spec/foreign_key_definition_spec.rb
schema_plus-1.8.0 spec/foreign_key_definition_spec.rb