Upgraded Rails and RSpec
[monkeycharger.git] / vendor / rails / railties / test / generators / rails_resource_generator_test.rb
blob7aa06b645d3b27ea6a16b8766807d705552d295b
1 require 'test/unit'
3 # Optionally load RubyGems
4 begin
5   require 'rubygems'
6 rescue LoadError
7 end
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
18   module ConnectionAdapters
19     class Column
20       attr_reader :name, :default, :type, :limit, :null, :sql_type, :precision, :scale
21       def initialize(name, default, sql_type=nil)
22         @namename
23         @default=default
24         @type=@sql_type=sql_type
25       end
27       def human_name
28         @name.humanize
29       end
30     end
31   end
32 end
34 # Mock up necessities from ActionView
35 module ActionView
36   module Helpers
37     module ActionRecordHelper; end
38     class InstanceTag; end
39   end
40 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)
46 else
47   RAILS_ROOT=tmp_dir
48 end
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
58   def setup
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"
71     end
72   end
74   def teardown
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"
80   end
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
92   end
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
104   end