Sha256: 9a5c2f1f9e4616e791ad114a1d0053ff2d005cbc0c83850f1f96488364696544

Contents?: true

Size: 1.81 KB

Versions: 12

Compression:

Stored size: 1.81 KB

Contents

#!/usr/bin/env ruby
# frozen_string_literal: true

$LOAD_PATH << __dir__
%w(lib ext test).each do |dir|
  $LOAD_PATH.unshift File.expand_path("../../#{dir}", __FILE__)
end

require 'minitest'
require 'minitest/autorun'

require 'sqlite3'
require 'active_record'
require 'oj'

Oj.mimic_JSON()
Oj.default_options = {mode: :compat, indent: 2}

# ActiveRecord::Base.logger = Logger.new(STDERR)

ActiveRecord::Base.establish_connection(
  :adapter => 'sqlite3',
  :database => ':memory:'
)

ActiveRecord::Schema.define do
  create_table :users do |table|
    table.column :first_name, :string
    table.column :last_name, :string
    table.column :email, :string
  end
end

class User < ActiveRecord::Base
end

class ActiveTest < Minitest::Test

  def test_active
    User.find_or_create_by(first_name: 'John', last_name: 'Smith', email: 'john@example.com')
    User.find_or_create_by(first_name: 'Joan', last_name: 'Smith', email: 'joan@example.com')

    # Single instance.
    assert_equal(%|{
  "id":1,
  "first_name":"John",
  "last_name":"Smith",
  "email":"john@example.com"
}
|, Oj.dump(User.first))

    # Array of instances.
    assert_equal(%|[
  {
    "id":1,
    "first_name":"John",
    "last_name":"Smith",
    "email":"john@example.com"
  },
  {
    "id":2,
    "first_name":"Joan",
    "last_name":"Smith",
    "email":"joan@example.com"
  }
]
|, Oj.dump(User.all))

    # Single instance as json. (not Oj)
    assert_equal(%|{
  "id":1,
  "first_name":"John",
  "last_name":"Smith",
  "email":"john@example.com"
}
|, User.first.to_json)

    # Array of instances as json. (not Oj)
    assert_equal(%|[
  {
    "id":1,
    "first_name":"John",
    "last_name":"Smith",
    "email":"john@example.com"
  },
  {
    "id":2,
    "first_name":"Joan",
    "last_name":"Smith",
    "email":"joan@example.com"
  }
]
|, User.all.to_json)
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
oj-3.16.9 test/_test_active_mimic.rb
oj-3.16.8 test/_test_active_mimic.rb
oj-3.16.7 test/_test_active_mimic.rb
oj-3.16.6 test/_test_active_mimic.rb
oj-3.16.5 test/_test_active_mimic.rb
oj-3.16.4 test/_test_active_mimic.rb
oj-3.16.3 test/_test_active_mimic.rb
oj-3.16.2 test/_test_active_mimic.rb
oj-3.16.1 test/_test_active_mimic.rb
oj-3.16.0 test/_test_active_mimic.rb
oj-3.15.1 test/_test_active_mimic.rb
oj-3.15.0 test/_test_active_mimic.rb