Sha256: 2692eecee3f1de715fc3c44b4ded65c60f65b0c264f798ccdb15a61e9e55d454

Contents?: true

Size: 1.28 KB

Versions: 21

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

require "cases/helper_sqlserver"

class EnumTestSQLServer < ActiveRecord::TestCase

  # Check that enums are supported for all string types.
  # For each type we check: cast, serialize, and update by declaration.
  # We create a custom class for each type to test.
  %w[char_10 varchar_50 varchar_max text nchar_10 nvarchar_50 nvarchar_max ntext].each do |col_name|
    describe "support #{col_name} enums" do
      let(:klass) do
        Class.new(ActiveRecord::Base) do
          self.table_name = 'sst_datatypes'

          enum col_name => { alpha: "A", beta: "B" }
        end
      end

      it "type.cast" do
        type = klass.type_for_attribute(col_name)

        assert_equal "alpha",  type.cast('A')
        assert_equal "beta",   type.cast('B')
      end

      it "type.serialize" do
        type = klass.type_for_attribute(col_name)

        assert_equal 'A', type.serialize('A')
        assert_equal 'B', type.serialize('B')

        assert_equal 'A', type.serialize(:alpha)
        assert_equal 'B', type.serialize(:beta)
      end

      it "update by declaration" do
        r = klass.new

        r.alpha!
        assert_predicate r, :alpha?

        r.beta!
        assert_not_predicate r, :alpha?
        assert_predicate r, :beta?
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

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