Sha256: 9ed0e72a4cad38250eceec7ef4cace4f147a66049c7e60c12d2248c04e54f9dc

Contents?: true

Size: 1.67 KB

Versions: 36

Compression:

Stored size: 1.67 KB

Contents

# frozen_string_literal: true

require "cases/helper_sqlserver"

class IndexTestSQLServer < ActiveRecord::TestCase
  before do
    connection.create_table(:testings) do |t|
      t.column :foo, :string, limit: 100
      t.column :bar, :string, limit: 100
      t.string :first_name
      t.string :last_name,    limit: 100
      t.string :key,          limit: 100
      t.boolean :administrator
    end
  end

  after do
    connection.drop_table :testings rescue nil
  end

  it "add index with order" do
    assert_sql(/CREATE.*INDEX.*\(\[last_name\] DESC\)/i) do
      connection.add_index "testings", ["last_name"], order: { last_name: :desc }
      connection.remove_index "testings", ["last_name"]
    end
    assert_sql(/CREATE.*INDEX.*\(\[last_name\] DESC, \[first_name\]\)/i) do
      connection.add_index "testings", ["last_name", "first_name"], order: { last_name: :desc }
      connection.remove_index "testings", ["last_name", "first_name"]
    end
    assert_sql(/CREATE.*INDEX.*\(\[last_name\] DESC, \[first_name\] ASC\)/i) do
      connection.add_index "testings", ["last_name", "first_name"], order: { last_name: :desc, first_name: :asc }
      connection.remove_index "testings", ["last_name", "first_name"]
    end
  end

  it "add index with where" do
    assert_sql(/CREATE.*INDEX.*\(\[last_name\]\) WHERE \[first_name\] = N'john doe'/i) do
      connection.add_index "testings", "last_name", where: "[first_name] = N'john doe'"
      connection.remove_index "testings", "last_name"
    end
  end

  it "add index with expression" do
    connection.execute "ALTER TABLE [testings] ADD [first_name_upper] AS UPPER([first_name])"
    connection.add_index "testings", "first_name_upper"
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
activerecord-sqlserver-adapter-7.1.11 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.10 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.9 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.8 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.7 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.6 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.5 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.4 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.0.7 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.3 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.2 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.1 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.0 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.0.6 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.0.rc2 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.0.rc1 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.0.5.1 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.0.beta1 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.0.5.0 test/cases/index_test_sqlserver.rb
activerecord-sqlserver-adapter-7.0.4.0 test/cases/index_test_sqlserver.rb