1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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
|