Sha256: f9b6ebc0e9c2bfe3fb66ee9fa5184fb2ecea777efd30f5afe90cda02b468f381

Contents?: true

Size: 1.28 KB

Versions: 12

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

12 entries across 12 versions & 1 rubygems

Version Path
activerecord-sqlserver-adapter-8.0.5 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-8.0.4 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.5 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-8.0.3 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.4 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-8.0.2 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.3 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-8.0.1 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-8.0.0 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.2 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.1 test/cases/enum_test_sqlserver.rb
activerecord-sqlserver-adapter-7.2.0 test/cases/enum_test_sqlserver.rb