aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/rails_generator/rails_scaffold_generator_test.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-06-23 19:10:42 +0200
committerJosé Valim <jose.valim@gmail.com>2009-06-23 19:10:42 +0200
commit4494a752c3c568c65fa899c54486153a1a5fa187 (patch)
tree60149451a075242bd36c5298ea9838d1d2d50f2f /railties/test/rails_generator/rails_scaffold_generator_test.rb
parent75fbd7393606b9b026418229eb3eb38542753d43 (diff)
downloadrails-4494a752c3c568c65fa899c54486153a1a5fa187.tar.gz
rails-4494a752c3c568c65fa899c54486153a1a5fa187.tar.bz2
rails-4494a752c3c568c65fa899c54486153a1a5fa187.zip
Change current sstructure.
Diffstat (limited to 'railties/test/rails_generator/rails_scaffold_generator_test.rb')
-rw-r--r--railties/test/rails_generator/rails_scaffold_generator_test.rb150
1 files changed, 150 insertions, 0 deletions
diff --git a/railties/test/rails_generator/rails_scaffold_generator_test.rb b/railties/test/rails_generator/rails_scaffold_generator_test.rb
new file mode 100644
index 0000000000..70829a77fd
--- /dev/null
+++ b/railties/test/rails_generator/rails_scaffold_generator_test.rb
@@ -0,0 +1,150 @@
+require 'generators/generator_test_helper'
+require 'abstract_unit'
+
+class RailsScaffoldGeneratorTest < GeneratorTestCase
+ def test_scaffolded_names
+ g = Rails::Generator::Base.instance('scaffold', %w(ProductLine))
+ assert_equal "ProductLines", g.controller_name
+ assert_equal "ProductLines", g.controller_class_name
+ assert_equal "ProductLine", g.controller_singular_name
+ assert_equal "product_lines", g.controller_plural_name
+ assert_equal "product_lines", g.controller_file_name
+ assert_equal "product_lines", g.controller_table_name
+ end
+
+ def test_scaffold_generates_resources
+
+ run_generator('scaffold', %w(Product name:string))
+
+ assert_generated_controller_for :products do |f|
+
+ assert_has_method f, :index do |name, m|
+ assert_match /@products = Product\.all/, m, "#{name} should query products table"
+ end
+
+ assert_has_method f, :show, :edit, :update, :destroy do |name, m|
+ assert_match /@product = Product\.find\(params\[:id\]\)/, m, "#{name.to_s} should query products table"
+ end
+
+ assert_has_method f, :new do |name, m|
+ assert_match /@product = Product\.new/, m, "#{name.to_s} should instantiate a product"
+ end
+
+ assert_has_method f, :create do |name, m|
+ assert_match /@product = Product\.new\(params\[:product\]\)/, m, "#{name.to_s} should instantiate a product"
+ assert_match /format.xml \{ render :xml => @product.errors, :status => :unprocessable_entity \}/, m, "#{name.to_s} should set status to :unprocessable_entity code for xml"
+ end
+
+ end
+
+ assert_generated_model_for :product
+ assert_generated_functional_test_for :products
+ assert_generated_unit_test_for :product
+ assert_generated_fixtures_for :products
+ assert_generated_helper_for :products
+ assert_generated_helper_test_for :products
+ assert_generated_stylesheet :scaffold
+ assert_generated_views_for :products, "index.html.erb", "new.html.erb", "edit.html.erb", "show.html.erb"
+
+ assert_generated_migration :create_products
+ assert_added_route_for :products
+ end
+
+ def test_scaffold_skip_migration_skips_migration
+ run_generator('scaffold', %w(Product name:string --skip-migration))
+
+ assert_generated_model_for :product
+ assert_generated_functional_test_for :products
+ assert_generated_unit_test_for :product
+ assert_generated_fixtures_for :products
+ assert_generated_helper_for :products
+ assert_generated_helper_test_for :products
+ assert_generated_stylesheet :scaffold
+ assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb"
+ assert_skipped_migration :create_products
+ assert_added_route_for :products
+ end
+
+ def test_scaffold_generates_resources_with_attributes
+ run_generator('scaffold', %w(Product name:string supplier_id:integer created_at:timestamp))
+
+ assert_generated_controller_for :products do |f|
+
+ assert_has_method f, :index do |name, m|
+ assert_match /@products = Product\.all/, m, "#{name} should query products table"
+ end
+
+ assert_has_method f, :show, :edit, :update, :destroy do |name, m|
+ assert_match /@product = Product\.find\(params\[:id\]\)/, m, "#{name.to_s} should query products table"
+ end
+
+ assert_has_method f, :new do |name, m|
+ assert_match /@product = Product\.new/, m, "#{name.to_s} should instantiate a product"
+ end
+
+ assert_has_method f, :create do |name, m|
+ assert_match /@product = Product\.new\(params\[:product\]\)/, m, "#{name.to_s} should instantiate a product"
+ assert_match /format.xml \{ render :xml => @product.errors, :status => :unprocessable_entity \}/, m, "#{name.to_s} should set status to :unprocessable_entity code for xml"
+ end
+
+ end
+
+ assert_generated_model_for :product
+ assert_generated_functional_test_for :products
+ assert_generated_unit_test_for :product
+ assert_generated_fixtures_for :products
+ assert_generated_helper_for :products
+ assert_generated_helper_test_for :products
+ assert_generated_stylesheet :scaffold
+ assert_generated_views_for :products, "index.html.erb", "new.html.erb", "edit.html.erb", "show.html.erb"
+
+ assert_generated_migration :create_products do |t|
+ assert_generated_column t, :name, :string
+ assert_generated_column t, :supplier_id, :integer
+ assert_generated_column t, :created_at, :timestamp
+ end
+
+ assert_added_route_for :products
+ end
+
+ def test_scaffolded_plural_names
+ Rails::Generator::Base.logger.expects(:warning)
+ g = Rails::Generator::Base.instance('scaffold', %w(ProductLines))
+ assert_equal "ProductLines", g.controller_name
+ assert_equal "ProductLines", g.controller_class_name
+ assert_equal "ProductLine", g.controller_singular_name
+ assert_equal "product_lines", g.controller_plural_name
+ assert_equal "product_lines", g.controller_file_name
+ assert_equal "product_lines", g.controller_table_name
+ end
+
+ def test_scaffold_plural_model_name_without_force_plural_generates_singular_model
+ run_generator('scaffold', %w(Products name:string))
+
+ assert_generated_model_for :product
+ assert_generated_functional_test_for :products
+ assert_generated_unit_test_for :product
+ assert_generated_fixtures_for :products
+ assert_generated_helper_for :products
+ assert_generated_helper_test_for :products
+ assert_generated_stylesheet :scaffold
+ assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb"
+ assert_skipped_migration :create_products
+ assert_added_route_for :products
+ end
+
+ def test_scaffold_plural_model_name_with_force_plural_forces_plural_model
+ run_generator('scaffold', %w(Products name:string --force-plural))
+
+ assert_generated_model_for :products
+ assert_generated_functional_test_for :products
+ assert_generated_unit_test_for :products
+ assert_generated_fixtures_for :products
+ assert_generated_helper_for :products
+ assert_generated_helper_test_for :products
+ assert_generated_stylesheet :scaffold
+ assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb"
+ assert_skipped_migration :create_products
+ assert_added_route_for :products
+ end
+end