padrino-gen 0.10.2 → 0.10.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/.document +3 -3
  2. data/.yardopts +1 -0
  3. data/{LICENSE → LICENSE.txt} +0 -0
  4. data/README.rdoc +1 -1
  5. data/lib/padrino-gen/command.rb +7 -0
  6. data/lib/padrino-gen/generators/actions.rb +264 -24
  7. data/lib/padrino-gen/generators/app/app.rb.tt +11 -11
  8. data/lib/padrino-gen/generators/app.rb +10 -9
  9. data/lib/padrino-gen/generators/cli.rb +3 -0
  10. data/lib/padrino-gen/generators/components/actions.rb +86 -11
  11. data/lib/padrino-gen/generators/components/mocks/rr.rb +3 -1
  12. data/lib/padrino-gen/generators/components/orms/mongoid.rb +1 -1
  13. data/lib/padrino-gen/generators/components/orms/mongomapper.rb +1 -1
  14. data/lib/padrino-gen/generators/components/orms/mongomatic.rb +1 -1
  15. data/lib/padrino-gen/generators/components/stylesheets/less.rb +1 -1
  16. data/lib/padrino-gen/generators/components/tests/minitest.rb +78 -0
  17. data/lib/padrino-gen/generators/controller.rb +3 -0
  18. data/lib/padrino-gen/generators/mailer.rb +3 -0
  19. data/lib/padrino-gen/generators/model.rb +3 -0
  20. data/lib/padrino-gen/generators/plugin.rb +2 -0
  21. data/lib/padrino-gen/generators/project.rb +11 -3
  22. data/lib/padrino-gen/generators/runner.rb +85 -34
  23. data/lib/padrino-gen/generators/templates/Gemfile.tt +12 -21
  24. data/lib/padrino-gen/padrino-tasks/activerecord.rb +0 -194
  25. data/lib/padrino-gen.rb +21 -0
  26. data/test/helper.rb +2 -20
  27. data/test/test_app_generator.rb +17 -17
  28. data/test/test_cli.rb +6 -5
  29. data/test/test_controller_generator.rb +52 -44
  30. data/test/test_generator.rb +1 -1
  31. data/test/test_mailer_generator.rb +18 -18
  32. data/test/test_migration_generator.rb +44 -44
  33. data/test/test_model_generator.rb +140 -123
  34. data/test/test_plugin_generator.rb +21 -33
  35. data/test/test_project_generator.rb +125 -103
  36. metadata +10 -8
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
- class TestPluginGenerator < Test::Unit::TestCase
3
+ describe "PluginGenerator" do
4
4
  def setup
5
5
  @apptmp = "#{Dir.tmpdir}/padrino-tests/#{UUID.new.generate}"
6
6
  `mkdir -p #{@apptmp}`
@@ -13,9 +13,9 @@ class TestPluginGenerator < Test::Unit::TestCase
13
13
  context "the plugin destroy option" do
14
14
  should "remove the plugin instance" do
15
15
  path = File.expand_path('../fixtures/plugin_template.rb', __FILE__)
16
- silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}") }
17
- silence_logger { generate(:plugin, path, "--root=#{@apptmp}/sample_project") }
18
- silence_logger { generate(:plugin, path, "--root=#{@apptmp}/sample_project", '-d') }
16
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
17
+ capture_io { generate(:plugin, path, "--root=#{@apptmp}/sample_project") }
18
+ capture_io { generate(:plugin, path, "--root=#{@apptmp}/sample_project", '-d') }
19
19
  assert_no_file_exists("#{@apptmp}/sample_project/lib/hoptoad_init.rb")
20
20
  assert_no_match_in_file(/enable \:raise_errors/,"#{@apptmp}/sample_project/app/app.rb")
21
21
  assert_no_match_in_file(/rack\_hoptoad/, "#{@apptmp}/sample_project/Gemfile")
@@ -23,12 +23,7 @@ class TestPluginGenerator < Test::Unit::TestCase
23
23
  end
24
24
 
25
25
  context 'the project generator with template' do
26
- setup do
27
- example_template_path = File.join(File.dirname(__FILE__), 'fixtures', 'example_template.rb')
28
- silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", "-p=#{example_template_path}", '> /dev/null') }
29
- end
30
-
31
- before_should "invoke Padrino.bin_gen" do
26
+ should "invoke Padrino.bin_gen" do
32
27
  expects_generated_project :name => 'sample_project', :test => :shoulda, :orm => :activerecord, :dev => true, :template => 'mongochist', :root => @apptmp
33
28
  expects_generated :model, "post title:string body:text -r=#{@apptmp}/sample_project"
34
29
  expects_generated :controller, "posts get:index get:new post:new -r=#{@apptmp}/sample_project"
@@ -39,6 +34,8 @@ class TestPluginGenerator < Test::Unit::TestCase
39
34
  expects_initializer :test, "# Example", :root => "#{@apptmp}/sample_project"
40
35
  expects_generated :app, "testapp -r=#{@apptmp}/sample_project"
41
36
  expects_generated :controller, "users get:index -r=#{@apptmp}/sample_project --app=testapp"
37
+ example_template_path = File.join(File.dirname(__FILE__), 'fixtures', 'example_template.rb')
38
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", "-p=#{example_template_path}", '> /dev/null') }
42
39
  end
43
40
  end
44
41
 
@@ -48,7 +45,7 @@ class TestPluginGenerator < Test::Unit::TestCase
48
45
  template_file = 'http://www.example.com/test.rb'
49
46
  project_gen = Padrino::Generators::Project.new(['sample_project'], ["-p=#{template_file}", "-r=#{@apptmp}"], {})
50
47
  project_gen.expects(:apply).with(template_file).returns(true).once
51
- silence_logger { project_gen.invoke_all }
48
+ capture_io { project_gen.invoke_all }
52
49
  end
53
50
 
54
51
  should "resolve gist url properly" do
@@ -57,7 +54,7 @@ class TestPluginGenerator < Test::Unit::TestCase
57
54
  resolved_path = 'https://gist.github.com/raw/357045/4356/blog_template.rb'
58
55
  project_gen = Padrino::Generators::Project.new(['sample_project'], ["-p=#{template_file}", "-r=#{@apptmp}"], {})
59
56
  project_gen.expects(:apply).with(resolved_path).returns(true).once
