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