class Mysql2AdapterTest

Public Instance Methods

setup() click to toggle source
# File activerecord/test/cases/adapters/mysql2/mysql2_adapter_test.rb, line 9
def setup
  @conn = ActiveRecord::Base.connection
end
test_columns_for_distinct_blank_not_nil_orders() click to toggle source
# File activerecord/test/cases/adapters/mysql2/mysql2_adapter_test.rb, line 45
def test_columns_for_distinct_blank_not_nil_orders
  assert_equal "posts.id, posts.created_at AS alias_0",
    @conn.columns_for_distinct("posts.id", ["posts.created_at desc", "", "   "])
end
test_columns_for_distinct_few_orders() click to toggle source
# File activerecord/test/cases/adapters/mysql2/mysql2_adapter_test.rb, line 32
def test_columns_for_distinct_few_orders
  assert_equal "posts.id, posts.created_at AS alias_0, posts.position AS alias_1",
    @conn.columns_for_distinct("posts.id", ["posts.created_at desc", "posts.position asc"])
end
test_columns_for_distinct_one_order() click to toggle source
# File activerecord/test/cases/adapters/mysql2/mysql2_adapter_test.rb, line 27
def test_columns_for_distinct_one_order
  assert_equal "posts.id, posts.created_at AS alias_0",
    @conn.columns_for_distinct("posts.id", ["posts.created_at desc"])
end
test_columns_for_distinct_with_arel_order() click to toggle source
# File activerecord/test/cases/adapters/mysql2/mysql2_adapter_test.rb, line 50
def test_columns_for_distinct_with_arel_order
  order = Object.new
  def order.to_sql
    "posts.created_at desc"
  end
  assert_equal "posts.id, posts.created_at AS alias_0",
    @conn.columns_for_distinct("posts.id", [order])
end
test_columns_for_distinct_with_case() click to toggle source
# File activerecord/test/cases/adapters/mysql2/mysql2_adapter_test.rb, line 37
def test_columns_for_distinct_with_case
  assert_equal(
    "posts.id, CASE WHEN author.is_active THEN UPPER(author.name) ELSE UPPER(author.email) END AS alias_0",
    @conn.columns_for_distinct("posts.id",
      ["CASE WHEN author.is_active THEN UPPER(author.name) ELSE UPPER(author.email) END"])
  )
end
test_columns_for_distinct_zero_orders() click to toggle source
# File activerecord/test/cases/adapters/mysql2/mysql2_adapter_test.rb, line 22
def test_columns_for_distinct_zero_orders
  assert_equal "posts.id",
    @conn.columns_for_distinct("posts.id", [])
end
test_errors_for_bigint_fks_on_integer_pk_table() click to toggle source
# File activerecord/test/cases/adapters/mysql2/mysql2_adapter_test.rb, line 59
def test_errors_for_bigint_fks_on_integer_pk_table
  # table old_cars has primary key of integer

  error = assert_raises(ActiveRecord::MismatchedForeignKey) do
    @conn.add_reference :engines, :old_car
    @conn.add_foreign_key :engines, :old_cars
  end

  assert_match "Column `old_car_id` on table `engines` has a type of `bigint(20)`", error.message
  assert_not_nil error.cause
  @conn.exec_query("ALTER TABLE engines DROP COLUMN old_car_id")
end
test_exec_query_nothing_raises_with_no_result_queries() click to toggle source
# File activerecord/test/cases/adapters/mysql2/mysql2_adapter_test.rb, line 13
def test_exec_query_nothing_raises_with_no_result_queries
  assert_nothing_raised do
    with_example_table do
      @conn.exec_query("INSERT INTO ex (number) VALUES (1)")
      @conn.exec_query("DELETE FROM ex WHERE number = 1")
    end
  end
end

Private Instance Methods

with_example_table(definition = "id int auto_increment primary key, number int, data varchar(255)", &block) click to toggle source
Calls superclass method DdlHelper#with_example_table
# File activerecord/test/cases/adapters/mysql2/mysql2_adapter_test.rb, line 74
def with_example_table(definition = "id int auto_increment primary key, number int, data varchar(255)", &block)
  super(@conn, "ex", definition, &block)
end