60
- silence_logger { project_gen.invoke_all }
57
+ capture_io { project_gen.invoke_all }
61
58
  end
62
59
 
63
60
  should "resolve official template" do
@@ -65,14 +62,14 @@ class TestPluginGenerator < Test::Unit::TestCase
65
62
  resolved_path = "https://github.com/padrino/padrino-recipes/raw/master/templates/sampleblog_template.rb"
66
63
  project_gen = Padrino::Generators::Project.new(['sample_project'], ["-p=#{template_file}", "-r=#{@apptmp}"], {})
67
64
  project_gen.expects(:apply).with(resolved_path).returns(true).once
68
- silence_logger { project_gen.invoke_all }
65
+ capture_io { project_gen.invoke_all }
69
66
  end
70
67
 
71
68
  should "resolve local file" do
72
69
  template_file = 'path/to/local/file.rb'
73
70
  project_gen = Padrino::Generators::Project.new(['sample_project'], ["-p=#{template_file}", "-r=#{@apptmp}"], {})
74
71
  project_gen.expects(:apply).with(File.expand_path(template_file)).returns(true).once
75
- silence_logger { project_gen.invoke_all }
72
+ capture_io { project_gen.invoke_all }
76
73
  end
77
74
 
78
75
  should "resolve official plugin" do
@@ -81,49 +78,40 @@ class TestPluginGenerator < Test::Unit::TestCase
81
78
  plugin_gen = Padrino::Generators::Plugin.new([ template_file], ["-r=#{@apptmp}/sample_project"],{})
82
79
  plugin_gen.expects(:in_app_root?).returns(true).once
83
80
  plugin_gen.expects(:apply).with(resolved_path).returns(true).once
84
- silence_logger { plugin_gen.invoke_all }
81
+ capture_io { plugin_gen.invoke_all }
85
82
  end
86
83
  end
87
84
 
88
85
  context "with git commands" do
89
- setup do
90
- git_template_path = File.join(File.dirname(__FILE__), 'fixtures', 'git_template.rb')
91
- silence_logger { generate(:project, 'sample_git', "-p=#{git_template_path}", "-r=#{@apptmp}", '> /dev/null') }
92
- end
93
-
94
- before_should "generate a repository correctly" do
86
+ should "generate a repository correctly" do
95
87
  expects_generated_project :test => :rspec, :orm => :activerecord, :name => 'sample_git', :root => "#{@apptmp}"
96
88
  expects_git :init, :root => "#{@apptmp}/sample_git"
97
89
  expects_git :add, :arguments => '.', :root => "#{@apptmp}/sample_git"
98
90
  expects_git :commit, :arguments => 'hello', :root => "#{@apptmp}/sample_git"
91
+ git_template_path = File.join(File.dirname(__FILE__), 'fixtures', 'git_template.rb')
92
+ capture_io { generate(:project, 'sample_git', "-p=#{git_template_path}", "-r=#{@apptmp}", '> /dev/null') }
99
93
  end
100
94
  end
101
95
 
102
96
  context "with rake invocations" do
103
- setup do
104
- rake_template_path = File.join(File.dirname(__FILE__), 'fixtures', 'rake_template.rb')
105
- silence_logger { generate(:project, 'sample_rake', "-p=#{rake_template_path}", "-r=#{@apptmp}", '> /dev/null') }
106
- end
107
-
108
- before_should "Run rake task and list tasks" do
97
+ should "Run rake task and list tasks" do
109
98
  expects_generated_project :test => :shoulda, :orm => :activerecord, :name => 'sample_rake', :root => "#{@apptmp}"
110
99
  expects_rake "custom", :root => "#{@apptmp}/sample_rake"
100
+ rake_template_path = File.join(File.dirname(__FILE__), 'fixtures', 'rake_template.rb')
101
+ capture_io { generate(:project, 'sample_rake', "-p=#{rake_template_path}", "-r=#{@apptmp}", '> /dev/null') }
111
102
  end
112
103
  end
113
104
 
114
105
  context "with admin commands" do
115
- setup do
116
- admin_template_path = File.join(File.dirname(__FILE__), 'fixtures', 'admin_template.rb')
117
- silence_logger { generate(:project, 'sample_admin', "-p=#{admin_template_path}", "-r=#{@apptmp}", '> /dev/null') }
118
- end
119
-
120
- before_should "generate correctly an admin" do
106
+ should "generate correctly an admin" do
121
107
  expects_generated_project :test => :shoulda, :orm => :activerecord, :name => 'sample_admin', :root => "#{@apptmp}"
122
108
  expects_generated :model, "post title:string body:text -r=#{@apptmp}/sample_admin"
123
109
  expects_rake "ar:create", :root => "#{@apptmp}/sample_admin"
124
110
  expects_generated :admin, "-r=#{@apptmp}/sample_admin"
125
111
  expects_rake "ar:migrate", :root => "#{@apptmp}/sample_admin"
126
112
  expects_generated :admin_page, "post -r=#{@apptmp}/sample_admin"
113
+ admin_template_path = File.join(File.dirname(__FILE__), 'fixtures', 'admin_template.rb')
114
+ capture_io { generate(:project, 'sample_admin', "-p=#{admin_template_path}", "-r=#{@apptmp}", '> /dev/null') }
127
115
  end
128
116
  end
129
117
  end
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
- class TestProjectGenerator < Test::Unit::TestCase
3
+ describe "ProjectGenerator" do
4
4
  def setup
5
5
  @apptmp = "#{Dir.tmpdir}/padrino-tests/#{UUID.new.generate}"
6
6
  `mkdir -p #{@apptmp}`
@@ -13,7 +13,7 @@ class TestProjectGenerator < Test::Unit::TestCase
13
13
 
14
14
  context 'the project generator' do
15
15
  should "allow simple generator to run and create base_app with no options" do
16
- assert_nothing_raised { silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}") } }
16
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
17
17
  assert_file_exists("#{@apptmp}/sample_project")
18
18
  assert_match_in_file(/class SampleProject < Padrino::Application/,"#{@apptmp}/sample_project/app/app.rb")
19
19
  assert_match_in_file(/Padrino.mount\("SampleProject"\).to\('\/'\)/,"#{@apptmp}/sample_project/config/apps.rb")
