From 597da2962ae61513ef67d72a75910b89ad0764f8 Mon Sep 17 00:00:00 2001 From: Neeraj Singh Date: Sun, 18 Jul 2010 08:09:42 -0400 Subject: [PATCH] failing test case for #3087 --- activerecord/test/cases/json_serialization_test.rb | 12 +++++++++++- activerecord/test/models/engine.rb | 5 +++++ activerecord/test/schema/schema.rb | 1 + 3 files changed, 17 insertions(+), 1 deletions(-) diff --git a/activerecord/test/cases/json_serialization_test.rb b/activerecord/test/cases/json_serialization_test.rb index 2bc746c..c4336cb 100644 --- a/activerecord/test/cases/json_serialization_test.rb +++ b/activerecord/test/cases/json_serialization_test.rb @@ -5,6 +5,8 @@ require 'models/author' require 'models/tagging' require 'models/tag' require 'models/comment' +require 'models/car' +require 'models/engine' class JsonSerializationTest < ActiveRecord::TestCase class NamespacedContact < Contact @@ -85,7 +87,7 @@ class JsonSerializationTest < ActiveRecord::TestCase end class DatabaseConnectedJsonEncodingTest < ActiveRecord::TestCase - fixtures :authors, :posts, :comments, :tags, :taggings + fixtures :authors, :posts, :comments, :tags, :taggings, :cars def setup @david = authors(:david) @@ -208,4 +210,12 @@ class DatabaseConnectedJsonEncodingTest < ActiveRecord::TestCase json = ActiveSupport::JSON.encode authors_relation, :only => :name assert_equal '[{"author":{"name":"David"}},{"author":{"name":"Mary"}}]', json end + + def test_association_object_should_obey_as_json + car = Car.find(1) + car.engines.create(:size => 'medium') + json = car.to_json(:include => :engines) + assert_match %r{"engines":\[\{"size":"medium"\}\]}, json + end + end diff --git a/activerecord/test/models/engine.rb b/activerecord/test/models/engine.rb index 751c3f0..339d06b 100644 --- a/activerecord/test/models/engine.rb +++ b/activerecord/test/models/engine.rb @@ -1,3 +1,8 @@ class Engine < ActiveRecord::Base belongs_to :my_car, :class_name => 'Car', :foreign_key => 'car_id', :counter_cache => :engines_count + + def as_json + {:size => :medium} + end + end diff --git a/activerecord/test/schema/schema.rb b/activerecord/test/schema/schema.rb index 641726b..4304d78 100644 --- a/activerecord/test/schema/schema.rb +++ b/activerecord/test/schema/schema.rb @@ -192,6 +192,7 @@ ActiveRecord::Schema.define do create_table :engines, :force => true do |t| t.integer :car_id + t.string :size end create_table :entrants, :force => true do |t| -- 1.6.5.2