padrino-gen 0.12.0 → 0.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +1 -1
  3. data/lib/padrino-gen.rb +0 -1
  4. data/lib/padrino-gen/generators/app.rb +22 -14
  5. data/lib/padrino-gen/generators/app/app.rb.tt +0 -1
  6. data/lib/padrino-gen/generators/cli.rb +1 -2
  7. data/lib/padrino-gen/generators/components/actions.rb +1 -1
  8. data/lib/padrino-gen/generators/components/mocks/rr.rb +2 -2
  9. data/lib/padrino-gen/generators/components/orms/activerecord.rb +3 -0
  10. data/lib/padrino-gen/generators/components/orms/datamapper.rb +21 -0
  11. data/lib/padrino-gen/generators/components/orms/dynamoid.rb +67 -0
  12. data/lib/padrino-gen/generators/components/orms/minirecord.rb +3 -0
  13. data/lib/padrino-gen/generators/components/tests/cucumber.rb +1 -1
  14. data/lib/padrino-gen/generators/components/tests/minitest.rb +1 -1
  15. data/lib/padrino-gen/generators/components/tests/rspec.rb +4 -4
  16. data/lib/padrino-gen/generators/model.rb +73 -29
  17. data/lib/padrino-gen/generators/project.rb +7 -3
  18. data/lib/padrino-gen/generators/project/config/apps.rb.tt +0 -1
  19. data/lib/padrino-gen/generators/templates/Gemfile.tt +1 -1
  20. data/lib/padrino-gen/padrino-tasks/activerecord.rb +43 -39
  21. data/lib/padrino-gen/padrino-tasks/database.rb +2 -1
  22. data/lib/padrino-gen/padrino-tasks/sql-helpers.rb +24 -16
  23. data/test/helper.rb +4 -3
  24. data/test/test_app_generator.rb +13 -13
  25. data/test/test_cli.rb +4 -4
  26. data/test/test_component_generator.rb +18 -18
  27. data/test/test_controller_generator.rb +26 -26
  28. data/test/test_generator.rb +2 -3
  29. data/test/test_mailer_generator.rb +10 -10
  30. data/test/test_migration_generator.rb +42 -27
  31. data/test/test_model_generator.rb +95 -74
  32. data/test/test_plugin_generator.rb +23 -23
  33. data/test/test_project_generator.rb +100 -83
  34. data/test/test_task_generator.rb +7 -7
  35. metadata +9 -8
@@ -1,9 +1,8 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
3
  describe "Generator" do
4
-
5
- context "the generator" do
6
- should "have default generators" do
4
+ describe "the generator" do
5
+ it 'should have default generators' do
7
6
  %w{controller mailer migration model app plugin component task}.each do |gen|
8
7
  assert Padrino::Generators.mappings.has_key?(gen.to_sym)
9
8
  assert_equal "Padrino::Generators::#{gen.camelize}", Padrino::Generators.mappings[gen.to_sym].name
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
3
  describe "MailerGenerator" do
4
4
  def setup
5
- @apptmp = "#{Dir.tmpdir}/padrino-tests/#{UUID.new.generate}"
5
+ @apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
6
6
  `mkdir -p #{@apptmp}`
7
7
  end
8
8
 
@@ -10,14 +10,14 @@ describe "MailerGenerator" do
10
10
  `rm -rf #{@apptmp}`
11
11
  end
12
12
 
13
- context 'the mailer generator' do
14
- should "fail outside app root" do
13
+ describe 'the mailer generator' do
14
+ it 'should fail outside app root' do
15
15
  out, err = capture_io { generate(:mailer, 'demo', "-r=#{@apptmp}") }
16
16
  assert_match(/not at the root/, out)
17
17
  assert_no_file_exists('/tmp/app/mailers/demo_mailer.rb')
18
18
  end
19
19
 
20
- should "generate mailer in specified app" do
20
+ it 'should generate mailer in specified app' do
21
21
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
22
22
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
23
23
  capture_io { generate(:mailer, 'demo', '-a=/subby', "-r=#{@apptmp}/sample_project") }
@@ -25,7 +25,7 @@ describe "MailerGenerator" do
25
25
  assert_dir_exists("#{@apptmp}/sample_project/subby/views/mailers/demo")
26
26
  end
27
27
 
28
- should "generate mailer in specified app with actions" do
28
+ it 'should generate mailer in specified app with actions' do
29
29
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
30
30
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
31
31
  capture_io { generate(:mailer, 'demo', 'action1', 'action2', '-a=/subby', "-r=#{@apptmp}/sample_project") }
@@ -35,21 +35,21 @@ describe "MailerGenerator" do
35
35
  assert_dir_exists("#{@apptmp}/sample_project/subby/views/mailers/demo")
36
36
  end
37
37
 
38
- should "support generating a new mailer extended from base" do
38
+ it 'should support generating a new mailer extended from base' do
39
39
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
40
40
  capture_io { generate(:mailer, 'demo', "-r=#{@apptmp}/sample_project") }
41
41
  assert_match_in_file(/SampleProject::App.mailer :demo/m, "#{@apptmp}/sample_project/app/mailers/demo.rb")
42
42
  assert_dir_exists("#{@apptmp}/sample_project/app/views/mailers/demo")
43
43
  end
44
44
 
45
- should "support generating a new mailer extended from base with long name" do
45
+ it 'should support generating a new mailer extended from base with long name' do
46
46
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
47
47
  capture_io { generate(:mailer, 'UserNotice', "-r=#{@apptmp}/sample_project") }
48
48
  assert_match_in_file(/SampleProject::App.mailer :user_notice/m, "#{@apptmp}/sample_project/app/mailers/user_notice.rb")
49
49
  assert_dir_exists("#{@apptmp}/sample_project/app/views/mailers/user_notice")
50
50
  end
51
51
 
52
- should "support generating a new mailer extended from base with capitalized name" do
52
+ it 'should support generating a new mailer extended from base with capitalized name' do
53
53
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
54
54
  capture_io { generate(:mailer, 'DEMO', "-r=#{@apptmp}/sample_project") }
