File: test_realworld.rb

package info (click to toggle)
ruby-oj 3.16.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 14,192 kB
  • sloc: ansic: 19,659; ruby: 11,750; sh: 70; makefile: 17
file content (36 lines) | stat: -rw-r--r-- 1,175 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env ruby
# frozen_string_literal: true

$LOAD_PATH << __dir__

require 'helper'

class RealWorldTest < Minitest::Test

  def test_realworld_data
    files = ['activitypub.json', 'canada.json', 'citm_catalog.json', 'ohai.json', 'twitter.json']

    # The files in `test/data` are generated from the original JSON files using the following snippet. 
    # Ensure a tested version of Oj is used to generate these files.

    # files.each do |f|
    #   data = Oj.load_file("#{__dir__}/test/data/#{f}")
    #   prefix = File.basename(f, '.json')
    #   File.write("#{__dir__}/test/data/#{prefix}.compat.json", Oj.dump(data, mode: :compat))
    #   File.write("#{__dir__}/test/data/#{prefix}.rails.json", Oj.dump(data, mode: :rails))
    # end

    files.each do |file|
      data = Oj.load(File.read("test/data/#{file}"))
      basename = File.basename(file, '.json')

      expected = File.read("test/data/#{basename}.compat.json")
      json = Oj.dump(data, mode: :compat)
      assert_equal(expected, json)

      expected = File.read("test/data/#{basename}.rails.json")
      json = Oj.dump(data, mode: :rails)
      assert_equal(expected, json)
    end
  end
end