zertico 1.3.0 → 2.0.0.alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.hound.yml +17 -0
  4. data/.travis.yml +36 -23
  5. data/CHANGELOG.md +103 -0
  6. data/README.md +39 -19
  7. data/gemfiles/Gemfile.rails3-ruby1.8.7 +7 -0
  8. data/gemfiles/Gemfile.rails3-ruby1.9.2+ +6 -0
  9. data/gemfiles/Gemfile.rails4-ruby1.9.2+ +5 -0
  10. data/lib/zertico.rb +1 -0
  11. data/lib/zertico/controller.rb +24 -16
  12. data/lib/zertico/delegator.rb +12 -5
  13. data/lib/zertico/exceptions.rb +1 -0
  14. data/lib/zertico/exceptions/missing_strong_parameters.rb +9 -0
  15. data/lib/zertico/interactor.rb +15 -2
  16. data/lib/zertico/organizer.rb +7 -5
  17. data/lib/zertico/permitted_params.rb +21 -0
  18. data/lib/zertico/responder.rb +16 -31
  19. data/lib/zertico/responder/force_redirect.rb +34 -0
  20. data/lib/zertico/responder/pjax.rb +13 -0
  21. data/lib/zertico/service.rb +5 -62
  22. data/lib/zertico/service/class_methods.rb +29 -0
  23. data/lib/zertico/service/instance_methods.rb +60 -0
  24. data/lib/zertico/version.rb +1 -1
  25. data/spec/fake_app/app/controllers/admin/user_controller.rb +6 -0
  26. data/spec/fake_app/app/controllers/application_controller.rb +7 -0
  27. data/spec/fake_app/app/controllers/person/gifts_controller.rb +6 -0
  28. data/spec/fake_app/app/controllers/person/profile_controller.rb +6 -0
  29. data/spec/fake_app/app/controllers/user_controller.rb +2 -0
  30. data/spec/fake_app/app/controllers/users_controller.rb +7 -0
  31. data/spec/fake_app/{delegators → app/delegators}/admin/user_delegator.rb +0 -0
  32. data/spec/fake_app/{delegators → app/delegators}/profile/profile_delegator.rb +0 -0
  33. data/spec/fake_app/{delegators → app/delegators}/user_delegator.rb +0 -0
  34. data/spec/fake_app/{interactors → app/interactors}/create_invoice_interactor.rb +0 -0
  35. data/spec/fake_app/{interactors → app/interactors}/create_product_interactor.rb +0 -0
  36. data/spec/fake_app/{interactors → app/interactors}/create_user_interactor.rb +0 -0
  37. data/spec/fake_app/{interactors → app/interactors}/send_welcome_email_interactor.rb +0 -0
  38. data/spec/fake_app/{interfaces → app/interfaces}/invoice.rb +0 -0
  39. data/spec/fake_app/{interfaces → app/interfaces}/person/profile.rb +0 -0
  40. data/spec/fake_app/{interfaces → app/interfaces}/product.rb +0 -0
  41. data/spec/fake_app/app/interfaces/user.rb +32 -0
  42. data/spec/fake_app/{organizers → app/organizers}/buy_product_organizer.rb +0 -0
  43. data/spec/fake_app/{organizers → app/organizers}/register_organizer.rb +0 -0
  44. data/spec/fake_app/app/permitted_params/users_permitted_params.rb +9 -0
  45. data/spec/fake_app/app/responders/users_responder.rb +5 -0
  46. data/spec/fake_app/app/services/admin/user_service.rb +6 -0
  47. data/spec/fake_app/app/services/person/gifts_service.rb +4 -0
  48. data/spec/fake_app/app/services/person/profile_service.rb +4 -0
  49. data/spec/fake_app/app/services/user_service.rb +5 -0
  50. data/spec/fake_app/app/services/users_service.rb +3 -0
  51. data/spec/fake_app/app/views/layouts/application.html.erb +1 -0
  52. data/spec/fake_app/app/views/users/edit.html.erb +0 -0
  53. data/spec/fake_app/app/views/users/index.html.erb +0 -0
  54. data/spec/fake_app/app/views/users/new.html.erb +0 -0
  55. data/spec/fake_app/app/views/users/show.html.erb +0 -0
  56. data/spec/fake_app/config/application.rb +10 -0
  57. data/spec/fake_app/config/routes.rb +3 -0
  58. data/spec/fake_app/config/secrets.yml +4 -0
  59. data/spec/spec_helper.rb +17 -3
  60. data/spec/zertico/controller_integration_spec.rb +92 -0
  61. data/spec/zertico/controller_spec.rb +14 -151
  62. data/spec/zertico/delegator_spec.rb +60 -11
  63. data/spec/zertico/interactor_spec.rb +41 -1
  64. data/spec/zertico/organizer_spec.rb +21 -4
  65. data/spec/zertico/permitted_params_spec.rb +25 -0
  66. data/spec/zertico/responder_spec.rb +234 -0
  67. data/spec/zertico/service/class_methods_spec.rb +36 -0
  68. data/spec/zertico/service/instance_methods_spec.rb +218 -0
  69. data/zertico.gemspec +10 -2
  70. metadata +139 -55
  71. data/gemfiles/Gemfile.rails3.1 +0 -5
  72. data/gemfiles/Gemfile.rails3.2 +0 -5
  73. data/gemfiles/Gemfile.rails4.0 +0 -5
  74. data/gemfiles/Gemfile.rails4.1 +0 -5
  75. data/spec/fake_app/controllers/admin/user_controller.rb +0 -4
  76. data/spec/fake_app/controllers/profile/profile_controller.rb +0 -4
  77. data/spec/fake_app/controllers/user_controller.rb +0 -2
  78. data/spec/fake_app/controllers/users_controller.rb +0 -2
  79. data/spec/fake_app/interfaces/user.rb +0 -9
  80. data/spec/fake_app/services/admin/user_service.rb +0 -8
  81. data/spec/fake_app/services/person/profile_service.rb +0 -5
  82. data/spec/fake_app/services/user_service.rb +0 -6
  83. data/spec/zertico/service_spec.rb +0 -162