55
55
  assert_match_in_file(/SampleProject::App.mailer :demo/m, "#{@apptmp}/sample_project/app/mailers/demo.rb")
@@ -57,8 +57,8 @@ describe "MailerGenerator" do
57
57
  end
58
58
  end
59
59
 
60
- context "the mailer destroy option" do
61
- should "destroy mailer file" do
60
+ describe "the mailer destroy option" do
61
+ it 'should destroy mailer file' do
62
62
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
63
63
  capture_io { generate(:mailer, 'demo', "-r=#{@apptmp}/sample_project") }
64
64
  capture_io { generate(:mailer, 'demo', "-r=#{@apptmp}/sample_project",'-d') }
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
3
  describe "MigrationGenerator" do
4
4
  def setup
5
- @apptmp = "#{Dir.tmpdir}/padrino-tests/#{UUID.new.generate}"
5
+ @apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
6
6
  `mkdir -p #{@apptmp}`
7
7
  end
8
8
 
@@ -10,33 +10,33 @@ describe "MigrationGenerator" do
10
10
  `rm -rf #{@apptmp}`
11
11
  end
12
12
 
13
- context 'the migration generator' do
14
- should "fail outside app root" do
13
+ describe 'the migration generator' do
14
+ it 'should fail outside app root' do
15
15
  out, err = capture_io { generate(:migration, 'add_email_to_users', '-r=/tmp') }
16
16
  assert_match(/not at the root/, out)
17
17
  assert_no_file_exists("#{@apptmp}/db/migrate")
18
18
  end
19
19
 
20
- should "fail if we don't use an adapter" do
20
+ it 'should fail if we do not use an adapter' do
21
21
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
22
22
  assert_raises(SystemExit) { capture_io { generate(:migration, 'AddEmailToUsers', "-r=#{@apptmp}/sample_project") } }
23
23
  end
24
24
 
25
- should "generate migration inside app root" do
25
+ it 'should generate migration inside app root' do
26
26
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
27
27
  response_success = capture_io { generate(:migration, 'AddEmailToUsers', "-r=#{@apptmp}/sample_project") }
28
28
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_add_email_to_users.rb"
29
29
  assert_match_in_file(/class AddEmailToUser/m, migration_file_path)
30
30
  end
31
31
 
32
- should "generate migration inside app root with lowercase migration argument" do
32
+ it 'should generate migration inside app root with lowercase migration argument' do
33
33
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
34
34
  response_success = capture_io { generate(:migration, 'add_email_to_users', "-r=#{@apptmp}/sample_project") }
35
35
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_add_email_to_users.rb"
36
36
  assert_match_in_file(/class AddEmailToUsers/m, migration_file_path)
37
37
  end
38
38
 
39
- should "generate migration inside app root with singular table" do
39
+ it 'should generate migration inside app root with singular table' do
40
40
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
41
41
  capture_io { generate(:migration, 'add_email_to_user', "email:string", "-r=#{@apptmp}/sample_project") }
42
42
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_add_email_to_user.rb"
@@ -45,8 +45,8 @@ describe "MigrationGenerator" do
45
45
  assert_match_in_file(/t.remove :email/, migration_file_path)
46
46
  end
47
47
 
