Sha256: 2928c4cfb7d162d620f6c4c38f631d2bfea0e7b2a889ca76d842166812f4c792

Contents?: true

Size: 1.83 KB

Versions: 35

Compression:

Stored size: 1.83 KB

Contents

# frozen_string_literal: true

require "cases/helper_sqlserver"

class SQLServerUuidTest < ActiveRecord::TestCase
  let(:acceptable_uuid) { ActiveRecord::ConnectionAdapters::SQLServer::Type::Uuid::ACCEPTABLE_UUID }

  it "has a uuid primary key" do
    _(SSTestUuid.columns_hash["id"].type).must_equal :uuid
    assert SSTestUuid.primary_key
  end

  it "can create with a new pk" do
    obj = SSTestUuid.create!
    _(obj.id).must_be :present?
    _(obj.id).must_match acceptable_uuid
  end

  it "can create other uuid column on reload" do
    obj = SSTestUuid.create!
    obj.reload
    _(obj.other_uuid).must_match acceptable_uuid
  end

  it "can find uuid pk via connection" do
    _(connection.primary_key(SSTestUuid.table_name)).must_equal "id"
  end

  it "changing column default" do
    table_name = SSTestUuid.table_name
    connection.add_column table_name, :thingy, :uuid, null: false, default: "NEWSEQUENTIALID()"
    SSTestUuid.reset_column_information
    column = SSTestUuid.columns_hash["thingy"]
    _(column.default_function).must_equal "newsequentialid()"
    # Now to a different function.
    connection.change_column table_name, :thingy, :uuid, null: false, default: "NEWID()"
    SSTestUuid.reset_column_information
    column = SSTestUuid.columns_hash["thingy"]
    _(column.default_function).must_equal "newid()"
  end

  it "can insert even when use_output_inserted to false " do
    obj = with_use_output_inserted_disabled { SSTestUuid.create!(name: "😢") }
    _(obj.id).must_be :nil?
  end

  it "can add column with proc as default" do
    table_name = SSTestUuid.table_name
    connection.add_column table_name, :thingy, :uuid, null: false, default: -> { "NEWSEQUENTIALID()" }
    SSTestUuid.reset_column_information
    column = SSTestUuid.columns_hash["thingy"]
    _(column.default_function).must_equal "newsequentialid()"
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
activerecord-sqlserver-adapter-8.0.5 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-8.0.4 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.5 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-8.0.3 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.11 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.4 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-8.0.2 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.10 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.3 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-8.0.1 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-8.0.0 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.2 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.9 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.8 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.1 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.0 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.7 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.6 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.5 test/cases/uuid_test_sqlserver.rb
activerecord-sqlserver-adapter-7.1.4 test/cases/uuid_test_sqlserver.rb