test/test_object.rb in oj-2.9.4 vs test/test_object.rb in oj-2.9.5
- old
+ new
@@ -1,161 +1,146 @@
#!/usr/bin/env ruby
# encoding: UTF-8
-# Ubuntu does not accept arguments to ruby when called using env. To get warnings to show up the -w options is
-# required. That can be set in the RUBYOPT environment variable.
-# export RUBYOPT=-w
+$: << File.dirname(__FILE__)
-$VERBOSE = true
+require 'helper'
-$: << File.join(File.dirname(__FILE__), "../lib")
-$: << File.join(File.dirname(__FILE__), "../ext")
+class ObjectJuice < Minitest::Test
+ class Jeez
+ attr_accessor :x, :y
-require 'test/unit'
-require 'stringio'
-require 'date'
-require 'bigdecimal'
-require 'oj'
+ def initialize(x, y)
+ @x = x
+ @y = y
+ end
-$ruby = RUBY_DESCRIPTION.split(' ')[0]
-$ruby = 'ree' if 'ruby' == $ruby && RUBY_DESCRIPTION.include?('Ruby Enterprise Edition')
+ def eql?(o)
+ self.class == o.class && @x == o.x && @y == o.y
+ end
+ alias == eql?
-class Jeez
- attr_accessor :x, :y
+ def to_json(*a)
+ %{{"json_class":"#{self.class}","x":#{@x},"y":#{@y}}}
+ end
- def initialize(x, y)
- @x = x
- @y = y
- end
+ def self.json_create(h)
+ self.new(h['x'], h['y'])
+ end
+ end # Jeez
- def eql?(o)
- self.class == o.class && @x == o.x && @y == o.y
- end
- alias == eql?
-
- def to_json(*a)
- %{{"json_class":"#{self.class}","x":#{@x},"y":#{@y}}}
- end
+ module One
+ module Two
+ module Three
+ class Deep
- def self.json_create(h)
- self.new(h['x'], h['y'])
- end
-end # Jeez
+ def initialize()
+ end
-module One
- module Two
- module Three
- class Deep
+ def eql?(o)
+ self.class == o.class
+ end
+ alias == eql?
- def initialize()
- end
+ def to_hash()
+ {'json_class' => "#{self.class.name}"}
+ end
- def eql?(o)
- self.class == o.class
- end
- alias == eql?
+ def to_json(*a)
+ %{{"json_class":"#{self.class.name}"}}
+ end
- def to_hash()
- {'json_class' => "#{self.class.name}"}
- end
+ def self.json_create(h)
+ self.new()
+ end
+ end # Deep
+ end # Three
+ end # Two
- def to_json(*a)
- %{{"json_class":"#{self.class.name}"}}
- end
+ class Stuck2 < Struct.new(:a, :b)
+ end
- def self.json_create(h)
- self.new()
- end
- end # Deep
- end # Three
- end # Two
+ end # One
- class Stuck2 < Struct.new(:a, :b)
+ class Stuck < Struct.new(:a, :b)
end
-end # One
+ class Strung < String
-class Stuck < Struct.new(:a, :b)
-end
+ def initialize(str, safe)
+ super(str)
+ @safe = safe
+ end
-class Strung < String
+ def safe?()
+ @safe
+ end
- def initialize(str, safe)
- super(str)
- @safe = safe
- end
+ def self.create(str, safe)
+ new(str, safe)
+ end
- def safe?()
- @safe
- end
+ def eql?(o)
+ super && self.class == o.class && @safe == o.safe?
+ end
+ alias == eql?
- def self.create(str, safe)
- new(str, safe)
+ def inspect()
+ return super + '(' + @safe + ')'
+ end
end
- def eql?(o)
- super && self.class == o.class && @safe == o.safe?
- end
- alias == eql?
+ class AutoStrung < String
+ attr_accessor :safe
- def inspect()
- return super + '(' + @safe + ')'
- end
-end
+ def initialize(str, safe)
+ super(str)
+ @safe = safe
+ end
-class AutoStrung < String
- attr_accessor :safe
-
- def initialize(str, safe)
- super(str)
- @safe = safe
+ def eql?(o)
+ self.class == o.class && super(o) && @safe == o.safe
+ end
+ alias == eql?
end
- def eql?(o)
- self.class == o.class && super(o) && @safe == o.safe
- end
- alias == eql?
-end
+ class AutoArray < Array
+ attr_accessor :safe
-class AutoArray < Array
- attr_accessor :safe
+ def initialize(a, safe)
+ super(a)
+ @safe = safe
+ end
- def initialize(a, safe)
- super(a)
- @safe = safe
+ def eql?(o)
+ self.class == o.class && super(o) && @safe == o.safe
+ end
+ alias == eql?
end
- def eql?(o)
- self.class == o.class && super(o) && @safe == o.safe
- end
- alias == eql?
-end
+ class AutoHash < Hash
+ attr_accessor :safe
-class AutoHash < Hash
- attr_accessor :safe
+ def initialize(h, safe)
+ super(h)
+ @safe = safe
+ end
- def initialize(h, safe)
- super(h)
- @safe = safe
+ def eql?(o)
+ self.class == o.class && super(o) && @safe == o.safe
+ end
+ alias == eql?
end
- def eql?(o)
- self.class == o.class && super(o) && @safe == o.safe
+ def setup
+ @default_options = Oj.default_options
end
- alias == eql?
-end
-def hash_eql(h1, h2)
- return false if h1.size != h2.size
- h1.keys.each do |k|
- return false unless h1[k] == h2[k]
+ def teardown
+ Oj.default_options = @default_options
end
- true
-end
-class ObjectJuice < ::Test::Unit::TestCase
-
def test_nil
dump_and_load(nil, false)
end
def test_true
@@ -295,11 +280,11 @@
obj = Oj.object_load(input)
assert_equal({ 'x' => true, 'y' => 58, 'z' => [1, 2, 3]}, obj)
end
def test_io_file
- filename = 'open_file_test.json'
+ filename = File.join(File.dirname(__FILE__), 'open_file_test.json')
File.open(filename, 'w') { |f| f.write(%{{
"x":true,
"y":58,
"z": [1,2,3]
}
@@ -412,9 +397,10 @@
obj = { 59 => "young", false => true }
dump_and_load(obj, false)
end
def test_mixed_hash_object
+ Oj.default_options = { :mode => :object }
json = Oj.dump({ 1 => true, 'nil' => nil, :sim => 4 })
h = Oj.object_load(json)
assert_equal({ 1 => true, 'nil' => nil, :sim => 4 }, h)
end