48
- context "the default migration numbering" do
49
- should "properly calculate version number" do
48
+ describe "the default migration numbering" do
49
+ it 'should properly calculate version number' do
50
50
  capture_io { generate(:project, 'sample_project', "--migration_format=number", "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=sequel') }
51
51
  capture_io { generate(:migration, 'add_email_to_person', "email:string", "-r=#{@apptmp}/sample_project") }
52
52
  capture_io { generate(:migration, 'add_name_to_person', "email:string", "-r=#{@apptmp}/sample_project") }
@@ -57,8 +57,8 @@ describe "MigrationGenerator" do
57
57
  end
58
58
  end
59
59
 
60
- context "the timestamped migration numbering" do
61
- should "properly calculate version number" do
60
+ describe "the timestamped migration numbering" do
61
+ it 'should properly calculate version number' do
62
62
  capture_io { generate(:project, 'sample_project', "--migration_format=timestamp", "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=sequel') }
63
63
 
64
64
  time = stop_time_for_test.utc.strftime("%Y%m%d%H%M%S")
@@ -67,10 +67,25 @@ describe "MigrationGenerator" do
67
67
  assert_match_in_file(/Sequel\.migration do/m, "#{@apptmp}/sample_project/db/migrate/#{time}_add_gender_to_person.rb")
68
68
  end
69
69
  end
70
+
71
+ describe 'the migration argument' do
72
+ it 'should properly extract a table name from argument' do
73
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
74
+ capture_io { generate(:migration, 'AddAuthenticityTokenFieldsToUsers', 'authentity_token:string', "-r=#{@apptmp}/sample_project") }
75
+ capture_io { generate(:migration, 'AddEmailToTokyo', 'email:string', "-r=#{@apptmp}/sample_project") }
76
+ capture_io { generate(:migration, 'AddLocationTofoo', 'location:string', "-r=#{@apptmp}/sample_project") }
77
+ migration_file_path1 = "#{@apptmp}/sample_project/db/migrate/001_add_authenticity_token_fields_to_users.rb"
78
+ migration_file_path2 = "#{@apptmp}/sample_project/db/migrate/002_add_email_to_tokyo.rb"
79
+ migration_file_path3 = "#{@apptmp}/sample_project/db/migrate/003_add_location_tofoo.rb"
80
+ assert_match_in_file(/change_table :users/, migration_file_path1)
81
+ assert_match_in_file(/change_table :tokyo/, migration_file_path2)
82
+ assert_match_in_file(/change_table :foos/, migration_file_path3)
83
+ end
84
+ end
70
85
  end
71
86
 
72
- context 'the migration generator for activerecord' do
73
- should "generate migration for generic needs" do
87
+ describe 'the migration generator for activerecord' do
88
+ it 'should generate migration for generic needs' do
74
89
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
75
90
  response_success = capture_io { generate(:migration, 'ModifyUserFields', "-r=#{@apptmp}/sample_project") }
76
91
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_modify_user_fields.rb"
@@ -79,7 +94,7 @@ describe "MigrationGenerator" do
79
94
  assert_match_in_file(/def self\.down\s+end/m, migration_file_path)
80
95
  end
81
96
 
82
- should "generate migration for adding columns" do
97
+ it 'should generate migration for adding columns' do
83
98
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
84
99
  migration_params = ['AddEmailToUsers', "email:string", "age:integer", "-r=#{@apptmp}/sample_project"]
85
100
  response_success = capture_io { generate(:migration, *migration_params) }
@@ -91,7 +106,7 @@ describe "MigrationGenerator" do
91
106
  assert_match_in_file(/t\.remove :age/m, migration_file_path)
92
107
  end
93
108
 
94
- should "generate migration for removing columns" do
109
+ it 'should generate migration for removing columns' do
95
110
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
96
111
  migration_params = ['RemoveEmailFromUsers', "email:string", "age:integer", "-r=#{@apptmp}/sample_project"]
97
112
  response_success = capture_io { generate(:migration, *migration_params) }
@@ -104,8 +119,8 @@ describe "MigrationGenerator" do
104
119
  end
105
120
  end
106
121
 
107
- context 'the migration generator for datamapper' do
108
- should "generate migration for generic needs" do
122
+ describe 'the migration generator for datamapper' do
123
+ it 'should generate migration for generic needs' do
109
124
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=datamapper') }
110
125
  response_success = capture_io { generate(:migration, 'ModifyUserFields', "-r=#{@apptmp}/sample_project") }
111
126
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_modify_user_fields.rb"
@@ -114,7 +129,7 @@ describe "MigrationGenerator" do
114
129
  assert_match_in_file(/down\sdo\s+end/m, migration_file_path)
115
130
  end
116
131
 
117
- should "generate migration for adding columns" do
132
+ it 'should generate migration for adding columns' do
118
133
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=datamapper') }
119
134
  migration_params = ['AddEmailToUsers', "email:string", "age:integer", "-r=#{@apptmp}/sample_project"]
120
135
  response_success = capture_io { generate(:migration, *migration_params) }
@@ -126,7 +141,7 @@ describe "MigrationGenerator" do
126
141
  assert_match_in_file(/drop_column :age/m, migration_file_path)
127
142
  end
128
143
 
129
- should "generate migration for removing columns" do
144
+ it 'should generate migration for removing columns' do
130
145
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=datamapper') }
131
146
  migration_params = ['RemoveEmailFromUsers', "email:string", "age:integer", "-r=#{@apptmp}/sample_project"]
132
147
  response_success = capture_io { generate(:migration, *migration_params) }
@@ -138,7 +153,7 @@ describe "MigrationGenerator" do
138
153
  assert_match_in_file(/add_column :age, Integer/m, migration_file_path)
139
154
  end
140
155
 
141
- should "properly version migration files" do
156
+ it 'should properly version migration files' do
142
157
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=datamapper') }
143
158
  response_success = capture_io { generate(:migration, 'ModifyUserFields', "-r=#{@apptmp}/sample_project") }
144
159
  response_success = capture_io { generate(:migration, 'ModifyUserFields2', "-r=#{@apptmp}/sample_project") }
@@ -149,8 +164,8 @@ describe "MigrationGenerator" do
149
164
  end
150
165
  end
151
166
 
152
- context 'the migration generator for sequel' do
153
- should "generate migration for generic needs" do
167
+ describe 'the migration generator for sequel' do
168
+ it 'should generate migration for generic needs' do
154
169
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=sequel') }
155
170
  response_success = capture_io { generate(:migration, 'ModifyUserFields', "-r=#{@apptmp}/sample_project") }
156
171
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_modify_user_fields.rb"
@@ -159,7 +174,7 @@ describe "MigrationGenerator" do
159
174
  assert_match_in_file(/down do\s+end/m, migration_file_path)
160
175
  end
161
176
 
162
- should "generate migration for adding columns" do
177
+ it 'should generate migration for adding columns' do
163
178
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=sequel') }
164
179
  migration_params = ['AddEmailToUsers', "email:string", "age:integer", "-r=#{@apptmp}/sample_project"]
165
180
  response_success = capture_io { generate(:migration, *migration_params) }
@@ -171,7 +186,7 @@ describe "MigrationGenerator" do
171
186
  assert_match_in_file(/drop_column :age/m, migration_file_path)
172
187
  end
173
188
 
174
- should "generate migration for removing columns" do
189
+ it 'should generate migration for removing columns' do
175
190
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=sequel') }
176
191
  migration_params = ['RemoveEmailFromUsers', "email:string", "age:integer", "-r=#{@apptmp}/sample_project"]
177
192
  response_success = capture_io { generate(:migration, *migration_params) }
@@ -184,9 +199,9 @@ describe "MigrationGenerator" do
184
199
  end
185
200
  end
186
201
 
187
- context "the migration destroy option" do
202
+ describe "the migration destroy option" do
188
203
 
189
- should "destroy the migration files" do
204
+ it 'should destroy the migration files' do
190
205
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=sequel') }
191
206
  migration_params = ['RemoveEmailFromUsers', "email:string", "age:integer", "-r=#{@apptmp}/sample_project"]
192
207
  capture_io { generate(:migration, *migration_params) }
@@ -194,7 +209,7 @@ describe "MigrationGenerator" do
194
209
  assert_no_file_exists("#{@apptmp}/sample_project/db/migrate/001_remove_email_from_users.rb")
195
210
  end
196
211
 
197
- should "destroy the migration file regardless of number" do
212
+ it 'should destroy the migration file regardless of number' do
198
213
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=sequel') }
199
214
  migration_params = ['RemoveEmailFromUsers', "email:string", "age:integer", "-r=#{@apptmp}/sample_project"]
200
215
  migration_param2 = ['AddEmailFromUsers', "email:string", "age:integer", "-r=#{@apptmp}/sample_project"]
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
2
 
3
3
  describe "ModelGenerator" do
4
4
  def setup
5
- @apptmp = "#{Dir.tmpdir}/padrino-tests/#{UUID.new.generate}"
5
+ @apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
6
6
  `mkdir -p #{@apptmp}`
7
7
  end
8
8
 
@@ -10,44 +10,44 @@ describe "ModelGenerator" do
10
10
  `rm -rf #{@apptmp}`
11
11
  end
12
12
 
13
- context 'the model generator' do
14
- should "fail outside app root" do
13
+ describe 'the model generator' do
14
+ it 'should fail outside app root' do
15
15
  out, err = capture_io { generate(:model, 'user', "-r=#{@apptmp}") }
16
16
  assert_match(/not at the root/, out)
17
17
  assert_no_file_exists('/tmp/models/user.rb')
18
18
  end
19
19
 
20
- should "generate filename properly" do
20
+ it 'should generate filename properly' do
21
21
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=couchrest') }
22
22
  capture_io { generate(:model, 'DemoItem', "name:string", "age", "email:string", "-r=#{@apptmp}/sample_project") }
23
23
  assert_file_exists("#{@apptmp}/sample_project/models/demo_item.rb")
24
24
  end
25
25
 
26
- should "fail if field name is not acceptable" do
26
+ it 'should fail if field name is not acceptable' do
27
27
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=couchrest') }
28
28
  out, err = capture_io { generate(:model, 'DemoItem', "re@l$ly:string","display-name:string", "age&year:datetime", "email_two:string", "-r=#{@apptmp}/sample_project") }
29
29
  assert_match(/Invalid field name:/, out)
30
30
  assert_match(/display-name:string/, out)
31
31
  assert_match(/age&year:datetime/, out)
32
32
  assert_match(/re@l\$ly:string/, out)
33
- assert_no_match(/email_two:string/, out)
34
- assert_no_match(/apply/, out)
33
+ refute_match(/email_two:string/, out)
34
+ refute_match(/apply/, out)
35
35
  assert_no_file_exists("#{@apptmp}/sample_project/models/demo_item.rb")
36
36
  end
37
37
 
38
- should "fail if we don't use an adapter" do
38
+ it 'should fail if we do not use an adapter' do
39
39
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
40
40
  assert_raises(SystemExit) { capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") } }
41
41
  end
42
42
 
43
- should "not fail if we don't have test component" do
43
+ it 'should not fail if we do not have test component' do
44
44
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=none', '-d=activerecord') }
45
45
  response_success = capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
46
46
  assert_match_in_file(/class User < ActiveRecord::Base/m, "#{@apptmp}/sample_project/models/user.rb")
47
47
  assert_no_file_exists("#{@apptmp}/sample_project/test")
48
48
  end
49
49
 
50
- should "generate model in specified app" do
50
+ it 'should generate model in specified app' do
51
51
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '-d=datamapper', '--script=none', '-t=bacon') }
52
52
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
53
53
  capture_io { generate(:model, 'Post', "body:string", '-a=/subby', "-r=#{@apptmp}/sample_project") }
@@ -57,7 +57,7 @@ describe "ModelGenerator" do
57
57
  assert_match_in_file(/DataMapper.finalize/m,"#{@apptmp}/sample_project/config/boot.rb")
58
58
  end
59
59
 
60
- should "generate only generate model once" do
60
+ it 'should generate only generate model once' do
61
61
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
62
62
  response_success = capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
63
63
  out, err = capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
@@ -66,7 +66,7 @@ describe "ModelGenerator" do
66
66
  assert_match(/identical\e\[0m test\/models\/user_test\.rb/, out)
67
67
  end
68
68
 
69
- should "generate migration file versions properly" do
69
+ it 'should generate migration file versions properly' do
70
70
  capture_io { generate(:project, 'sample_project', "--migration_format=number", "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
71
71
  capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
72
72
  capture_io { generate(:model, 'account', "-r=#{@apptmp}/sample_project") }
@@ -76,7 +76,7 @@ describe "ModelGenerator" do
76
76
  assert_file_exists("#{@apptmp}/sample_project/db/migrate/003_create_banks.rb")
77
77
  end
78
78
 
79
- should "generate migration file versions properly when timestamped" do
79
+ it 'should generate migration file versions properly when timestamped' do
80
80
  capture_io { generate(:project, 'sample_project', "--migration_format=timestamp", "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
81
81
 
82
82
  time = stop_time_for_test.utc.strftime("%Y%m%d%H%M%S")
@@ -85,7 +85,7 @@ describe "ModelGenerator" do
85
85
  assert_file_exists("#{@apptmp}/sample_project/db/migrate/#{time}_create_users.rb")
86
86
  end
87
87
 
88
- should "generate a default type value for fields" do
88
+ it 'should generate a default type value for fields' do
89
89
  current_time = stop_time_for_test.strftime("%Y%m%d%H%M%S")
90
90
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
91
91
  capture_io { generate(:model, 'person', "name", "age:integer", "email", "-r=#{@apptmp}/sample_project") }
@@ -98,7 +98,7 @@ describe "ModelGenerator" do
98
98
  assert_match_in_file(/ drop_table :people/m, migration_file_path)
99
99
  end
100
100
 
101
- should "abort if model name already exists" do
101
+ it 'should abort if model name already exists' do
102
102
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", "-d=activerecord") }
103
103
  out, err = capture_io { generate(:model, 'kernel', "--root=#{@apptmp}/sample_project") }
104
104
  assert_match(/Kernel already exists/, out)
@@ -106,7 +106,7 @@ describe "ModelGenerator" do
106
106
  assert_no_file_exists("#{@apptmp}/sample_project/models/kernel.rb")
107
107
  end
108
108
 
109
- should "abort if model name already exists in root" do
109
+ it 'should abort if model name already exists in root' do
110
110
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", "-d=activerecord") }
111
111
  capture_io { generate(:app, 'user', "--root=#{@apptmp}/sample_project") }
112
112
  out, err = capture_io { generate_with_parts(:model, 'user', "--root=#{@apptmp}/sample_project", :apps => "user") }
@@ -117,26 +117,26 @@ describe "ModelGenerator" do
117
117
  end
118
118
 
119
119
  # ACTIVERECORD
120
- context "model generator using activerecord" do
121
- should "add activerecord middleware" do
120
+ describe "model generator using activerecord" do
121
+ it 'should add activerecord middleware' do
122
122
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=activerecord') }
123
123
  assert_match_in_file(/ use ActiveRecord::ConnectionAdapters::ConnectionManagemen/m, "#{@apptmp}/sample_project/app/app.rb")
124
124
  end
125
125
 
126
- should "generate model file" do
126
+ it 'should generate model file' do
127
127
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
128
128
  capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
129
129
  assert_match_in_file(/class User < ActiveRecord::Base/m, "#{@apptmp}/sample_project/models/user.rb")
130
130
  end
131
131
 
132
- should "generate model file with camelized name" do
132
+ it 'should generate model file with camelized name' do
133
133
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
134
134
  capture_io { generate(:model, 'ChunkyBacon', "-r=#{@apptmp}/sample_project") }
135
135
  assert_match_in_file(/class ChunkyBacon < ActiveRecord::Base/m, "#{@apptmp}/sample_project/models/chunky_bacon.rb")
136
136
  assert_match_in_file(/ChunkyBacon Model/, "#{@apptmp}/sample_project/test/models/chunky_bacon_test.rb")
137
137
  end
138
138
 
139
- should "generate migration file with no fields" do
139
+ it 'should generate migration file with no fields' do
140
140
  current_time = stop_time_for_test.strftime("%Y%m%d%H%M%S")
141
141
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
142
142
  capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
@@ -146,7 +146,7 @@ describe "ModelGenerator" do
146
146
  assert_match_in_file(/ drop_table :users/m, migration_file_path)
147
147
  end
148
148
 
149
- should "generate migration file with given fields" do
149
+ it 'should generate migration file with given fields' do
150
150
  current_time = stop_time_for_test.strftime("%Y%m%d%H%M%S")
151
151
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
152
152
  capture_io { generate(:model, 'person', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
@@ -161,8 +161,8 @@ describe "ModelGenerator" do
161
161
  end
162
162
 
163
163
  # MINIRECORD
164
- context "model generator using minirecord" do
165
- should "generate hooks for auto upgrade" do
164
+ describe "model generator using minirecord" do
165
+ it 'should generate hooks for auto upgrade' do
166
166
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=minirecord') }
167
167
  assert_match_in_file(
168
168
  "Padrino.after_load do\n ActiveRecord::Base.auto_upgrade!",
@@ -170,12 +170,12 @@ describe "ModelGenerator" do
170
170
  )
171
171
  end
172
172
 
173
- should "add activerecord middleware" do
173
+ it 'should add activerecord middleware' do
174
174
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=activerecord') }
175
175
  assert_match_in_file(/ use ActiveRecord::ConnectionAdapters::ConnectionManagemen/m, "#{@apptmp}/sample_project/app/app.rb")
176
176
  end
177
177
 
178
- should "generate model file" do
178
+ it 'should generate model file' do
179
179
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=minirecord') }
180
180
  capture_io { generate(:model, 'user', 'name:string', 'surname:string', 'age:integer', "-r=#{@apptmp}/sample_project") }
181
181
  assert_match_in_file(/class User < ActiveRecord::Base/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -184,7 +184,7 @@ describe "ModelGenerator" do
184
184
  assert_match_in_file(/field :age, :as => :integer/m, "#{@apptmp}/sample_project/models/user.rb")
185
185
  end
186
186
 
187
- should "generate model file with camelized name" do
187
+ it 'should generate model file with camelized name' do
188
188
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=minirecord') }
189
189
  capture_io { generate(:model, 'ChunkyBacon', "-r=#{@apptmp}/sample_project") }
190
190
  assert_match_in_file(/class ChunkyBacon < ActiveRecord::Base/m, "#{@apptmp}/sample_project/models/chunky_bacon.rb")
@@ -193,15 +193,15 @@ describe "ModelGenerator" do
193
193
  end
194
194
 
195
195
  # COUCHREST
196
- context "model generator using couchrest" do
197
- should "generate model file with no properties" do
196
+ describe "model generator using couchrest" do
197
+ it 'should generate model file with no properties' do
198
198
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=couchrest') }
199
199
  capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
200
200
  assert_match_in_file(/class User < CouchRest::Model::Base/m, "#{@apptmp}/sample_project/models/user.rb")
201
201
  assert_match_in_file(/# property <name>[\s\n]+?end/m, "#{@apptmp}/sample_project/models/user.rb")
202
202
  end
203
203
 
204
- should "generate model file with given fields" do
204
+ it 'should generate model file with given fields' do
205
205
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=couchrest') }
206
206
  capture_io { generate(:model, 'person', "name:string", "age", "email:string", "-r=#{@apptmp}/sample_project") }
207
207
  assert_match_in_file(/class Person < CouchRest::Model::Base/m, "#{@apptmp}/sample_project/models/person.rb")
@@ -212,15 +212,15 @@ describe "ModelGenerator" do
212
212
  end
213
213
 
214
214
  # DATAMAPPER
215
- context "model generator using datamapper" do
216
- should "generate model file with camelized name" do
215
+ describe "model generator using datamapper" do
216
+ it 'should generate model file with camelized name' do
217
217
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=datamapper') }
218
218
  capture_io { generate(:model, 'ChunkyBacon', "-r=#{@apptmp}/sample_project") }
219
219
  assert_match_in_file(/class ChunkyBacon\n\s+include DataMapper::Resource/m, "#{@apptmp}/sample_project/models/chunky_bacon.rb")
220
220
  assert_match_in_file(/ChunkyBacon Model/, "#{@apptmp}/sample_project/test/models/chunky_bacon_test.rb")
221
221
  end
222
222
 
223
- should "generate model file with fields" do
223
+ it 'should generate model file with fields' do
224
224
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=datamapper') }
225
225
  capture_io { generate(:model, 'user', "name:string", "age:integer", "created_at:datetime", "-r=#{@apptmp}/sample_project") }
226
226
  assert_match_in_file(/class User\n\s+include DataMapper::Resource/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -229,7 +229,7 @@ describe "ModelGenerator" do
229
229
  assert_match_in_file(/property :created_at, DateTime/m, "#{@apptmp}/sample_project/models/user.rb")
230
230
  end
231
231
 
232
- should "properly generate version numbers" do
232
+ it 'should properly generate version numbers' do
233
233
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=datamapper') }
234
234
  capture_io { generate(:model, 'user', "name:string", "age:integer", "created_at:datetime", "-r=#{@apptmp}/sample_project") }
235
235
  capture_io { generate(:model, 'person', "name:string", "age:integer", "created_at:datetime", "-r=#{@apptmp}/sample_project") }
@@ -242,7 +242,7 @@ describe "ModelGenerator" do
242
242
  assert_match_in_file(/migration 3, :create_accounts do/m, "#{@apptmp}/sample_project/db/migrate/003_create_accounts.rb")
243
243
  end
244
244
 
245
- should "generate migration with given fields" do
245
+ it 'should generate migration with given fields' do
246
246
  current_time = stop_time_for_test.strftime("%Y%m%d%H%M%S")
247
247
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=datamapper') }
248
248
  capture_io { generate(:model, 'person', "name:string", "created_at:date_time", "email:string", "-r=#{@apptmp}/sample_project") }
@@ -258,21 +258,21 @@ describe "ModelGenerator" do
258
258
  end
259
259
 
260
260
  # SEQUEL
261
- context "model generator using sequel" do
262
- should "generate model file with given properties" do
261
+ describe "model generator using sequel" do
262
+ it 'should generate model file with given properties' do
263
263
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=sequel') }
264
264
  capture_io { generate(:model, 'user', "name:string", "age:integer", "created:datetime", "-r=#{@apptmp}/sample_project") }
265
265
  assert_match_in_file(/class User < Sequel::Model/m, "#{@apptmp}/sample_project/models/user.rb")
266
266
  end
267
267
 
268
- should "generate model file with camelized name" do
268
+ it 'should generate model file with camelized name' do
269
269
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=sequel') }
270
270
  capture_io { generate(:model, 'ChunkyBacon', "-r=#{@apptmp}/sample_project") }
271
271
  assert_match_in_file(/class ChunkyBacon < Sequel::Model/m, "#{@apptmp}/sample_project/models/chunky_bacon.rb")
272
272
  assert_match_in_file(/ChunkyBacon Model/, "#{@apptmp}/sample_project/test/models/chunky_bacon_test.rb")
273
273
  end
274
274
 
275
- should "generate migration file with given properties" do
275
+ it 'should generate migration file with given properties' do
276
276
  current_time = stop_time_for_test.strftime("%Y%m%d%H%M%S")
277
277
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=sequel') }
278
278
  capture_io { generate(:model, 'person', "name:string", "age:integer", "created:datetime", "-r=#{@apptmp}/sample_project") }
@@ -288,8 +288,8 @@ describe "ModelGenerator" do
288
288
  end
289
289
 
290
290
  # MONGODB
291
- context "model generator using mongomapper" do
292
- should "generate model file with no properties" do
291
+ describe "model generator using mongomapper" do
292
+ it 'should generate model file with no properties' do
293
293
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongomapper') }
294
294
  capture_io { generate(:model, 'person', "-r=#{@apptmp}/sample_project") }
295
295
  assert_match_in_file(/class Person\n\s+include MongoMapper::Document/m, "#{@apptmp}/sample_project/models/person.rb")
@@ -297,7 +297,7 @@ describe "ModelGenerator" do
297
297
  assert_match_in_file(/timestamps![\n\s]+end/m, "#{@apptmp}/sample_project/models/person.rb")
298
298
  end
299
299
 
300
- should "generate model file with given fields" do
300
+ it 'should generate model file with given fields' do
301
301
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongomapper') }
302
302
  capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
303
303
  assert_match_in_file(/class User\n\s+include MongoMapper::Document/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -308,15 +308,15 @@ describe "ModelGenerator" do
308
308
  end
309
309
  end
310
310
 
311
- context "model generator using mongoid" do
312
- should "generate model file with no properties" do
311
+ describe "model generator using mongoid" do
312
+ it 'should generate model file with no properties' do
313
313
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongoid') }
314
314
  capture_io { generate(:model, 'person', "-r=#{@apptmp}/sample_project") }
315
315
  assert_match_in_file(/class Person\n\s+include Mongoid::Document/m, "#{@apptmp}/sample_project/models/person.rb")
316
316
  assert_match_in_file(/# field <name>, :type => <type>, :default => <value>/m, "#{@apptmp}/sample_project/models/person.rb")
317
317
  end
318
318
 
319
- should "generate model file with given fields" do
319
+ it 'should generate model file with given fields' do
320
320
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongoid') }
321
321
  capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
322
322
  assert_match_in_file(/class User\n\s+include Mongoid::Document/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -327,8 +327,8 @@ describe "ModelGenerator" do
327
327
  end
328
328
 
329
329
  # REDIS
330
- context "model generator using ohm" do
331
- should "generate model file with no properties" do
330
+ describe "model generator using ohm" do
331
+ it 'should generate model file with no properties' do
332
332
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=ohm') }
333
333
  capture_io { generate(:model, 'person', "-r=#{@apptmp}/sample_project") }
334
334
  assert_match_in_file(/class Person < Ohm::Model/, "#{@apptmp}/sample_project/models/person.rb")
@@ -336,7 +336,7 @@ describe "ModelGenerator" do
336
336
  assert_match_in_file(/# reference :venue, Venue/m, "#{@apptmp}/sample_project/models/person.rb")
337
337
  end
338
338
 
339
- should "generate model file with given fields" do
339
+ it 'should generate model file with given fields' do
340
340
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=ohm') }
341
341
  capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
342
342
  assert_match_in_file(/class User < Ohm::Model/, "#{@apptmp}/sample_project/models/user.rb")
@@ -347,15 +347,15 @@ describe "ModelGenerator" do
347
347
  end
348
348
 
349
349
  # MONGOMATIC
350
- context "model generator using mongomatic" do
351
- should "generate model file with no properties" do
350
+ describe "model generator using mongomatic" do
351
+ it 'should generate model file with no properties' do
352
352
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongomatic') }
353
353
  capture_io { generate(:model, 'person', "-r=#{@apptmp}/sample_project") }
354
354
  assert_match_in_file(/class Person < Mongomatic::Base/, "#{@apptmp}/sample_project/models/person.rb")
355
355
  assert_match_in_file(/include Mongomatic::Expectations::Helper/m, "#{@apptmp}/sample_project/models/person.rb")
356
356
  end
357
357
 
358
- should "generate model file with given fields" do
358
+ it 'should generate model file with given fields' do
359
359
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongomatic') }
360
360
  capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
361
361
  assert_match_in_file(/class User < Mongomatic::Base/, "#{@apptmp}/sample_project/models/user.rb")
@@ -368,8 +368,8 @@ describe "ModelGenerator" do
368
368
  end
369
369
 
370
370
  # RIPPLE
371
- context "model generator using ripple" do
372
- should "generate model file with no properties" do
371
+ describe "model generator using ripple" do
372
+ it 'should generate model file with no properties' do
373
373
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=ripple') }
374
374
  capture_io { generate(:model, 'person', "name:string", "-r=#{@apptmp}/sample_project") }
375
375
  assert_match_in_file(/class Person\n\s+include Ripple::Document/m, "#{@apptmp}/sample_project/models/person.rb")
@@ -378,7 +378,7 @@ describe "ModelGenerator" do
378
378
  assert_match_in_file(/# one :account/m, "#{@apptmp}/sample_project/models/person.rb")
379
379
  end
380
380
 
381
- should "generate model file with given fields" do
381
+ it 'should generate model file with given fields' do
382
382
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=ripple') }
383
383
  capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
384
384
  assert_match_in_file(/class User\n\s+include Ripple::Document/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -388,9 +388,27 @@ describe "ModelGenerator" do
388
388
  end
389
389
  end
390
390
 
391
- context "model generator testing files" do
391
+ # DYNAMOID
392
+ describe "model generator using dynamoid" do
393
+ it 'should generate model file with no properties' do
394
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=dynamoid') }
395
+ capture_io { generate(:model, 'person', "name:string", "-r=#{@apptmp}/sample_project") }
396
+ assert_match_in_file(/class Person\n\s+include Dynamoid::Document/m, "#{@apptmp}/sample_project/models/person.rb")
397
+ end
398
+
399
+ it 'should generate model file with given fields' do
400
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=dynamoid') }
401
+ capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
402
+ assert_match_in_file(/class User\n\s+include Dynamoid::Document/m, "#{@apptmp}/sample_project/models/user.rb")
403
+ assert_match_in_file(/field :name, :string/m, "#{@apptmp}/sample_project/models/user.rb")
404
+ assert_match_in_file(/field :age, :integer/m, "#{@apptmp}/sample_project/models/user.rb")
405
+ assert_match_in_file(/field :email, :string/m, "#{@apptmp}/sample_project/models/user.rb")
406
+ end
407
+ end
408
+
409
+ describe "model generator testing files" do
392
410
  # BACON
393
- should "generate test file for bacon" do
411
+ it 'should generate test file for bacon' do
394
412
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
395
413
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
396
414
  capture_io { generate(:model, 'SomeUser', "-r=#{@apptmp}/sample_project") }
@@ -400,7 +418,7 @@ describe "ModelGenerator" do
400
418
  assert_match_in_file(/'(\/\.\.){1}\/test/m, "#{@apptmp}/sample_project/test/models/some_user_test.rb")
401
419
  end
402
420
 
403
- should "generate test file for bacon in specified app" do
421
+ it 'should generate test file for bacon in specified app' do
404
422
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
405
423
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
406
424
  capture_io { generate(:model, 'SomeUser', "-a=/subby", "-r=#{@apptmp}/sample_project") }
@@ -411,7 +429,7 @@ describe "ModelGenerator" do
411
429
  end
412
430
 
413
431
  # RIOT
414
- should "generate test file for riot" do
432
+ it 'should generate test file for riot' do
415
433
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=riot', '-d=activerecord') }
416
434
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
417
435
  capture_io { generate(:model, 'SomeUser', "-r=#{@apptmp}/sample_project") }
@@ -421,7 +439,7 @@ describe "ModelGenerator" do
421
439
  assert_match_in_file(/'(\/\.\.){1}\/test/m, "#{@apptmp}/sample_project/test/models/some_user_test.rb")
422
440
  end
423
441
 
424
- should "generate test file for riot in specified app" do
442
+ it 'should generate test file for riot in specified app' do
425
443
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=riot', '-d=activerecord') }
426
444
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
427
445
  capture_io { generate(:model, 'SomeUser', "-a=/subby", "-r=#{@apptmp}/sample_project") }
@@ -432,7 +450,7 @@ describe "ModelGenerator" do
432
450
  end
433
451
 
434
452
  # MINITEST
435
- should "generate test file for minitest" do
453
+ it 'should generate test file for minitest' do
436
454
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=minitest', '-d=activerecord') }
437
455
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
438
456
  capture_io { generate(:model, 'SomeUser', "-r=#{@apptmp}/sample_project") }
@@ -440,7 +458,7 @@ describe "ModelGenerator" do
440
458
  assert_match_in_file(/refute_nil @some_user/m, "#{@apptmp}/sample_project/test/models/some_user_test.rb")
441
459
  end
442
460
 
443
- should "generate test file for minitest in specified app" do
461
+ it 'should generate test file for minitest in specified app' do
444
462
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=minitest', '-d=activerecord') }
445
463
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
446
464
  capture_io { generate(:model, 'SomeUser', "-a=/subby", "-r=#{@apptmp}/sample_project") }
@@ -449,7 +467,7 @@ describe "ModelGenerator" do
449
467
  end
450
468
 
451
469
  # RSPEC
452
- should "generate test file for rspec" do
470
+ it 'should generate test file for rspec' do
453
471
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec', '-d=activerecord') }
454
472
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
455
473
  capture_io { generate(:model, 'SomeUser', "-r=#{@apptmp}/sample_project") }
@@ -458,7 +476,7 @@ describe "ModelGenerator" do
458
476
  # assert_match_in_file(/some_user\.should_not be_nil/m, "#{@apptmp}/sample_project/spec/models/some_user_spec.rb")
459
477
  end
460
478
 
461
- should "generate test file for rspec in specified app" do
479
+ it 'should generate test file for rspec in specified app' do
462
480
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec', '-d=activerecord') }
463
481
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
464
482
  capture_io { generate(:model, 'SomeUser', "-a=/subby", "-r=#{@apptmp}/sample_project") }
@@ -468,7 +486,7 @@ describe "ModelGenerator" do
468
486
  end
469
487
 
470
488
  # SHOULDA
471
- should "generate test file for shoulda" do
489
+ it 'should generate test file for shoulda' do
472
490
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=shoulda', '-d=activerecord') }
473
491
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
474
492
  capture_io { generate(:model, 'SomePerson', "-r=#{@apptmp}/sample_project") }
@@ -479,7 +497,7 @@ describe "ModelGenerator" do
479
497
  assert_match_in_file(/'(\/\.\.){1}\/test/m, "#{@apptmp}/sample_project/test/models/some_person_test.rb")
480
498
  end
481
499
 
482
- should "generate test file for shoulda in specified app" do
500
+ it 'should generate test file for shoulda in specified app' do
483
501
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=shoulda', '-d=activerecord') }
484
502
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
485
503
  capture_io { generate(:model, 'SomePerson', "-a=/subby", "-r=#{@apptmp}/sample_project") }
@@ -491,39 +509,42 @@ describe "ModelGenerator" do
491
509
  end
492
510
  end
493
511
 
494
- context "the model destroy option" do
512
+ describe "the model destroy option" do
513
+ module ActiveRecord
514
+ Base = Class.new
515
+ end
495
516
 
496
- should "destroy the model file" do
517
+ it 'should destroy the model file' do
497
518
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
498
519
  capture_io { generate(:model, 'User', "-r=#{@apptmp}/sample_project") }
499
- capture_io { generate(:model, 'User', "-r=#{@apptmp}/sample_project", '-d') }
520
+ capture_io { generate_with_parts(:model, 'User', "-r=#{@apptmp}/sample_project", '-d') }
500
521
  assert_no_file_exists("#{@apptmp}/sample_project/models/user.rb")
501
522
  assert_no_file_exists("#{@apptmp}/sample_project/test/models/user_test.rb")
502
523
  assert_no_file_exists("#{@apptmp}/sample_project/db/migrate/001_create_users.rb")
503
524
  end
504
525
 
505
- should "destroy the model test file with rspec" do
526
+ it 'should destroy the model test file with rspec' do
506
527
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec', '-d=activerecord') }
507
528
  capture_io { generate(:model, 'User', "-r=#{@apptmp}/sample_project") }
508
- capture_io { generate(:model, 'User', "-r=#{@apptmp}/sample_project", '-d') }
529
+ capture_io { generate_with_parts(:model, 'User', "-r=#{@apptmp}/sample_project", '-d') }
509
530
  assert_no_file_exists("#{@apptmp}/sample_project/spec/models/user_spec.rb")
510
531
  end
511
532
 
512
- should "destroy the model test file in a sub app" do
533
+ it 'should destroy the model test file in a sub app' do
513
534
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
514
535
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
515
536
  capture_io { generate(:model, 'User', "-a=/subby","-r=#{@apptmp}/sample_project") }
516
- capture_io { generate(:model, 'User', "-a=/subby","-r=#{@apptmp}/sample_project", '-d') }
537
+ capture_io { generate_with_parts(:model, 'User', "-a=/subby","-r=#{@apptmp}/sample_project", '-d', :apps => "subby") }
517
538
  assert_no_file_exists("#{@apptmp}/sample_project/subby/models/user.rb")
518
539
  assert_no_file_exists("#{@apptmp}/sample_project/test/subby/models/user_test.rb")
519
540
  assert_no_file_exists("#{@apptmp}/sample_project/db/migrate/001_create_users.rb")
520
541
  end
521
542
 
522
- should "destroy the right model migration" do
543
+ it 'should destroy the right model migration' do
523
544
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec', '-d=activerecord') }
524
545
  capture_io { generate(:model, 'bar_foo', "-r=#{@apptmp}/sample_project") }
525
546
  capture_io { generate(:model, 'foo', "-r=#{@apptmp}/sample_project") }
526
- capture_io { generate(:model, 'foo', "-r=#{@apptmp}/sample_project", '-d') }
547
+ capture_io { generate_with_parts(:model, 'foo', "-r=#{@apptmp}/sample_project", '-d') }
527
548
  assert_no_file_exists("#{@apptmp}/sample_project/db/migrate/002_create_foos.rb")
528
549
  assert_file_exists("#{@apptmp}/sample_project/db/migrate/001_create_bar_foos.rb")
529
550
  end