3 # Optionally load RubyGems
9 # Mock out what we need from AR::Base
13 attr_accessor :pluralize_table_names
15 self.pluralize_table_names = true
18 module ConnectionAdapters
20 attr_reader :name, :default, :type, :limit, :null, :sql_type, :precision, :scale
21 def initialize(name, default, sql_type=nil)
24 @type=@sql_type=sql_type
34 # Mock up necessities from ActionView
37 module ActionRecordHelper; end
38 class InstanceTag; end
42 # Set RAILS_ROOT appropriately fixture generation
43 tmp_dir="#{File.dirname(__FILE__)}/../fixtures/tmp"
44 if defined?(RAILS_ROOT)
45 RAILS_ROOT.replace(tmp_dir)
49 Dir.mkdir(RAILS_ROOT) unless File.exists?(RAILS_ROOT)
51 $LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../lib"
52 require 'rails_generator'
53 require "#{File.dirname(__FILE__)}/generator_test_helper"
55 class RailsResourceGeneratorTest < Test::Unit::TestCase
56 include GeneratorTestHelper
59 ActiveRecord::Base.pluralize_table_names = true
60 Dir.mkdir("#{RAILS_ROOT}/app") unless File.exists?("#{RAILS_ROOT}/app")
61 Dir.mkdir("#{RAILS_ROOT}/app/views") unless File.exists?("#{RAILS_ROOT}/app/views")
62 Dir.mkdir("#{RAILS_ROOT}/app/views/layouts") unless File.exists?("#{RAILS_ROOT}/app/views/layouts")
63 Dir.mkdir("#{RAILS_ROOT}/config") unless File.exists?("#{RAILS_ROOT}/config")
64 Dir.mkdir("#{RAILS_ROOT}/db") unless File.exists?("#{RAILS_ROOT}/db")
65 Dir.mkdir("#{RAILS_ROOT}/test") unless File.exists?("#{RAILS_ROOT}/test")
66 Dir.mkdir("#{RAILS_ROOT}/test/fixtures") unless File.exists?("#{RAILS_ROOT}/test/fixtures")
67 Dir.mkdir("#{RAILS_ROOT}/public") unless File.exists?("#{RAILS_ROOT}/public")
68 Dir.mkdir("#{RAILS_ROOT}/public/stylesheets") unless File.exists?("#{RAILS_ROOT}/public/stylesheets")
69 File.open("#{RAILS_ROOT}/config/routes.rb", 'w') do |f|
70 f<<"ActionController::Routing::Routes.draw do |map|\n\nend\n"
75 FileUtils.rm_rf "#{RAILS_ROOT}/app"
76 FileUtils.rm_rf "#{RAILS_ROOT}/test"
77 FileUtils.rm_rf "#{RAILS_ROOT}/config"
78 FileUtils.rm_rf "#{RAILS_ROOT}/db"
79 FileUtils.rm_rf "#{RAILS_ROOT}/public"
82 def test_resource_generates_resources
83 run_generator('scaffold', %w(Product))
85 assert_generated_controller_for :products
86 assert_generated_model_for :product
87 assert_generated_fixtures_for :products
88 assert_generated_functional_test_for :products
89 assert_generated_helper_for :products
90 assert_generated_migration :create_products
91 assert_added_route_for :products
94 def test_resource_skip_migration_skips_migration
95 run_generator('resource', %w(Product --skip-migration))
97 assert_generated_controller_for :products
98 assert_generated_model_for :product
99 assert_generated_fixtures_for :products
100 assert_generated_functional_test_for :products
101 assert_generated_helper_for :products
102 assert_skipped_migration :create_products
103 assert_added_route_for :products