data/zertico.gemspec CHANGED
@@ -19,6 +19,14 @@ Gem::Specification.new do |gem|
19
19
  gem.require_paths = %w(lib)
20
20
 
21
21
  gem.add_runtime_dependency 'rails', '>= 3.1.0'
22
+ gem.add_development_dependency 'coveralls' if RUBY_VERSION.to_f >= 1.9
23
+ gem.add_development_dependency 'pry'
22
24
  gem.add_development_dependency 'rspec'
23
- gem.add_development_dependency 'coveralls'
24
- end
25
+ gem.add_development_dependency 'rspec-rails'
26
+
27
+ if RUBY_PLATFORM == 'java'
28
+ gem.add_development_dependency 'activerecord-jdbcsqlite3-adapter'
29
+ else
30
+ gem.add_development_dependency 'sqlite3'
31
+ end
32
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zertico
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.0.0.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo Henrique Lopes Ribeiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-01 00:00:00.000000000 Z
11
+ date: 2014-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.1.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: coveralls
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: rspec
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +67,21 @@ dependencies:
39
67
  - !ruby/object:Gem::Version
40
68
  version: '0'
41
69
  - !ruby/object:Gem::Dependency
42
- name: coveralls
70
+ name: rspec-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sqlite3
43
85
  requirement: !ruby/object:Gem::Requirement
44
86
  requirements:
45
87
  - - ">="
@@ -60,55 +102,80 @@ extensions: []
60
102
  extra_rdoc_files: []
61
103
  files:
62
104
  - ".gitignore"
105
+ - ".hound.yml"
63
106
  - ".rspec"
64
107
  - ".ruby-gemset"
65
108
  - ".ruby-version"
66
109
  - ".travis.yml"
110
+ - CHANGELOG.md
67
111
  - Gemfile
68
112
  - LICENSE.txt
69
113
  - README.md
70
114
  - Rakefile
71
- - gemfiles/Gemfile.rails3.1
72
- - gemfiles/Gemfile.rails3.2
73
- - gemfiles/Gemfile.rails4.0
74
- - gemfiles/Gemfile.rails4.1
115
+ - gemfiles/Gemfile.rails3-ruby1.8.7
116
+ - gemfiles/Gemfile.rails3-ruby1.9.2+
117
+ - gemfiles/Gemfile.rails4-ruby1.9.2+
75
118
  - lib/zertico.rb
