rubigen 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,185 +0,0 @@
1
- require 'test/unit'
2
-
3
- # Optionally load RubyGems.
4
- begin
5
- require 'rubygems'
6
- rescue LoadError
7
- end
8
-
9
- # Mock out what we need from AR::Base.
10
- module ActiveRecord
11
- class Base
12
- class << self
13
- attr_accessor :pluralize_table_names
14
- end
15
- self.pluralize_table_names = true
16
- end
17
-
18
- module ConnectionAdapters
19
- class Column
20
- attr_reader :name, :default, :type, :limit, :null, :sql_type, :precision, :scale
21
-
22
- def initialize(name, default, sql_type = nil)
23
- @name=name
24
- @default=default
25
- @type=@sql_type=sql_type
26
- end
27
-
28
- def human_name
29
- @name.humanize
30
- end
31
- end
32
- end
33
- end
34
-
35
- # And what we need from ActionView
36
- module ActionView
37
- module Helpers
38
- module ActiveRecordHelper; end
39
- class InstanceTag; end
40
- end
41
- end
42
-
43
-
44
- # Must set before requiring generator libs.
45
- tmp_dir="#{File.dirname(__FILE__)}/../fixtures/tmp"
46
- if defined?(RAILS_ROOT)
47
- RAILS_ROOT.replace(tmp_dir)
48
- else
49
- RAILS_ROOT=tmp_dir
50
- end
51
- Dir.mkdir(RAILS_ROOT) unless File.exists?(RAILS_ROOT)
52
-
53
- $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../lib"
54
- require 'rails_generator'
55
- require "#{File.dirname(__FILE__)}/generator_test_helper"
56
-
57
- class RailsScaffoldGeneratorTest < Test::Unit::TestCase
58
-
59
- include GeneratorTestHelper
60
-
61
- def setup
62
- ActiveRecord::Base.pluralize_table_names = true
63
- Dir.mkdir("#{RAILS_ROOT}/app") unless File.exists?("#{RAILS_ROOT}/app")
64
- Dir.mkdir("#{RAILS_ROOT}/app/views") unless File.exists?("#{RAILS_ROOT}/app/views")
65
- Dir.mkdir("#{RAILS_ROOT}/app/views/layouts") unless File.exists?("#{RAILS_ROOT}/app/views/layouts")
66
- Dir.mkdir("#{RAILS_ROOT}/config") unless File.exists?("#{RAILS_ROOT}/config")
67
- Dir.mkdir("#{RAILS_ROOT}/db") unless File.exists?("#{RAILS_ROOT}/db")
68
- Dir.mkdir("#{RAILS_ROOT}/test") unless File.exists?("#{RAILS_ROOT}/test")
69
- Dir.mkdir("#{RAILS_ROOT}/test/fixtures") unless File.exists?("#{RAILS_ROOT}/test/fixtures")
70
- Dir.mkdir("#{RAILS_ROOT}/public") unless File.exists?("#{RAILS_ROOT}/public")
71
- Dir.mkdir("#{RAILS_ROOT}/public/stylesheets") unless File.exists?("#{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"
74
- end
75
- end
76
-
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
84
-
85
- def test_scaffolded_names
86
- g = RubiGen::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
94
-
95
- def test_scaffold_generates_resources
96
-
97
- run_generator('scaffold', %w(Product))
98
-
99
- assert_generated_controller_for :products do |f|
100
-
101
- assert_has_method f, :index do |name, m|
102
- assert_match /@products = Product\.find\(:all\)/, m, "#{name} should query products table"
103
- end
104
-
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
108
-
109
- assert_has_method f, :new do |name, m|
110
- assert_match /@product = Product\.new/, m, "#{name.to_s} should instantiate a product"
111
- end
112
-
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"
116
- end
117
-
118
- end
119
-
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
130
-
131
- def test_scaffold_skip_migration_skips_migration
132
- run_generator('scaffold', %w(Product --skip-migration))
133
-
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
144
-
145
- def test_scaffold_generates_resources_with_attributes
146
- run_generator('scaffold', %w(Product name:string supplier_id:integer created_at:timestamp))
147
-
148
- assert_generated_controller_for :products do |f|
149
-
150
- assert_has_method f, :index do |name, m|
151
- assert_match /@products = Product\.find\(:all\)/, m, "#{name} should query products table"
152
- end
153
-
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
157
-
158
- assert_has_method f, :new do |name, m|
159
- assert_match /@product = Product\.new/, m, "#{name.to_s} should instantiate a product"
160
- end
161
-
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"
165
- end
166
-
167
- end
168
-
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
183
- end
184
-
185
- end