@@ -27,29 +27,29 @@ class TestProjectGenerator < Test::Unit::TestCase
27
27
  end
28
28
 
29
29
  should "generate a valid name" do
30
- silence_logger { generate(:project, 'project.com', "--root=#{@apptmp}") }
30
+ capture_io { generate(:project, 'project.com', "--root=#{@apptmp}") }
31
31
  assert_file_exists("#{@apptmp}/project.com")
32
32
  assert_match_in_file(/class ProjectCom < Padrino::Application/, "#{@apptmp}/project.com/app/app.rb")
33
33
  assert_match_in_file(/Padrino.mount\("ProjectCom"\).to\('\/'\)/, "#{@apptmp}/project.com/config/apps.rb")
34
- silence_logger { generate(:app, 'ws-dci-2011', "--root=#{@apptmp}/project.com") }
34
+ capture_io { generate(:app, 'ws-dci-2011', "--root=#{@apptmp}/project.com") }
35
35
  assert_file_exists("#{@apptmp}/project.com/wsdci2011")
36
36
  assert_match_in_file(/class WsDci2011 < Padrino::Application/, "#{@apptmp}/project.com/wsdci2011/app.rb")
37
37
  assert_match_in_file(/Padrino.mount\("WsDci2011"\).to\("\/wsdci2011"\)/, "#{@apptmp}/project.com/config/apps.rb")
38
38
  end
39
39
 
40
40
  should "raise an Error when given invalid constant names" do
41
- assert_raise(::NameError) { silence_logger { generate(:project, "123asdf", "--root=#{@apptmp}") } }
42
- assert_raise(::NameError) { silence_logger { generate(:project, "./sample_project", "--root=#{@apptmp}") } }
41
+ assert_raises(::NameError) { capture_io { generate(:project, "123asdf", "--root=#{@apptmp}") } }
42
+ assert_raises(::NameError) { capture_io { generate(:project, "./sample_project", "--root=#{@apptmp}") } }
43
43
  end
44
44
 
45
45
  should "display the right path" do
46
- buffer = silence_logger { generate(:project, 'project', "--root=/tmp") }
46
+ out, err = capture_io { generate(:project, 'project', "--root=/tmp") }
47
47
  assert_file_exists("/tmp/project")
48
- assert_match(/cd \/tmp\/project/, buffer)
48
+ assert_match(/cd \/tmp\/project/, out)
49
49
  end
50
50
 
51
51
  should "allow specifying alternate application name" do
52
- assert_nothing_raised { silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--app=base_app') } }
52
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--app=base_app') }
53
53
  assert_file_exists("#{@apptmp}/sample_project")
54
54
  assert_match_in_file(/class BaseApp < Padrino::Application/,"#{@apptmp}/sample_project/app/app.rb")
55
55
  assert_match_in_file(/Padrino.mount\("BaseApp"\).to\('\/'\)/,"#{@apptmp}/sample_project/config/apps.rb")
@@ -58,7 +58,7 @@ class TestProjectGenerator < Test::Unit::TestCase
58
58
  end
59
59
 
60
60
  should "generate tiny skeleton" do
61
- assert_nothing_raised { silence_logger { generate(:project,'sample_project', '--tiny',"--root=#{@apptmp}") } }
61
+ capture_io { generate(:project,'sample_project', '--tiny',"--root=#{@apptmp}") }
62
62
  assert_file_exists("#{@apptmp}/sample_project")
63
63
  assert_file_exists("#{@apptmp}/sample_project/app")
64
64
  assert_file_exists("#{@apptmp}/sample_project/app/controllers.rb")
@@ -74,28 +74,28 @@ class TestProjectGenerator < Test::Unit::TestCase
74
74
  end
75
75
 
76
76
  should "not create models folder if no orm is chosen" do
77
- silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '--orm=none') }
77
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '--orm=none') }
78
78
  assert_no_dir_exists("#{@apptmp}/sample_project/models")
79
79
  end
80
80
 
81
81
  should "not create tests folder if no test framework is chosen" do
82
- silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '--test=none') }
82
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '--test=none') }
83
83
  assert_no_dir_exists("#{@apptmp}/sample_project/test")
84
84
  end
85
85
 
86
86
  should "place app specific names into correct files" do
87
- silence_logger { generate(:project, 'warepedia', "--root=#{@apptmp}", '--script=none') }
87
+ capture_io { generate(:project, 'warepedia', "--root=#{@apptmp}", '--script=none') }
88
88
  assert_match_in_file(/class Warepedia < Padrino::Application/m, "#{@apptmp}/warepedia/app/app.rb")
89
89
  assert_match_in_file(/Padrino.mount\("Warepedia"\).to\('\/'\)/m, "#{@apptmp}/warepedia/config/apps.rb")
90
90
  end
91
91
 
92
92
  should "store and apply session_secret" do
93
- silence_logger { generate(:project,'sample_project', '--tiny',"--root=#{@apptmp}") }
93
+ capture_io { generate(:project,'sample_project', '--tiny',"--root=#{@apptmp}") }
94
94
  assert_match_in_file(/set :session_secret, '[0-9A-z]*'/, "#{@apptmp}/sample_project/config/apps.rb")
95
95
  end
96
96
 
97
97
  should "create components file containing options chosen with defaults" do
98
- silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}") }
98
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
99
99
  components_chosen = YAML.load_file("#{@apptmp}/sample_project/.components")
100
100
  assert_equal 'none', components_chosen[:orm]
101
101
  assert_equal 'none', components_chosen[:test]
@@ -106,7 +106,7 @@ class TestProjectGenerator < Test::Unit::TestCase
106
106
 
107
107
  should "create components file containing options chosen" do
108
108
  component_options = ['--orm=datamapper', '--test=riot', '--mock=mocha', '--script=prototype', '--renderer=erb', '--stylesheet=less']
109
- silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", *component_options) }
109
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", *component_options) }
110
110
  components_chosen = YAML.load_file("#{@apptmp}/sample_project/.components")
111
111
  assert_equal 'datamapper', components_chosen[:orm]
112
112
  assert_equal 'riot', components_chosen[:test]
@@ -118,50 +118,57 @@ class TestProjectGenerator < Test::Unit::TestCase
118
118
 
119
119
  should "output to log components being applied" do