76
119
  - lib/zertico/accessor.rb
77
120
  - lib/zertico/controller.rb
78
121
  - lib/zertico/delegator.rb
79
122
  - lib/zertico/exceptions.rb
123
+ - lib/zertico/exceptions/missing_strong_parameters.rb
80
124
  - lib/zertico/exceptions/rollback_exception.rb
81
125
  - lib/zertico/interactor.rb
82
126
  - lib/zertico/organizer.rb
127
+ - lib/zertico/permitted_params.rb
83
128
  - lib/zertico/responder.rb
129
+ - lib/zertico/responder/force_redirect.rb
130
+ - lib/zertico/responder/pjax.rb
84
131
  - lib/zertico/service.rb
132
+ - lib/zertico/service/class_methods.rb
133
+ - lib/zertico/service/instance_methods.rb
85
134
  - lib/zertico/version.rb
86
- - spec/fake_app/controllers/admin/user_controller.rb
87
- - spec/fake_app/controllers/profile/profile_controller.rb
88
- - spec/fake_app/controllers/user_controller.rb
89
- - spec/fake_app/controllers/users_controller.rb
90
- - spec/fake_app/delegators/admin/user_delegator.rb
91
- - spec/fake_app/delegators/profile/profile_delegator.rb
92
- - spec/fake_app/delegators/user_delegator.rb
93
- - spec/fake_app/interactors/create_invoice_interactor.rb
94
- - spec/fake_app/interactors/create_product_interactor.rb
95
- - spec/fake_app/interactors/create_user_interactor.rb
96
- - spec/fake_app/interactors/send_welcome_email_interactor.rb
97
- - spec/fake_app/interfaces/invoice.rb
98
- - spec/fake_app/interfaces/person/profile.rb
99
- - spec/fake_app/interfaces/product.rb
100
- - spec/fake_app/interfaces/user.rb
101
- - spec/fake_app/organizers/buy_product_organizer.rb
102
- - spec/fake_app/organizers/register_organizer.rb
103
- - spec/fake_app/services/admin/user_service.rb
104
- - spec/fake_app/services/person/profile_service.rb
105
- - spec/fake_app/services/user_service.rb
135
+ - spec/fake_app/app/controllers/admin/user_controller.rb
136
+ - spec/fake_app/app/controllers/application_controller.rb
137
+ - spec/fake_app/app/controllers/person/gifts_controller.rb
138
+ - spec/fake_app/app/controllers/person/profile_controller.rb
139
+ - spec/fake_app/app/controllers/user_controller.rb
140
+ - spec/fake_app/app/controllers/users_controller.rb
141
+ - spec/fake_app/app/delegators/admin/user_delegator.rb
142
+ - spec/fake_app/app/delegators/profile/profile_delegator.rb
143
+ - spec/fake_app/app/delegators/user_delegator.rb
144
+ - spec/fake_app/app/interactors/create_invoice_interactor.rb
145
+ - spec/fake_app/app/interactors/create_product_interactor.rb
146
+ - spec/fake_app/app/interactors/create_user_interactor.rb
147
+ - spec/fake_app/app/interactors/send_welcome_email_interactor.rb
148
+ - spec/fake_app/app/interfaces/invoice.rb
149
+ - spec/fake_app/app/interfaces/person/profile.rb
150
+ - spec/fake_app/app/interfaces/product.rb
151
+ - spec/fake_app/app/interfaces/user.rb
152
+ - spec/fake_app/app/organizers/buy_product_organizer.rb
153
+ - spec/fake_app/app/organizers/register_organizer.rb
154
+ - spec/fake_app/app/permitted_params/users_permitted_params.rb
155
+ - spec/fake_app/app/responders/users_responder.rb
156
+ - spec/fake_app/app/services/admin/user_service.rb
157
+ - spec/fake_app/app/services/person/gifts_service.rb
158
+ - spec/fake_app/app/services/person/profile_service.rb
159
+ - spec/fake_app/app/services/user_service.rb
160
+ - spec/fake_app/app/services/users_service.rb
161
+ - spec/fake_app/app/views/layouts/application.html.erb
162
+ - spec/fake_app/app/views/users/edit.html.erb
163
+ - spec/fake_app/app/views/users/index.html.erb
164
+ - spec/fake_app/app/views/users/new.html.erb
165
+ - spec/fake_app/app/views/users/show.html.erb
166
+ - spec/fake_app/config/application.rb
167
+ - spec/fake_app/config/routes.rb
168
+ - spec/fake_app/config/secrets.yml
106
169
  - spec/spec_helper.rb
