| 61 | | def setup |
|---|
| 62 | | ActiveRecord::Base.pluralize_table_names = true |
|---|
| 63 | | Dir.mkdir("#{RAILS_ROOT}/app") unless File.exist?("#{RAILS_ROOT}/app") |
|---|
| 64 | | Dir.mkdir("#{RAILS_ROOT}/app/views") unless File.exist?("#{RAILS_ROOT}/app/views") |
|---|
| 65 | | Dir.mkdir("#{RAILS_ROOT}/app/views/layouts") unless File.exist?("#{RAILS_ROOT}/app/views/layouts") |
|---|
| 66 | | Dir.mkdir("#{RAILS_ROOT}/config") unless File.exist?("#{RAILS_ROOT}/config") |
|---|
| 67 | | Dir.mkdir("#{RAILS_ROOT}/db") unless File.exist?("#{RAILS_ROOT}/db") |
|---|
| 68 | | Dir.mkdir("#{RAILS_ROOT}/test") unless File.exist?("#{RAILS_ROOT}/test") |
|---|
| 69 | | Dir.mkdir("#{RAILS_ROOT}/test/fixtures") unless File.exist?("#{RAILS_ROOT}/test/fixtures") |
|---|
| 70 | | Dir.mkdir("#{RAILS_ROOT}/public") unless File.exist?("#{RAILS_ROOT}/public") |
|---|
| 71 | | Dir.mkdir("#{RAILS_ROOT}/public/stylesheets") unless File.exist?("#{RAILS_ROOT}/public/stylesheets") |
|---|
| 72 | | File.open("#{RAILS_ROOT}/config/routes.rb", 'w') do |f| |
|---|
| 73 | | f<<"ActionController::Routing::Routes.draw do |map|\n\nend\n" |
|---|
| | 62 | def setup |
|---|
| | 63 | ActiveRecord::Base.pluralize_table_names = true |
|---|
| | 64 | Dir.mkdir("#{RAILS_ROOT}/app") unless File.exist?("#{RAILS_ROOT}/app") |
|---|
| | 65 | Dir.mkdir("#{RAILS_ROOT}/app/views") unless File.exist?("#{RAILS_ROOT}/app/views") |
|---|
| | 66 | Dir.mkdir("#{RAILS_ROOT}/app/views/layouts") unless File.exist?("#{RAILS_ROOT}/app/views/layouts") |
|---|
| | 67 | Dir.mkdir("#{RAILS_ROOT}/config") unless File.exist?("#{RAILS_ROOT}/config") |
|---|
| | 68 | Dir.mkdir("#{RAILS_ROOT}/db") unless File.exist?("#{RAILS_ROOT}/db") |
|---|
| | 69 | Dir.mkdir("#{RAILS_ROOT}/test") unless File.exist?("#{RAILS_ROOT}/test") |
|---|
| | 70 | Dir.mkdir("#{RAILS_ROOT}/test/fixtures") unless File.exist?("#{RAILS_ROOT}/test/fixtures") |
|---|
| | 71 | Dir.mkdir("#{RAILS_ROOT}/public") unless File.exist?("#{RAILS_ROOT}/public") |
|---|
| | 72 | Dir.mkdir("#{RAILS_ROOT}/public/stylesheets") unless File.exist?("#{RAILS_ROOT}/public/stylesheets") |
|---|
| | 73 | File.open("#{RAILS_ROOT}/config/routes.rb", 'w') do |f| |
|---|
| | 74 | f<<"ActionController::Routing::Routes.draw do |map|\n\nend\n" |
|---|
| | 75 | end |
|---|
| 77 | | def teardown |
|---|
| 78 | | FileUtils.rm_rf "#{RAILS_ROOT}/app" |
|---|
| 79 | | FileUtils.rm_rf "#{RAILS_ROOT}/test" |
|---|
| 80 | | FileUtils.rm_rf "#{RAILS_ROOT}/config" |
|---|
| 81 | | FileUtils.rm_rf "#{RAILS_ROOT}/db" |
|---|
| 82 | | FileUtils.rm_rf "#{RAILS_ROOT}/public" |
|---|
| 83 | | end |
|---|
| | 78 | def teardown |
|---|
| | 79 | FileUtils.rm_rf "#{RAILS_ROOT}/app" |
|---|
| | 80 | FileUtils.rm_rf "#{RAILS_ROOT}/test" |
|---|
| | 81 | FileUtils.rm_rf "#{RAILS_ROOT}/config" |
|---|
| | 82 | FileUtils.rm_rf "#{RAILS_ROOT}/db" |
|---|
| | 83 | FileUtils.rm_rf "#{RAILS_ROOT}/public" |
|---|
| | 84 | end |
|---|
| 85 | | def test_scaffolded_names |
|---|
| 86 | | g = Rails::Generator::Base.instance('scaffold', %w(ProductLine)) |
|---|
| 87 | | assert_equal "ProductLines", g.controller_name |
|---|
| 88 | | assert_equal "ProductLines", g.controller_class_name |
|---|
| 89 | | assert_equal "ProductLine", g.controller_singular_name |
|---|
| 90 | | assert_equal "product_lines", g.controller_plural_name |
|---|
| 91 | | assert_equal "product_lines", g.controller_file_name |
|---|
| 92 | | assert_equal "product_lines", g.controller_table_name |
|---|
| 93 | | end |
|---|
| | 86 | def test_scaffolded_names |
|---|
| | 87 | g = Rails::Generator::Base.instance('scaffold', %w(ProductLine)) |
|---|
| | 88 | assert_equal "ProductLines", g.controller_name |
|---|
| | 89 | assert_equal "ProductLines", g.controller_class_name |
|---|
| | 90 | assert_equal "ProductLine", g.controller_singular_name |
|---|
| | 91 | assert_equal "product_lines", g.controller_plural_name |
|---|
| | 92 | assert_equal "product_lines", g.controller_file_name |
|---|
| | 93 | assert_equal "product_lines", g.controller_table_name |
|---|
| | 94 | end |
|---|
| 105 | | assert_has_method f, :show, :edit, :update, :destroy do |name, m| |
|---|
| 106 | | assert_match /@product = Product\.find\(params\[:id\]\)/, m, "#{name.to_s} should query products table" |
|---|
| 107 | | end |
|---|
| | 106 | assert_has_method f, :show, :edit, :update, :destroy do |name, m| |
|---|
| | 107 | assert_match /@product = Product\.find\(params\[:id\]\)/, m, "#{name.to_s} should query products table" |
|---|
| | 108 | end |
|---|
| 113 | | assert_has_method f, :create do |name, m| |
|---|
| 114 | | assert_match /@product = Product\.new\(params\[:product\]\)/, m, "#{name.to_s} should instantiate a product" |
|---|
| 115 | | assert_match /format.xml \{ render :xml => @product.errors, :status => :unprocessable_entity \}/, m, "#{name.to_s} should set status to :unprocessable_entity code for xml" |
|---|
| | 114 | assert_has_method f, :create do |name, m| |
|---|
| | 115 | assert_match /@product = Product\.new\(params\[:product\]\)/, m, "#{name.to_s} should instantiate a product" |
|---|
| | 116 | assert_match /format.xml \{ render :xml => @product.errors, :status => :unprocessable_entity \}/, m, "#{name.to_s} should set status to :unprocessable_entity code for xml" |
|---|
| | 117 | end |
|---|
| | 118 | |
|---|
| | 121 | assert_generated_model_for :product |
|---|
| | 122 | assert_generated_functional_test_for :products |
|---|
| | 123 | assert_generated_unit_test_for :product |
|---|
| | 124 | assert_generated_fixtures_for :products |
|---|
| | 125 | assert_generated_helper_for :products |
|---|
| | 126 | assert_generated_stylesheet :scaffold |
|---|
| | 127 | assert_generated_views_for :products, "index.html.erb", "new.html.erb", "edit.html.erb", "show.html.erb" |
|---|
| | 128 | |
|---|
| | 129 | assert_generated_migration :create_products |
|---|
| | 130 | assert_added_route_for :products |
|---|
| 120 | | assert_generated_model_for :product |
|---|
| 121 | | assert_generated_functional_test_for :products |
|---|
| 122 | | assert_generated_unit_test_for :product |
|---|
| 123 | | assert_generated_fixtures_for :products |
|---|
| 124 | | assert_generated_helper_for :products |
|---|
| 125 | | assert_generated_stylesheet :scaffold |
|---|
| 126 | | assert_generated_views_for :products, "index.html.erb", "new.html.erb", "edit.html.erb", "show.html.erb" |
|---|
| 127 | | assert_generated_migration :create_products |
|---|
| 128 | | assert_added_route_for :products |
|---|
| 129 | | end |
|---|
| | 133 | def test_scaffold_skip_migration_skips_migration |
|---|
| | 134 | run_generator('scaffold', %w(Product name:string --skip-migration)) |
|---|
| 131 | | def test_scaffold_skip_migration_skips_migration |
|---|
| 132 | | run_generator('scaffold', %w(Product --skip-migration)) |
|---|
| | 136 | assert_generated_model_for :product |
|---|
| | 137 | assert_generated_functional_test_for :products |
|---|
| | 138 | assert_generated_unit_test_for :product |
|---|
| | 139 | assert_generated_fixtures_for :products |
|---|
| | 140 | assert_generated_helper_for :products |
|---|
| | 141 | assert_generated_stylesheet :scaffold |
|---|
| | 142 | assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb" |
|---|
| | 143 | assert_skipped_migration :create_products |
|---|
| | 144 | assert_added_route_for :products |
|---|
| | 145 | end |
|---|
| 134 | | assert_generated_model_for :product |
|---|
| 135 | | assert_generated_functional_test_for :products |
|---|
| 136 | | assert_generated_unit_test_for :product |
|---|
| 137 | | assert_generated_fixtures_for :products |
|---|
| 138 | | assert_generated_helper_for :products |
|---|
| 139 | | assert_generated_stylesheet :scaffold |
|---|
| 140 | | assert_generated_views_for :products, "index.html.erb","new.html.erb","edit.html.erb","show.html.erb" |
|---|
| 141 | | assert_skipped_migration :create_products |
|---|
| 142 | | assert_added_route_for :products |
|---|
| 143 | | end |
|---|
| | 147 | def test_scaffold_generates_resources_with_attributes |
|---|
| | 148 | run_generator('scaffold', %w(Product name:string supplier_id:integer created_at:timestamp)) |
|---|
| 150 | | assert_has_method f, :index do |name, m| |
|---|
| 151 | | assert_match /@products = Product\.find\(:all\)/, m, "#{name} should query products table" |
|---|
| 152 | | end |
|---|
| | 156 | assert_has_method f, :show, :edit, :update, :destroy do |name, m| |
|---|
| | 157 | assert_match /@product = Product\.find\(params\[:id\]\)/, m, "#{name.to_s} should query products table" |
|---|
| | 158 | end |
|---|
| 154 | | assert_has_method f, :show, :edit, :update, :destroy do |name, m| |
|---|
| 155 | | assert_match /@product = Product\.find\(params\[:id\]\)/, m, "#{name.to_s} should query products table" |
|---|
| 156 | | end |
|---|
| | 160 | assert_has_method f, :new do |name, m| |
|---|
| | 161 | assert_match /@product = Product\.new/, m, "#{name.to_s} should instantiate a product" |
|---|
| | 162 | end |
|---|
| 158 | | assert_has_method f, :new do |name, m| |
|---|
| 159 | | assert_match /@product = Product\.new/, m, "#{name.to_s} should instantiate a product" |
|---|
| | 164 | assert_has_method f, :create do |name, m| |
|---|
| | 165 | assert_match /@product = Product\.new\(params\[:product\]\)/, m, "#{name.to_s} should instantiate a product" |
|---|
| | 166 | assert_match /format.xml \{ render :xml => @product.errors, :status => :unprocessable_entity \}/, m, "#{name.to_s} should set status to :unprocessable_entity code for xml" |
|---|
| | 167 | end |
|---|
| | 168 | |
|---|
| 162 | | assert_has_method f, :create do |name, m| |
|---|
| 163 | | assert_match /@product = Product\.new\(params\[:product\]\)/, m, "#{name.to_s} should instantiate a product" |
|---|
| 164 | | assert_match /format.xml \{ render :xml => @product.errors, :status => :unprocessable_entity \}/, m, "#{name.to_s} should set status to :unprocessable_entity code for xml" |
|---|
| | 171 | assert_generated_model_for :product |
|---|
| | 172 | assert_generated_functional_test_for :products |
|---|
| | 173 | assert_generated_unit_test_for :product |
|---|
| | 174 | assert_generated_fixtures_for :products |
|---|
| | 175 | assert_generated_helper_for :products |
|---|
| | 176 | assert_generated_stylesheet :scaffold |
|---|
| | 177 | assert_generated_views_for :products, "index.html.erb", "new.html.erb", "edit.html.erb", "show.html.erb" |
|---|
| | 178 | |
|---|
| | 179 | assert_generated_migration :create_products do |t| |
|---|
| | 180 | assert_generated_column t, :name, :string |
|---|
| | 181 | assert_generated_column t, :supplier_id, :integer |
|---|
| | 182 | assert_generated_column t, :created_at, :timestamp |
|---|
| 169 | | assert_generated_model_for :product |
|---|
| 170 | | assert_generated_functional_test_for :products |
|---|
| 171 | | assert_generated_unit_test_for :product |
|---|
| 172 | | assert_generated_fixtures_for :products |
|---|
| 173 | | assert_generated_helper_for :products |
|---|
| 174 | | assert_generated_stylesheet :scaffold |
|---|
| 175 | | assert_generated_views_for :products, "index.html.erb", "new.html.erb", "edit.html.erb", "show.html.erb" |
|---|
| 176 | | assert_generated_migration :create_products do |t| |
|---|
| 177 | | assert_generated_column t, :name, :string |
|---|
| 178 | | assert_generated_column t, :supplier_id, :integer |
|---|
| 179 | | assert_generated_column t, :created_at, :timestamp |
|---|
| 180 | | end |
|---|
| 181 | | |
|---|
| 182 | | assert_added_route_for :products |
|---|