120
120
  component_options = ['--orm=datamapper', '--test=riot', '--mock=mocha', '--script=prototype', '--renderer=erb','--stylesheet=less']
121
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", *component_options) }
122
- assert_match(/Applying.*?datamapper.*?orm/, buffer)
123
- assert_match(/Applying.*?riot.*?test/, buffer)
124
- assert_match(/Applying.*?mocha.*?mock/, buffer)
125
- assert_match(/Applying.*?prototype.*?script/, buffer)
126
- assert_match(/Applying.*?erb.*?renderer/, buffer)
127
- assert_match(/Applying.*?less.*?stylesheet/, buffer)
121
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", *component_options) }
122
+ assert_match(/applying.*?datamapper.*?orm/, out)
123
+ assert_match(/applying.*?riot.*?test/, out)
124
+ assert_match(/applying.*?mocha.*?mock/, out)
125
+ assert_match(/applying.*?prototype.*?script/, out)
126
+ assert_match(/applying.*?erb.*?renderer/, out)
127
+ assert_match(/applying.*?less.*?stylesheet/, out)
128
128
  end
129
129
 
130
130
  should "output gem files for base app" do
131
- silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none') }
131
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none') }
132
132
  assert_match_in_file(/gem 'padrino'/, "#{@apptmp}/sample_project/Gemfile")
133
- assert_match_in_file(/gem 'rack-flash'/, "#{@apptmp}/sample_project/Gemfile")
133
+ assert_match_in_file(/gem 'sinatra-flash'/, "#{@apptmp}/sample_project/Gemfile")
134
134
  end
135
135
  end
136
136
 
137
137
  context "a generator for mock component" do
138
138
  should "properly generate for rr and riot" do
139
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--mock=rr', '--test=riot', '--script=none') }
140
- assert_match(/Applying.*?rr.*?mock/, buffer)
139
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--mock=rr', '--test=riot', '--script=none') }
140
+ assert_match(/applying.*?rr.*?mock/, out)
141
141
  assert_match_in_file(/gem 'rr'/, "#{@apptmp}/sample_project/Gemfile")
142
142
  assert_match_in_file(/require 'riot\/rr'/, "#{@apptmp}/sample_project/test/test_config.rb")
143
143
  end
144
144
 
145
- should "properly generater for rr and bacon" do
146
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--mock=rr', '--test=bacon', '--script=none') }
147
- assert_match(/Applying.*?rr.*?mock/, buffer)
145
+ should "properly generate for rr and minitest" do
146
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--mock=rr', '--test=minitest', '--script=none') }
147
+ assert_match(/applying.*?rr.*?mock/, out)
148
148
  assert_match_in_file(/gem 'rr'/, "#{@apptmp}/sample_project/Gemfile")
149
- assert_match_in_file(/RR::Adapters::RRMethods/m, "#{@apptmp}/sample_project/test/test_config.rb")
149
+ assert_match_in_file(/include RR::Adapters::MiniTest/, "#{@apptmp}/sample_project/test/test_config.rb")
150
150
  end
151
151
 
152
- should "properly generate for mocha and rspec" do
153
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}",'--test=rspec', '--mock=mocha', '--script=none') }
154
- assert_match(/Applying.*?mocha.*?mock/, buffer)
155
- assert_match_in_file(/gem 'mocha'/, "#{@apptmp}/sample_project/Gemfile")
156
- assert_match_in_file(/conf.mock_with :mocha/m, "#{@apptmp}/sample_project/spec/spec_helper.rb")
152
+ should "properly generater for rr and bacon" do
153
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--mock=rr', '--test=bacon', '--script=none') }
154
+ assert_match(/applying.*?rr.*?mock/, out)
155
+ assert_match_in_file(/gem 'rr'/, "#{@apptmp}/sample_project/Gemfile")
156
+ assert_match_in_file(/include RR::Adapters::RRMethods/m, "#{@apptmp}/sample_project/test/test_config.rb")
157
157
  end
158
158
 
159
159
  should "properly generate for rr and rspec" do
160
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=rspec', '--mock=rr', '--script=none') }
161
- assert_match(/Applying.*?rr.*?mock/, buffer)
160
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=rspec', '--mock=rr', '--script=none') }
161
+ assert_match(/applying.*?rr.*?mock/, out)
162
162
  assert_match_in_file(/gem 'rr'/, "#{@apptmp}/sample_project/Gemfile")
163
163
  assert_match_in_file(/conf.mock_with :rr/m, "#{@apptmp}/sample_project/spec/spec_helper.rb")
164
164
  end
165
+
166
+ should "properly generate for mocha and rspec" do
167
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}",'--test=rspec', '--mock=mocha', '--script=none') }
168
+ assert_match(/applying.*?mocha.*?mock/, out)
169
+ assert_match_in_file(/gem 'mocha'/, "#{@apptmp}/sample_project/Gemfile")
170
+ assert_match_in_file(/conf.mock_with :mocha/m, "#{@apptmp}/sample_project/spec/spec_helper.rb")
171
+ end
165
172
  end
166
173
 
167
174
  context "the generator for orm components" do
@@ -169,8 +176,8 @@ class TestProjectGenerator < Test::Unit::TestCase
169
176
  context "for sequel" do
170
177
  should "properly generate default" do
171
178
  @app.instance_eval("undef setup_orm if respond_to?('setup_orm')")