170
+ - spec/zertico/controller_integration_spec.rb
107
171
  - spec/zertico/controller_spec.rb
108
172
  - spec/zertico/delegator_spec.rb
109
173
  - spec/zertico/interactor_spec.rb
110
174
  - spec/zertico/organizer_spec.rb
111
- - spec/zertico/service_spec.rb
175
+ - spec/zertico/permitted_params_spec.rb
176
+ - spec/zertico/responder_spec.rb
177
+ - spec/zertico/service/class_methods_spec.rb
178
+ - spec/zertico/service/instance_methods_spec.rb
112
179
  - zertico.gemspec
113
180
  homepage:
114
181
  licenses:
@@ -125,9 +192,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
192
  version: '0'
126
193
  required_rubygems_version: !ruby/object:Gem::Requirement
127
194
  requirements:
128
- - - ">="
195
+ - - ">"
129
196
  - !ruby/object:Gem::Version
130
- version: '0'
197
+ version: 1.3.1
131
198
  requirements: []
132
199
  rubyforge_project:
133
200
  rubygems_version: 2.2.2
@@ -135,33 +202,50 @@ signing_key:
135
202
  specification_version: 4
136
203
  summary: Common Patterns used by Zertico
137
204
  test_files:
138
- - gemfiles/Gemfile.rails3.1
139
- - gemfiles/Gemfile.rails3.2
140
- - gemfiles/Gemfile.rails4.0
141
- - gemfiles/Gemfile.rails4.1
142
- - spec/fake_app/controllers/admin/user_controller.rb
143
- - spec/fake_app/controllers/profile/profile_controller.rb
144
- - spec/fake_app/controllers/user_controller.rb
145
- - spec/fake_app/controllers/users_controller.rb
146
- - spec/fake_app/delegators/admin/user_delegator.rb
147
- - spec/fake_app/delegators/profile/profile_delegator.rb
148
- - spec/fake_app/delegators/user_delegator.rb
149
- - spec/fake_app/interactors/create_invoice_interactor.rb
150
- - spec/fake_app/interactors/create_product_interactor.rb
151
- - spec/fake_app/interactors/create_user_interactor.rb
152
- - spec/fake_app/interactors/send_welcome_email_interactor.rb
153
- - spec/fake_app/interfaces/invoice.rb
154
- - spec/fake_app/interfaces/person/profile.rb
155
- - spec/fake_app/interfaces/product.rb
156
- - spec/fake_app/interfaces/user.rb
157
- - spec/fake_app/organizers/buy_product_organizer.rb
158
- - spec/fake_app/organizers/register_organizer.rb
159
- - spec/fake_app/services/admin/user_service.rb
160
- - spec/fake_app/services/person/profile_service.rb
161
- - spec/fake_app/services/user_service.rb
205
+ - gemfiles/Gemfile.rails3-ruby1.8.7
206
+ - gemfiles/Gemfile.rails3-ruby1.9.2+
207
+ - gemfiles/Gemfile.rails4-ruby1.9.2+
208
+ - spec/fake_app/app/controllers/admin/user_controller.rb
209
+ - spec/fake_app/app/controllers/application_controller.rb
210
+ - spec/fake_app/app/controllers/person/gifts_controller.rb
211
+ - spec/fake_app/app/controllers/person/profile_controller.rb
212
+ - spec/fake_app/app/controllers/user_controller.rb
213
+ - spec/fake_app/app/controllers/users_controller.rb
214
+ - spec/fake_app/app/delegators/admin/user_delegator.rb
215
+ - spec/fake_app/app/delegators/profile/profile_delegator.rb
216
+ - spec/fake_app/app/delegators/user_delegator.rb
217
+ - spec/fake_app/app/interactors/create_invoice_interactor.rb
218
+ - spec/fake_app/app/interactors/create_product_interactor.rb
219
+ - spec/fake_app/app/interactors/create_user_interactor.rb
220
+ - spec/fake_app/app/interactors/send_welcome_email_interactor.rb
221
+ - spec/fake_app/app/interfaces/invoice.rb
222
+ - spec/fake_app/app/interfaces/person/profile.rb
223
+ - spec/fake_app/app/interfaces/product.rb
224
+ - spec/fake_app/app/interfaces/user.rb
225
+ - spec/fake_app/app/organizers/buy_product_organizer.rb
226
+ - spec/fake_app/app/organizers/register_organizer.rb
227
+ - spec/fake_app/app/permitted_params/users_permitted_params.rb
228
+ - spec/fake_app/app/responders/users_responder.rb
229
+ - spec/fake_app/app/services/admin/user_service.rb
230
+ - spec/fake_app/app/services/person/gifts_service.rb
231
+ - spec/fake_app/app/services/person/profile_service.rb
232
+ - spec/fake_app/app/services/user_service.rb
233
+ - spec/fake_app/app/services/users_service.rb
234
+ - spec/fake_app/app/views/layouts/application.html.erb
235
+ - spec/fake_app/app/views/users/edit.html.erb
236
+ - spec/fake_app/app/views/users/index.html.erb
237
+ - spec/fake_app/app/views/users/new.html.erb
238
+ - spec/fake_app/app/views/users/show.html.erb
239
+ - spec/fake_app/config/application.rb
240
+ - spec/fake_app/config/routes.rb
241
+ - spec/fake_app/config/secrets.yml
162
242
  - spec/spec_helper.rb
