Sha256: 5b61aa2c702857e83f5b2603d9ce80da532bb585830ff36cb54e22b3aad556af

Contents?: true

Size: 1.29 KB

Versions: 12

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

require "cases/helper_sqlserver"

if ActiveRecord::Base.lease_connection.supports_json?
  class JsonTestSQLServer < ActiveRecord::TestCase
    before do
      @o1 = SSTestDatatypeMigrationJson.create! json_col: { "a" => "a", "b" => "b", "c" => "c" }
      @o2 = SSTestDatatypeMigrationJson.create! json_col: { "a" => nil, "b" => "b", "c" => "c" }
      @o3 = SSTestDatatypeMigrationJson.create! json_col: { "x" => 1, "y" => 2, "z" => 3 }
      @o4 = SSTestDatatypeMigrationJson.create! json_col: { "array" => [1, 2, 3] }
      @o5 = SSTestDatatypeMigrationJson.create! json_col: nil
    end

    it "can return and save JSON data" do
      _(SSTestDatatypeMigrationJson.find(@o1.id).json_col).must_equal({ "a" => "a", "b" => "b", "c" => "c" })
      @o1.json_col = { "a" => "a" }
      _(@o1.json_col).must_equal({ "a" => "a" })
      @o1.save!
      _(@o1.reload.json_col).must_equal({ "a" => "a" })
    end

    it "can use ISJSON function" do
      _(SSTestDatatypeMigrationJson.where("ISJSON(json_col) > 0").count).must_equal 4
      _(SSTestDatatypeMigrationJson.where("ISJSON(json_col) IS NULL").count).must_equal 1
    end

    it "can use JSON_VALUE function" do
      _(SSTestDatatypeMigrationJson.where("JSON_VALUE(json_col, '$.b') = 'b'").count).must_equal 2
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

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