aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/generators
diff options
context:
space:
mode:
authorYves Senn <yves.senn@gmail.com>2012-12-26 15:16:09 +0100
committerYves Senn <yves.senn@gmail.com>2012-12-26 16:17:47 +0100
commitedae4777ad6308bb4169c40368a24b62bb542d32 (patch)
tree1c6e6d08a131629ce931c3b3682fd18db0642b19 /railties/test/generators
parent95fa0e69de373e741d3797617950c0e2ed76f950 (diff)
downloadrails-edae4777ad6308bb4169c40368a24b62bb542d32.tar.gz
rails-edae4777ad6308bb4169c40368a24b62bb542d32.tar.bz2
rails-edae4777ad6308bb4169c40368a24b62bb542d32.zip
quote column names in generated fixture files
Diffstat (limited to 'railties/test/generators')
-rw-r--r--railties/test/generators/model_generator_test.rb29
1 files changed, 26 insertions, 3 deletions
diff --git a/railties/test/generators/model_generator_test.rb b/railties/test/generators/model_generator_test.rb
index 70e080a8ab..9dd61e9c15 100644
--- a/railties/test/generators/model_generator_test.rb
+++ b/railties/test/generators/model_generator_test.rb
@@ -270,17 +270,34 @@ class ModelGeneratorTest < Rails::Generators::TestCase
def test_invokes_default_test_framework
run_generator
assert_file "test/models/account_test.rb", /class AccountTest < ActiveSupport::TestCase/
- assert_file "test/fixtures/accounts.yml", /name: MyString/, /age: 1/
+
+ assert_file 'test/fixtures/accounts.yml', /name: MyString/, /age: 1/
+ assert_generated_fixture('test/fixtures/accounts.yml',
+ {'one'=>{'name'=>'MyString', 'age'=>1}, 'two'=>{'name'=>'MyString', 'age'=>1}})
end
def test_fixtures_use_the_references_ids
run_generator ["LineItem", "product:references", "cart:belongs_to"]
- assert_file "test/fixtures/line_items.yml", /product_id: \n cart_id: /
+
+ assert_file 'test/fixtures/line_items.yml', /product_id: \n cart_id: /
+ assert_generated_fixture('test/fixtures/line_items.yml',
+ {"one"=>{"product_id"=>nil, "cart_id"=>nil}, "two"=>{"product_id"=>nil, "cart_id"=>nil}})
end
def test_fixtures_use_the_references_ids_and_type
run_generator ["LineItem", "product:references{polymorphic}", "cart:belongs_to"]
- assert_file "test/fixtures/line_items.yml", /product_id: \n product_type: Product\n cart_id: /
+
+ assert_file 'test/fixtures/line_items.yml', /product_id: \n product_type: Product\n cart_id: /
+ assert_generated_fixture('test/fixtures/line_items.yml',
+ {"one"=>{"product_id"=>nil, "product_type"=>"Product", "cart_id"=>nil},
+ "two"=>{"product_id"=>nil, "product_type"=>"Product", "cart_id"=>nil}})
+ end
+
+ def test_fixtures_respect_reserved_yml_keywords
+ run_generator ["LineItem", "no:integer", "Off:boolean", 'ON:boolean']
+
+ assert_generated_fixture('test/fixtures/line_items.yml',
+ {"one"=>{"no"=>1, "Off"=>false, "ON"=>false}, "two"=>{"no"=>1, "Off"=>false, "ON"=>false}})
end
def test_fixture_is_skipped
@@ -338,4 +355,10 @@ class ModelGeneratorTest < Rails::Generators::TestCase
end
end
end
+
+ private
+ def assert_generated_fixture(path, parsed_contents)
+ fixture_file = File.new File.expand_path(path, destination_root)
+ assert_equal(parsed_contents, YAML.load(fixture_file))
+ end
end