243
+ - spec/zertico/controller_integration_spec.rb
163
244
  - spec/zertico/controller_spec.rb
164
245
  - spec/zertico/delegator_spec.rb
165
246
  - spec/zertico/interactor_spec.rb
166
247
  - spec/zertico/organizer_spec.rb
167
- - spec/zertico/service_spec.rb
248
+ - spec/zertico/permitted_params_spec.rb
249
+ - spec/zertico/responder_spec.rb
250
+ - spec/zertico/service/class_methods_spec.rb
251
+ - spec/zertico/service/instance_methods_spec.rb
@@ -1,5 +0,0 @@
1
- source :rubygems
2
-
3
- gem 'rails', '3.1'
4
-
5
- gemspec :path => '../'
@@ -1,5 +0,0 @@
1
- source :rubygems
2
-
3
- gem 'rails', '3.2'
4
-
5
- gemspec :path => '../'
@@ -1,5 +0,0 @@
1
- source :rubygems
2
-
3
- gem 'rails', '4.0'
4
-
5
- gemspec :path => '../'
@@ -1,5 +0,0 @@
1
- source :rubygems
2
-
3
- gem 'rails', '4.1'
4
-
5
- gemspec :path => '../'
@@ -1,4 +0,0 @@
1
- module Admin
2
- class UserController < Zertico::Controller
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module Person
2
- class ProfileController < Zertico::Controller
3
- end
4
- end
@@ -1,2 +0,0 @@
1
- class UserController < Zertico::Controller
2
- end
@@ -1,2 +0,0 @@
1
- class UsersController < Zertico::Controller
2
- end
@@ -1,9 +0,0 @@
1
- class User
2
- def self.create(params)
3
- new
4
- end
5
-
6
- def destroy
7
- true
8
- end
9
- end
@@ -1,8 +0,0 @@
1
- module Admin
2
- module UserService
3
- include Zertico::Service
4
-
5
- def admin_user
6
- end
7
- end
8
- end
@@ -1,5 +0,0 @@
1
- module Person
2
- module ProfileService
3
- include Zertico::Service
4
- end
5
- end
@@ -1,6 +0,0 @@
1
- module UserService
2
- include Zertico::Service
3
-
4
- def user
5
- end
6
- end
@@ -1,162 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Zertico::Service do
4
- let(:controller) { UserController.new }
5
- let(:admin_controller) { Admin::UserController.new }
6
- let(:profile_controller) { Person::ProfileController.new }
7
- let(:object) { Object.new }
8
- let(:users_controller) { UsersController.new }
9
-
10
- context 'on a pluralized controller' do
11
- it 'should find the interface model' do
12
- users_controller.send(:interface_class).should == User
13
- end
14
- end
15
-
16
- context 'on a namespaced controller and interface model' do
17
- it 'should find the interface model' do
18
- profile_controller.send(:interface_class).should == Person::Profile
19
- end
20
- end
21
-
22
- context 'on a namespaced controller and non namespaced interface model' do
23
- it 'should find the interface model' do
24
- admin_controller.send(:interface_class).should == User
25
- end
26
- end
27
-
28
- context 'on a non namespaced controller and non namespaced interface model' do
29
- it 'should find the interface model' do
30
- controller.send(:interface_class).should == User
31
- end
32
- end
33
-
34
- context '#all' do
35
- before :each do
36
- User.stub(:all => [])
37
- controller.all
38
- end
39
-
40
- it 'should save a collection on an instance variable' do
41
- controller.instance_variable_get('@users').should == []
42
- end
43
-
44
- it 'should return a collection' do
45
- controller.all.should == []
46
- end
47
- end
48
-
49
- context '#build' do
50
- before :each do
51
- User.stub(:new => object)
52
- controller.build
53
- end
54
-
55
- it 'should save an object on an instance variable' do
56
- controller.instance_variable_get('@user').should == object
57
- end
58
-
59
- it 'should return an object' do
60
- controller.build.should == object
61
- end
62
- end
63
-
64
- context '#find' do
65
- before :each do
66
- User.stub(:find => object)
67
- controller.stub(:params => { :id => 1 })
68
- controller.find
69
- end
70
-
71
- it 'should save an object on an instance variable' do
72
- controller.instance_variable_get('@user').should == object
73
- end
74
-
75
- it 'should return an object' do
76
- controller.find.should == object
77
- end
78
- end
79
-
80
- context '#generate' do
81
- before :each do
82
- User.stub(:create => object)
83
- controller.stub(:params => { :user => {} })
84
- controller.generate
85
- end
86
-
87
- it 'should save an object on an instance variable' do
88
- controller.instance_variable_get('@user').should == object
89
- end
90
-
91
- it 'should return an object' do
92
- controller.generate.should == object
93
- end
94
- end
95
-
96
- context '#modify' do
97
- before :each do
98
- User.stub(:find => object)
99
- controller.stub(:params => { :id => 1, :user => {} })
100
- object.stub(:update_attributes).with({}).and_return(true)
101
- controller.modify
102
- end
103
-
104
- it 'should save an object on an instance variable' do
105
- controller.instance_variable_get('@user').should == object
106
- end
107
-
108
- it 'should return an object' do
109
- controller.modify.should == object
110
- end
111
- end
112
-
113
- context '#delete' do
114
- before :each do
115
- User.stub(:find => object)
116
- controller.stub(:params => { :id => 1 })
117
- object.stub(:destroy => true)
118
- controller.delete
119
- end
120
-
121
- it 'should save an object on an instance variable' do
122
- controller.instance_variable_get('@user').should == object
123
- end
124
-
125
- it 'should return an object' do
126
- controller.delete.should == object
127
- end
128
- end
129
-
130
- context '#resource_source' do
131
- context 'with no resource defined' do
132
- before :each do
133
- controller.stub(:interface_class => User)
134
- end
135
-
136
- it 'should return the resource' do
137
- controller.resource_source.should == User
138
- end
139
- end
140
-
141
- context 'with a resource defined' do
142
- before :each do
143
- controller.resource_source = %w(Person::Profile)
144
- end
145
-
146
- it 'should return the resource' do
147
- controller.resource_source.should == Person::Profile
148
- end
149
- end
150
- end
151
-
152
- context '#resource=' do
153
- before :each do
154
- User.stub(:all => [ object ])
155
- controller.resource_source = %w(User all)
156
- end
157
-
158
- it 'should set the resource' do
159
- controller.resource_source.should == [ object ]
160
- end
161
- end
162
- end