172
- buffer = silence_logger { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=sequel', '--script=none') }
173
- assert_match(/Applying.*?sequel.*?orm/, buffer)
179
+ out, err = capture_io { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=sequel', '--script=none') }
180
+ assert_match(/applying.*?sequel.*?orm/, out)
174
181
  assert_match_in_file(/gem 'sequel'/, "#{@apptmp}/project.com/Gemfile")
175
182
  assert_match_in_file(/gem 'sqlite3'/, "#{@apptmp}/project.com/Gemfile")
176
183
  assert_match_in_file(/Sequel.connect/, "#{@apptmp}/project.com/config/database.rb")
@@ -179,21 +186,21 @@ class TestProjectGenerator < Test::Unit::TestCase
179
186
  end
180
187
 
181
188
  should "properly generate mysql" do
182
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=sequel', '--adapter=mysql') }
189
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=sequel', '--adapter=mysql') }
183
190
  assert_match_in_file(/gem 'mysql'/, "#{@apptmp}/sample_project/Gemfile")
184
191
  assert_match_in_file(%r{"mysql://}, "#{@apptmp}/sample_project/config/database.rb")
185
192
  assert_match_in_file(/sample_project_development/, "#{@apptmp}/sample_project/config/database.rb")
186
193
  end
187
194
 
188
195
  should "properly generate sqlite3" do
189
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=sequel', '--adapter=sqlite') }
196
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=sequel', '--adapter=sqlite') }
190
197
  assert_match_in_file(/gem 'sqlite3'/, "#{@apptmp}/sample_project/Gemfile")
191
198
  assert_match_in_file(%r{sqlite://}, "#{@apptmp}/sample_project/config/database.rb")
192
199
  assert_match_in_file(/sample_project_development/, "#{@apptmp}/sample_project/config/database.rb")
193
200
  end
194
201
 
195
202
  should "properly generate postgres" do
196
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=sequel', '--adapter=postgres') }
203
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=sequel', '--adapter=postgres') }
197
204
  assert_match_in_file(/gem 'pg'/, "#{@apptmp}/sample_project/Gemfile")
198
205
  assert_match_in_file(%r{"postgres://}, "#{@apptmp}/sample_project/config/database.rb")
199
206
  assert_match_in_file(/sample_project_development/, "#{@apptmp}/sample_project/config/database.rb")
@@ -202,8 +209,8 @@ class TestProjectGenerator < Test::Unit::TestCase
202
209
 
203
210
  context "for activerecord" do
204
211
  should "properly generate default" do
205
- buffer = silence_logger { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=activerecord', '--script=none') }
206
- assert_match(/Applying.*?activerecord.*?orm/, buffer)
212
+ out, err = capture_io { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=activerecord', '--script=none') }
213
+ assert_match(/applying.*?activerecord.*?orm/, out)
207
214
  assert_match_in_file(/gem 'activerecord', :require => "active_record"/, "#{@apptmp}/project.com/Gemfile")
208
215
  assert_match_in_file(/gem 'sqlite3'/, "#{@apptmp}/project.com/Gemfile")
209
216
  assert_match_in_file(/ActiveRecord::Base.establish_connection/, "#{@apptmp}/project.com/config/database.rb")
@@ -211,28 +218,28 @@ class TestProjectGenerator < Test::Unit::TestCase
211
218
  end
212
219
 
213
220
  should "properly generate mysql" do
214
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=activerecord','--adapter=mysql') }
221
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=activerecord','--adapter=mysql') }
215
222
  assert_match_in_file(/gem 'mysql'/, "#{@apptmp}/sample_project/Gemfile")
216
223
  assert_match_in_file(/sample_project_development/, "#{@apptmp}/sample_project/config/database.rb")
217
224
  assert_match_in_file(%r{:adapter => 'mysql'}, "#{@apptmp}/sample_project/config/database.rb")
218
225
  end
219
226
 
220
227
  should "properly generate mysql2" do
221
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=activerecord','--adapter=mysql2') }
228
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=activerecord','--adapter=mysql2') }
222
229
  assert_match_in_file(/gem 'mysql2'/, "#{@apptmp}/sample_project/Gemfile")
223
230
  assert_match_in_file(/sample_project_development/, "#{@apptmp}/sample_project/config/database.rb")
224
231
  assert_match_in_file(%r{:adapter => 'mysql2'}, "#{@apptmp}/sample_project/config/database.rb")
225
232
  end
226
233
 
227
234
  should "properly generate sqlite3" do
228
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=activerecord', '--adapter=sqlite3') }
235
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=activerecord', '--adapter=sqlite3') }
229
236
  assert_match_in_file(/gem 'sqlite3'/, "#{@apptmp}/sample_project/Gemfile")
230
237
  assert_match_in_file(/sample_project_development.db/, "#{@apptmp}/sample_project/config/database.rb")
231
238
  assert_match_in_file(%r{:adapter => 'sqlite3'}, "#{@apptmp}/sample_project/config/database.rb")
232
239
  end
233
240
 
234
241
  should "properly generate postgres" do
235
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=activerecord', '--adapter=postgres') }
242
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=activerecord', '--adapter=postgres') }
236
243
  assert_match_in_file(/gem 'pg', :require => "postgres"/, "#{@apptmp}/sample_project/Gemfile")
237
244
  assert_match_in_file(/sample_project_development/, "#{@apptmp}/sample_project/config/database.rb")
238
245
  assert_match_in_file(%r{:adapter => 'postgresql'}, "#{@apptmp}/sample_project/config/database.rb")
@@ -241,8 +248,8 @@ class TestProjectGenerator < Test::Unit::TestCase
241
248
 
242
249
  context "for datamapper" do
243
250
  should "properly generate default" do
244
- buffer = silence_logger { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=datamapper', '--script=none') }
245
- assert_match(/Applying.*?datamapper.*?orm/, buffer)
251
+ out, err = capture_io { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=datamapper', '--script=none') }
252
+ assert_match(/applying.*?datamapper.*?orm/, out)
246
253
  assert_match_in_file(/gem 'dm-core'/, "#{@apptmp}/project.com/Gemfile")
247
254
  assert_match_in_file(/gem 'dm-sqlite-adapter'/, "#{@apptmp}/project.com/Gemfile")
248
255
  assert_match_in_file(/DataMapper.setup/, "#{@apptmp}/project.com/config/database.rb")
@@ -250,20 +257,20 @@ class TestProjectGenerator < Test::Unit::TestCase
250
257
  end
251
258
 
252
259
  should "properly generate for mysql" do
253
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=datamapper', '--adapter=mysql') }
260
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=datamapper', '--adapter=mysql') }
254
261
  assert_match_in_file(/gem 'dm-mysql-adapter'/, "#{@apptmp}/sample_project/Gemfile")
255
262
  assert_match_in_file(%r{"mysql://}, "#{@apptmp}/sample_project/config/database.rb")
256
263
  assert_match_in_file(/sample_project_development/, "#{@apptmp}/sample_project/config/database.rb")
257
264
  end
258
265
 
259
266
  should "properly generate for sqlite" do
260
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=datamapper', '--adapter=sqlite') }
267
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=datamapper', '--adapter=sqlite') }
261
268
  assert_match_in_file(/gem 'dm-sqlite-adapter'/, "#{@apptmp}/sample_project/Gemfile")
262
269
  assert_match_in_file(/sample_project_development/, "#{@apptmp}/sample_project/config/database.rb")
263
270
  end
264
271
 
265
272
  should "properly generate for postgres" do
266
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=datamapper', '--adapter=postgres') }
273
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=datamapper', '--adapter=postgres') }
267
274
  assert_match_in_file(/gem 'dm-postgres-adapter'/, "#{@apptmp}/sample_project/Gemfile")
268
275
  assert_match_in_file(%r{"postgres://}, "#{@apptmp}/sample_project/config/database.rb")
269
276
  assert_match_in_file(/sample_project_development/, "#{@apptmp}/sample_project/config/database.rb")
@@ -271,8 +278,8 @@ class TestProjectGenerator < Test::Unit::TestCase
271
278
  end
272
279
 
273
280
  should "properly generate for mongomapper" do
274
- buffer = silence_logger { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=mongomapper', '--script=none') }
275
- assert_match(/Applying.*?mongomapper.*?orm/, buffer)
281
+ out, err = capture_io { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=mongomapper', '--script=none') }
282
+ assert_match(/applying.*?mongomapper.*?orm/, out)
276
283
  assert_match_in_file(/gem 'mongo_mapper'/, "#{@apptmp}/project.com/Gemfile")
277
284
  assert_match_in_file(/gem 'bson_ext'/, "#{@apptmp}/project.com/Gemfile")
278
285
  assert_match_in_file(/MongoMapper.database/, "#{@apptmp}/project.com/config/database.rb")
@@ -280,8 +287,8 @@ class TestProjectGenerator < Test::Unit::TestCase
280
287
  end
281
288
 
282
289
  should "properly generate for mongoid" do
283
- buffer = silence_logger { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=mongoid', '--script=none') }
284
- assert_match(/Applying.*?mongoid.*?orm/, buffer)
290
+ out, err = capture_io { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=mongoid', '--script=none') }
291
+ assert_match(/applying.*?mongoid.*?orm/, out)
285
292
  assert_match_in_file(/gem 'mongoid'/, "#{@apptmp}/project.com/Gemfile")
286
293
  assert_match_in_file(/gem 'bson_ext'/, "#{@apptmp}/project.com/Gemfile")
287
294
  assert_match_in_file(/Mongoid.database/, "#{@apptmp}/project.com/config/database.rb")
@@ -290,16 +297,16 @@ class TestProjectGenerator < Test::Unit::TestCase
290
297
 
291
298
 
292
299
  should "properly generate for couchrest" do
293
- buffer = silence_logger { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=couchrest', '--script=none') }
294
- assert_match(/Applying.*?couchrest.*?orm/, buffer)
300
+ out, err = capture_io { generate(:project, 'project.com', "--root=#{@apptmp}", '--orm=couchrest', '--script=none') }
301
+ assert_match(/applying.*?couchrest.*?orm/, out)
295
302
  assert_match_in_file(/gem 'couchrest_model'/, "#{@apptmp}/project.com/Gemfile")
296
303
  assert_match_in_file(/CouchRest.database!/, "#{@apptmp}/project.com/config/database.rb")
297
304
  assert_match_in_file(/project_com/, "#{@apptmp}/project.com/config/database.rb")
298
305
  end
299
306
 
300
307
  should "properly generate for ohm" do
301
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=ohm', '--script=none') }
302
- assert_match(/Applying.*?ohm.*?orm/, buffer)
308
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=ohm', '--script=none') }
309
+ assert_match(/applying.*?ohm.*?orm/, out)
303
310
  assert_match_in_file(/gem 'json'/, "#{@apptmp}/sample_project/Gemfile")
304
311
  assert_match_in_file(/gem 'ohm'/, "#{@apptmp}/sample_project/Gemfile")
305
312
  assert_match_in_file(/gem 'ohm-contrib', :require => "ohm\/contrib"/, "#{@apptmp}/sample_project/Gemfile")
@@ -307,16 +314,16 @@ class TestProjectGenerator < Test::Unit::TestCase
307
314
  end
308
315
 
309
316
  should "properly generate for mongomatic" do
310
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=mongomatic', '--script=none') }
311
- assert_match(/Applying.*?mongomatic.*?orm/, buffer)
317
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=mongomatic', '--script=none') }
318
+ assert_match(/applying.*?mongomatic.*?orm/, out)
312
319
  assert_match_in_file(/gem 'bson_ext'/, "#{@apptmp}/sample_project/Gemfile")
313
320
  assert_match_in_file(/gem 'mongomatic'/, "#{@apptmp}/sample_project/Gemfile")
314
321
  assert_match_in_file(/Mongomatic.db = Mongo::Connection.new.db/, "#{@apptmp}/sample_project/config/database.rb")
315
322
  end
316
323
 
317
324
  should "properly generate for ripple" do
318
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=ripple', '--script=none') }
319
- assert_match(/Applying.*?ripple.*?orm/, buffer)
325
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--orm=ripple', '--script=none') }
326
+ assert_match(/applying.*?ripple.*?orm/, out)
320
327
  assert_match_in_file(/gem 'ripple'/, "#{@apptmp}/sample_project/Gemfile")
321
328
  assert_match_in_file(/Ripple.load_configuration/, "#{@apptmp}/sample_project/config/database.rb")
322
329
  assert_match_in_file(/http_port: 8098/, "#{@apptmp}/sample_project/config/riak.yml")
@@ -326,50 +333,50 @@ class TestProjectGenerator < Test::Unit::TestCase
326
333
 
327
334
  context "the generator for renderer component" do
328
335
  should "properly generate for erb" do
329
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=erb', '--script=none') }
330
- assert_match(/Applying.*?erb.*?renderer/, buffer)
336
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=erb', '--script=none') }
337
+ assert_match(/applying.*?erb.*?renderer/, out)
331
338
  assert_match_in_file(/gem 'erubis'/, "#{@apptmp}/sample_project/Gemfile")
332
339
  end
333
340
 
334
341
  should "properly generate for haml" do
335
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=haml','--script=none') }
336
- assert_match(/Applying.*?haml.*?renderer/, buffer)
342
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=haml','--script=none') }
343
+ assert_match(/applying.*?haml.*?renderer/, out)
337
344
  assert_match_in_file(/gem 'haml'/, "#{@apptmp}/sample_project/Gemfile")
338
345
  end
339
346
 
340
347
  should "properly generate for liquid" do
341
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=liquid','--script=none') }
342
- assert_match(/Applying.*?liquid.*?renderer/,buffer)
348
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=liquid','--script=none') }
349
+ assert_match(/applying.*?liquid.*?renderer/, out)
343
350
  assert_match_in_file(/gem 'liquid'/, "#{@apptmp}/sample_project/Gemfile")
344
351
  end
345
352
 
346
353
  should "properly generate for slim" do
347
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=slim','--script=none') }
348
- assert_match(/Applying.*?slim.*?renderer/,buffer)
354
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=slim','--script=none') }
355
+ assert_match(/applying.*?slim.*?renderer/, out)
349
356
  assert_match_in_file(/gem 'slim'/, "#{@apptmp}/sample_project/Gemfile")
350
357
  end
351
358
  end
352
359
 
353
360
  context "the generator for script component" do
354
361
  should "properly generate for jquery" do
355
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=jquery') }
356
- assert_match(/Applying.*?jquery.*?script/, buffer)
362
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=jquery') }
363
+ assert_match(/applying.*?jquery.*?script/, out)
357
364
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/jquery.js")
358
365
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/jquery-ujs.js")
359
366
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/application.js")
360
367
  end
361
368
 
362
369
  should "properly generate for mootools" do
363
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=mootools') }
364
- assert_match(/Applying.*?mootools.*?script/, buffer)
370
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=mootools') }
371
+ assert_match(/applying.*?mootools.*?script/, out)
365
372
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/mootools.js")
366
373
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/mootools-ujs.js")
367
374
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/application.js")
368
375
  end
369
376
 
370
377
  should "properly generate for prototype" do
371
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=prototype') }
372
- assert_match(/Applying.*?prototype.*?script/, buffer)
378
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=prototype') }
379
+ assert_match(/applying.*?prototype.*?script/, out)
373
380
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/protopak.js")
374
381
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/lowpro.js")
375
382
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/prototype-ujs.js")
@@ -377,24 +384,24 @@ class TestProjectGenerator < Test::Unit::TestCase
377
384
  end
378
385
 
379
386
  should "properly generate for rightjs" do
380
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=rightjs') }
381
- assert_match(/Applying.*?rightjs.*?script/, buffer)
387
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=rightjs') }
388
+ assert_match(/applying.*?rightjs.*?script/, out)
382
389
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/right.js")
383
390
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/right-ujs.js")
384
391
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/application.js")
385
392
  end
386
393
 
387
394
  should "properly generate for ext-core" do
388
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=extcore') }
389
- assert_match(/Applying.*?extcore.*?script/, buffer)
395
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=extcore') }
396
+ assert_match(/applying.*?extcore.*?script/, out)
390
397
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/ext.js")
391
398
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/ext-ujs.js")
392
399
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/application.js")
393
400
  end
394
401
 
395
402
  should "properly generate for dojo" do
396
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=dojo') }
397
- assert_match(/Applying.*?dojo.*?script/, buffer)
403
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=dojo') }
404
+ assert_match(/applying.*?dojo.*?script/, out)
398
405
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/dojo.js")
399
406
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/dojo-ujs.js")
400
407
  assert_file_exists("#{@apptmp}/sample_project/public/javascripts/application.js")
@@ -403,8 +410,8 @@ class TestProjectGenerator < Test::Unit::TestCase
403
410
 
404
411
  context "the generator for test component" do
405
412
  should "properly generate for bacon" do
406
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=bacon', '--script=none') }
407
- assert_match(/Applying.*?bacon.*?test/, buffer)
413
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=bacon', '--script=none') }
414
+ assert_match(/applying.*?bacon.*?test/, out)
408
415
  assert_match_in_file(/gem 'rack-test'/, "#{@apptmp}/sample_project/Gemfile")
409
416
  assert_match_in_file(/:require => "rack\/test"/, "#{@apptmp}/sample_project/Gemfile")
410
417
  assert_match_in_file(/:group => "test"/, "#{@apptmp}/sample_project/Gemfile")
@@ -417,8 +424,8 @@ class TestProjectGenerator < Test::Unit::TestCase
417
424
  end
418
425
 
419
426
  should "properly generate for riot" do
420
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=riot', '--script=none') }
421
- assert_match(/Applying.*?riot.*?test/, buffer)
427
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=riot', '--script=none') }
428
+ assert_match(/applying.*?riot.*?test/, out)
422
429
  assert_match_in_file(/gem 'rack-test'/, "#{@apptmp}/sample_project/Gemfile")
423
430
  assert_match_in_file(/:require => "rack\/test"/, "#{@apptmp}/sample_project/Gemfile")
424
431
  assert_match_in_file(/:group => "test"/, "#{@apptmp}/sample_project/Gemfile")
@@ -434,8 +441,8 @@ class TestProjectGenerator < Test::Unit::TestCase
434
441
  end
435
442
 
436
443
  should "properly generate for rspec" do
437
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=rspec', '--script=none') }
438
- assert_match(/Applying.*?rspec.*?test/, buffer)
444
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=rspec', '--script=none') }
445
+ assert_match(/applying.*?rspec.*?test/, out)
439
446
  assert_match_in_file(/gem 'rack-test'/, "#{@apptmp}/sample_project/Gemfile")
440
447
  assert_match_in_file(/:require => "rack\/test"/, "#{@apptmp}/sample_project/Gemfile")
441
448
  assert_match_in_file(/:group => "test"/, "#{@apptmp}/sample_project/Gemfile")
@@ -448,8 +455,8 @@ class TestProjectGenerator < Test::Unit::TestCase
448
455
  end
449
456
 
450
457
  should "properly generate for shoulda" do
451
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=shoulda', '--script=none') }
452
- assert_match(/Applying.*?shoulda.*?test/, buffer)
458
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=shoulda', '--script=none') }
459
+ assert_match(/applying.*?shoulda.*?test/, out)
453
460
  assert_match_in_file(/gem 'rack-test'/, "#{@apptmp}/sample_project/Gemfile")
454
461
  assert_match_in_file(/:require => "rack\/test"/, "#{@apptmp}/sample_project/Gemfile")
455
462
  assert_match_in_file(/:group => "test"/, "#{@apptmp}/sample_project/Gemfile")
@@ -461,9 +468,25 @@ class TestProjectGenerator < Test::Unit::TestCase
461
468
  assert_match_in_file(/task 'test' => test_tasks/,"#{@apptmp}/sample_project/test/test.rake")
462
469
  end
463
470
 
471
+ should "properly generate for minitest" do
472
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=minitest', '--script=none') }
473
+ assert_match(/applying.*?minitest.*?test/, out)
474
+ assert_match_in_file(/gem 'rack-test'/, "#{@apptmp}/sample_project/Gemfile")
475
+ assert_match_in_file(/:require => "rack\/test"/, "#{@apptmp}/sample_project/Gemfile")
476
+ assert_match_in_file(/:group => "test"/, "#{@apptmp}/sample_project/Gemfile")
477
+ assert_match_in_file(/gem 'minitest'/, "#{@apptmp}/sample_project/Gemfile")
478
+ assert_match_in_file(/include Rack::Test::Methods/, "#{@apptmp}/sample_project/test/test_config.rb")
479
+ assert_match_in_file(/PADRINO_ENV = 'test' unless defined\?\(PADRINO_ENV\)/, "#{@apptmp}/sample_project/test/test_config.rb")
480
+ assert_match_in_file(/MiniTest::Unit::TestCase/, "#{@apptmp}/sample_project/test/test_config.rb")
481
+ assert_match_in_file(/SampleProject\.tap/, "#{@apptmp}/sample_project/test/test_config.rb")
482
+ assert_file_exists("#{@apptmp}/sample_project/test/test.rake")
483
+ assert_match_in_file(/Rake::TestTask\.new\("test:\#/,"#{@apptmp}/sample_project/test/test.rake")
484
+ assert_match_in_file(/task 'test' => test_tasks/,"#{@apptmp}/sample_project/test/test.rake")
485
+ end # minitest
486
+
464
487
  should "properly generate for testspec" do
465
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=testspec', '--script=none') }
466
- assert_match(/Applying.*?testspec.*?test/, buffer)
488
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=testspec', '--script=none') }
489
+ assert_match(/applying.*?testspec.*?test/, out)
467
490
  assert_match_in_file(/gem 'rack-test'/, "#{@apptmp}/sample_project/Gemfile")
468
491
  assert_match_in_file(/:require => "rack\/test"/, "#{@apptmp}/sample_project/Gemfile")
469
492
  assert_match_in_file(/:group => "test"/, "#{@apptmp}/sample_project/Gemfile")
@@ -477,8 +500,8 @@ class TestProjectGenerator < Test::Unit::TestCase
477
500
  end
478
501
 
479
502
  should "properly generate for cucumber" do
480
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=cucumber', '--script=none') }
481
- assert_match(/Applying.*?cucumber.*?test/, buffer)
503
+ out, err = capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=cucumber', '--script=none') }
504
+ assert_match(/applying.*?cucumber.*?test/, out)
482
505
  assert_match_in_file(/gem 'rack-test'/, "#{@apptmp}/sample_project/Gemfile")
483
506
  assert_match_in_file(/:require => "rack\/test"/, "#{@apptmp}/sample_project/Gemfile")
484
507
  assert_match_in_file(/:group => "test"/, "#{@apptmp}/sample_project/Gemfile")
@@ -501,7 +524,7 @@ class TestProjectGenerator < Test::Unit::TestCase
501
524
 
502
525
  context "the generator for stylesheet component" do
503
526
  should "properly generate for sass" do
504
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=haml','--script=none','--stylesheet=sass') }
527
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=haml','--script=none','--stylesheet=sass') }
505
528
  assert_match_in_file(/gem 'sass'/, "#{@apptmp}/sample_project/Gemfile")
506
529
  assert_match_in_file(/module SassInitializer.*Sass::Plugin::Rack/m, "#{@apptmp}/sample_project/lib/sass_init.rb")
507
530
  assert_match_in_file(/register SassInitializer/m, "#{@apptmp}/sample_project/app/app.rb")
@@ -509,8 +532,7 @@ class TestProjectGenerator < Test::Unit::TestCase
509
532
  end
510
533
 
511
534
  should "properly generate for less" do
512
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=haml','--script=none','--stylesheet=less') }
513
- assert_match_in_file(/gem 'less'/, "#{@apptmp}/sample_project/Gemfile")
535
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=haml','--script=none','--stylesheet=less') }
514
536
  assert_match_in_file(/gem 'rack-less'/, "#{@apptmp}/sample_project/Gemfile")
515
537
  assert_match_in_file(/module LessInitializer.*Rack::Less/m, "#{@apptmp}/sample_project/lib/less_init.rb")
516
538
  assert_match_in_file(/register LessInitializer/m, "#{@apptmp}/sample_project/app/app.rb")
@@ -518,7 +540,7 @@ class TestProjectGenerator < Test::Unit::TestCase
518
540
  end
519
541
 
520
542
  should "properly generate for compass" do
521
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=haml','--script=none','--stylesheet=compass') }
543
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=haml','--script=none','--stylesheet=compass') }
522
544
  assert_match_in_file(/gem 'compass'/, "#{@apptmp}/sample_project/Gemfile")
523
545
  assert_match_in_file(/Compass.configure_sass_plugin\!/, "#{@apptmp}/sample_project/lib/compass_plugin.rb")
524
546
  assert_match_in_file(/module CompassInitializer.*Sass::Plugin::Rack/m, "#{@apptmp}/sample_project/lib/compass_plugin.rb")
@@ -529,7 +551,7 @@ class TestProjectGenerator < Test::Unit::TestCase
529
551
  end
530
552
 
531
553
  should "properly generate for scss" do
532
- buffer = silence_logger { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=haml','--script=none','--stylesheet=scss') }
554
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--renderer=haml','--script=none','--stylesheet=scss') }
533
555
  assert_match_in_file(/gem 'haml'/, "#{@apptmp}/sample_project/Gemfile")
534
556
  assert_match_in_file(/module ScssInitializer.*Sass::Plugin::Rack/m, "#{@apptmp}/sample_project/lib/scss_init.rb")
535
557
  assert_match_in_file(/Sass::Plugin.options\[:syntax\] = :scss/m, "#{@apptmp}/sample_project/lib/scss_init.rb")