Sha256: e4571ce8cc1097657e8837debc8e940c64a2a9f322538a6595f78f726f16947c

Contents?: true

Size: 1.64 KB

Versions: 1

Compression:

Stored size: 1.64 KB

Contents

# frozen_string_literal: true

require "cases/helper_sqlserver"

class ViewTestSQLServer < ActiveRecord::TestCase
  let(:connection) { ActiveRecord::Base.lease_connection }

  describe 'view with default values' do
    before do
      connection.drop_table :view_casing_table rescue nil
      connection.create_table :view_casing_table, force: true do |t|
        t.boolean :Default_Falsey,      null: false, default: false
        t.boolean :Default_Truthy,      null: false, default: true
        t.string  :default_string_null, null: true,  default: nil
        t.string  :default_string,      null: false, default: "abc"
      end

      connection.execute("DROP VIEW IF EXISTS view_casing_table_view;")
      connection.execute <<-SQL
        CREATE VIEW view_casing_table_view AS
              SELECT id AS id,
                     default_falsey      AS falsey,
                     default_truthy      AS truthy,
                     default_string_null AS s_null,
                     default_string      AS s
              FROM view_casing_table
      SQL
    end

    it "default values are correct when column casing used in tables and views are different" do
      klass = Class.new(ActiveRecord::Base) do
        self.table_name = "view_casing_table_view"
      end

      obj = klass.new
      assert_equal false, obj.falsey
      assert_equal true, obj.truthy
      assert_equal "abc", obj.s
      assert_nil   obj.s_null
      assert_equal 0, klass.count

      obj.save!
      assert_equal false, obj.falsey
      assert_equal true, obj.truthy
      assert_equal "abc", obj.s
      assert_nil   obj.s_null
      assert_equal 1, klass.count
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
activerecord-sqlserver-adapter-7.2.0 test/cases/view_test_sqlserver.rb