dm_preferences 0.5.6 → 1.0

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 (60) hide show
  1. checksums.yaml +13 -5
  2. data/.gitignore +2 -0
  3. data/.travis.yml +2 -2
  4. data/{CHANGELOG.rdoc → CHANGELOG.md} +26 -15
  5. data/LICENSE +2 -0
  6. data/{README.rdoc → README.md} +144 -96
  7. data/Rakefile +20 -27
  8. data/dm_preferences.gemspec +7 -5
  9. data/lib/generators/{USAGE → preferences/USAGE} +0 -0
  10. data/lib/generators/{preferences_generator.rb → preferences/preferences_generator.rb} +0 -0
  11. data/lib/generators/{templates → preferences/templates}/create_preferences.rb +5 -1
  12. data/lib/preferences.rb +33 -10
  13. data/lib/preferences/engine.rb +2 -1
  14. data/lib/preferences/preference_definition.rb +15 -4
  15. data/lib/preferences/version.rb +1 -1
  16. data/spec/dummy/Rakefile +6 -0
  17. data/spec/dummy/app/models/.keep +0 -0
  18. data/{test/app_root → spec/dummy}/app/models/car.rb +0 -0
  19. data/{test/app_root → spec/dummy}/app/models/employee.rb +0 -0
  20. data/{test/app_root → spec/dummy}/app/models/manager.rb +0 -0
  21. data/{test/app_root → spec/dummy}/app/models/user.rb +0 -0
  22. data/spec/dummy/bin/bundle +3 -0
  23. data/spec/dummy/bin/rails +4 -0
  24. data/spec/dummy/bin/rake +4 -0
  25. data/spec/dummy/bin/setup +29 -0
  26. data/spec/dummy/config.ru +4 -0
  27. data/spec/dummy/config/application.rb +32 -0
  28. data/spec/dummy/config/boot.rb +5 -0
  29. data/spec/dummy/config/database.yml +25 -0
  30. data/spec/dummy/config/environment.rb +5 -0
  31. data/spec/dummy/config/environments/development.rb +41 -0
  32. data/spec/dummy/config/environments/production.rb +79 -0
  33. data/spec/dummy/config/environments/test.rb +42 -0
  34. data/spec/dummy/config/initializers/assets.rb +11 -0
  35. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  36. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  37. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  38. data/spec/dummy/config/initializers/inflections.rb +16 -0
  39. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  40. data/spec/dummy/config/initializers/session_store.rb +3 -0
  41. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  42. data/spec/dummy/config/locales/en.yml +23 -0
  43. data/spec/dummy/config/routes.rb +56 -0
  44. data/spec/dummy/config/secrets.yml +22 -0
  45. data/{test/app_root → spec/dummy}/db/migrate/001_create_users.rb +0 -0
  46. data/{test/app_root → spec/dummy}/db/migrate/002_create_cars.rb +0 -0
  47. data/{test/app_root → spec/dummy}/db/migrate/003_create_employees.rb +0 -0
  48. data/spec/dummy/db/migrate/004_create_preferences.rb +16 -0
  49. data/spec/dummy/db/schema.rb +42 -0
  50. data/spec/functional/preferences_spec.rb +1427 -0
  51. data/spec/spec_helper.rb +20 -0
  52. data/spec/support/assert_queries.rb +36 -0
  53. data/{test → spec/support}/factory.rb +1 -1
  54. data/spec/unit/preference_definition_spec.rb +249 -0
  55. data/{test/unit/preference_test.rb → spec/unit/preference_spec.rb} +114 -122
  56. metadata +127 -53
  57. data/test/app_root/db/migrate/004_migrate_preferences_to_version_1.rb +0 -13
  58. data/test/functional/preferences_test.rb +0 -1387
  59. data/test/test_helper.rb +0 -26
  60. data/test/unit/preference_definition_test.rb +0 -237
@@ -0,0 +1,20 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+
3
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
4
+ require 'rspec/rails'
5
+
6
+ Rails.backtrace_cleaner.remove_silencers!
7
+
8
+ # Load support files
9
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
10
+
11
+ RSpec.configure do |config|
12
+ config.mock_with :rspec
13
+ config.use_transactional_fixtures = true
14
+ config.infer_base_class_for_anonymous_controllers = false
15
+ config.order = "random"
16
+ end
17
+
18
+ # Checks for pending migrations before tests are run.
19
+ # If you are not using ActiveRecord, you can remove this line.
20
+ ActiveRecord::Migration.maintain_test_schema!
@@ -0,0 +1,36 @@
1
+ #------------------------------------------------------------------------------
2
+ def assert_queries(num = 1, &block)
3
+ expect(ActiveRecord::Base.count_queries(&block)).to eq num
4
+ end
5
+
6
+ # http://stackoverflow.com/questions/5490411/counting-the-number-of-queries-performed
7
+ #------------------------------------------------------------------------------
8
+ module ActiveRecord
9
+ class QueryCounter
10
+ cattr_accessor :query_count do
11
+ 0
12
+ end
13
+
14
+ IGNORED_SQL = [/^PRAGMA (?!(table_info))/, /^SELECT currval/, /^SELECT CAST/, /^SELECT @@IDENTITY/, /^SELECT @@ROWCOUNT/, /^SAVEPOINT/, /^ROLLBACK TO SAVEPOINT/, /^RELEASE SAVEPOINT/, /^SHOW max_identifier_length/]
15
+
16
+ def call(name, start, finish, message_id, values)
17
+ # FIXME: this seems bad. we should probably have a better way to indicate
18
+ # the query was cached
19
+ unless 'CACHE' == values[:name]
20
+ self.class.query_count += 1 unless IGNORED_SQL.any? { |r| values[:sql] =~ r }
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ ActiveSupport::Notifications.subscribe('sql.active_record', ActiveRecord::QueryCounter.new)
27
+
28
+ module ActiveRecord
29
+ class Base
30
+ def self.count_queries(&block)
31
+ ActiveRecord::QueryCounter.query_count = 0
32
+ yield
33
+ ActiveRecord::QueryCounter.query_count
34
+ end
35
+ end
36
+ end
@@ -21,7 +21,7 @@ module Factory
21
21
  def new_record(model, *args)
22
22
  attributes = valid_attributes_for(model, *args)
23
23
  record = model.new(attributes)
24
- attributes.each {|attr, value| record.send("#{attr}=", value) if model.accessible_attributes && !model.accessible_attributes.include?(attr) || model.protected_attributes && model.protected_attributes.include?(attr)}
24
+ attributes.each {|attr, value| record.send("#{attr}=", value)}
25
25
  record
26
26
  end
27
27
 
@@ -0,0 +1,249 @@
1
+ require 'spec_helper'
2
+
3
+ #------------------------------------------------------------------------------
4
+ describe 'PreferenceDefinitionByDefaultTest' do
5
+ before do
6
+ @definition = Preferences::PreferenceDefinition.new(:notifications)
7
+ end
8
+
9
+ it 'test_should_have_a_name' do
10
+ # assert_equal 'notifications2', @definition.name
11
+ expect('notifications').to eq @definition.name
12
+ end
13
+
14
+ it "test_should_not_have_a_default_value" do
15
+ expect(nil).to eq @definition.default_value
16
+ end
17
+
18
+ it "test_should_have_a_type" do
19
+ assert_equal :boolean, @definition.type
20
+ end
21
+
22
+ it "test_should_type_cast_values_as_booleans" do
23
+ assert_equal nil, @definition.type_cast(nil)
24
+ assert_equal true, @definition.type_cast(true)
25
+ assert_equal false, @definition.type_cast(false)
26
+ assert_equal false, @definition.type_cast(0)
27
+ assert_equal true, @definition.type_cast(1)
28
+ end
29
+ end
30
+
31
+ #------------------------------------------------------------------------------
32
+ describe "PreferenceDefinitionTest" do
33
+ it "test_should_raise_exception_if_invalid_option_specified" do
34
+ expect {
35
+ Preferences::PreferenceDefinition.new(:notifications, :invalid => true)
36
+ }.to raise_error(ArgumentError)
37
+ end
38
+ end
39
+
40
+ #------------------------------------------------------------------------------
41
+ describe "PreferenceDefinitionWithDefaultValueTest" do
42
+ before do
43
+ @definition = Preferences::PreferenceDefinition.new(:notifications, :boolean, :default => 1)
44
+ end
45
+
46
+ it "test_should_type_cast_default_values" do
47
+ assert_equal true, @definition.default_value
48
+ end
49
+ end
50
+
51
+ #------------------------------------------------------------------------------
52
+ describe "PreferenceDefinitionWithGroupDefaultsTest" do
53
+ before do
54
+ @definition = Preferences::PreferenceDefinition.new(:notifications, :boolean, :default => 1, :group_defaults => {:chat => 0})
55
+ end
56
+
57
+ it "test_should_use_default_for_default_group" do
58
+ assert_equal true, @definition.default_value
59
+ end
60
+
61
+ it "test_should_use_default_for_unknown_group" do
62
+ assert_equal true, @definition.default_value('email')
63
+ end
64
+
65
+ it "test_should_use_group_default_for_known_group" do
66
+ assert_equal false, @definition.default_value('chat')
67
+ end
68
+ end
69
+
70
+ #------------------------------------------------------------------------------
71
+ describe "PreferenceDefinitionWithStringifiedTypeTest" do
72
+ before do
73
+ @definition = Preferences::PreferenceDefinition.new(:notifications, :any)
74
+ end
75
+
76
+ it "test_should_symbolize_type" do
77
+ assert_equal :any, @definition.type
78
+ end
79
+ end
80
+
81
+ #------------------------------------------------------------------------------
82
+ describe "PreferenceDefinitionWithAnyTypeTest" do
83
+ before do
84
+ @definition = Preferences::PreferenceDefinition.new(:notifications, :any)
85
+ end
86
+
87
+ it "test_use_custom_type" do
88
+ assert_equal :any, @definition.type
89
+ end
90
+
91
+ it "test_should_not_be_number" do
92
+ assert !@definition.number?
93
+ end
94
+
95
+ it "test_should_not_type_cast" do
96
+ assert_equal nil, @definition.type_cast(nil)
97
+ assert_equal 0, @definition.type_cast(0)
98
+ assert_equal 1, @definition.type_cast(1)
99
+ assert_equal false, @definition.type_cast(false)
100
+ assert_equal true, @definition.type_cast(true)
101
+ assert_equal '', @definition.type_cast('')
102
+ end
103
+
104
+ it "test_should_query_false_if_value_is_nil" do
105
+ assert_equal false, @definition.query(nil)
106
+ end
107
+
108
+ it "test_should_query_true_if_value_is_zero" do
109
+ assert_equal true, @definition.query(0)
110
+ end
111
+
112
+ it "test_should_query_true_if_value_is_not_zero" do
113
+ assert_equal true, @definition.query(1)
114
+ assert_equal true, @definition.query(-1)
115
+ end
116
+
117
+ it "test_should_query_false_if_value_is_blank" do
118
+ assert_equal false, @definition.query('')
119
+ end
120
+
121
+ it "test_should_query_true_if_value_is_not_blank" do
122
+ assert_equal true, @definition.query('hello')
123
+ end
124
+ end
125
+
126
+ #------------------------------------------------------------------------------
127
+ describe "PreferenceDefinitionWithBooleanTypeTest" do
128
+ before do
129
+ @definition = Preferences::PreferenceDefinition.new(:notifications)
130
+ end
131
+
132
+ it "test_should_not_be_number" do
133
+ assert !@definition.number?
134
+ end
135
+
136
+ it "test_should_not_type_cast_if_value_is_nil" do
137
+ assert_equal nil, @definition.type_cast(nil)
138
+ end
139
+
140
+ it "test_should_type_cast_to_false_if_value_is_zero" do
141
+ assert_equal false, @definition.type_cast(0)
142
+ end
143
+
144
+ it "test_should_type_cast_to_true_if_value_is_not_zero" do
145
+ assert_equal true, @definition.type_cast(1)
146
+ end
147
+
148
+ it "test_should_type_cast_to_true_if_value_is_true_string" do
149
+ assert_equal true, @definition.type_cast('true')
150
+ end
151
+
152
+ it "test_should_type_cast_to_nil_if_value_is_not_true_string" do
153
+ assert_nil @definition.type_cast('')
154
+ end
155
+
156
+ it "test_should_query_false_if_value_is_nil" do
157
+ assert_equal false, @definition.query(nil)
158
+ end
159
+
160
+ it "test_should_query_true_if_value_is_one" do
161
+ assert_equal true, @definition.query(1)
162
+ end
163
+
164
+ it "test_should_query_false_if_value_not_one" do
165
+ assert_equal false, @definition.query(0)
166
+ end
167
+
168
+ it "test_should_query_true_if_value_is_true_string" do
169
+ assert_equal true, @definition.query('true')
170
+ end
171
+
172
+ it "test_should_query_false_if_value_is_not_true_string" do
173
+ assert_equal false, @definition.query('')
174
+ end
175
+ end
176
+
177
+ #------------------------------------------------------------------------------
178
+ describe "PreferenceDefinitionWithNumericTypeTest" do
179
+ before do
180
+ @definition = Preferences::PreferenceDefinition.new(:notifications, :integer)
181
+ end
182
+
183
+ it "test_should_be_number" do
184
+ assert @definition.number?
185
+ end
186
+
187
+ it "test_should_type_cast_true_to_integer" do
188
+ assert_equal 1, @definition.type_cast(true)
189
+ end
190
+
191
+ # it "test_should_type_cast_false_to_integer" do
192
+ # assert_equal 0, @definition.type_cast(false)
193
+ # end
194
+
195
+ it "test_should_type_cast_string_to_integer" do
196
+ assert_equal 0, @definition.type_cast('hello')
197
+ end
198
+
199
+ it "test_should_query_false_if_value_is_nil" do
200
+ assert_equal false, @definition.query(nil)
201
+ end
202
+
203
+ it "test_should_query_true_if_value_is_one" do
204
+ assert_equal true, @definition.query(1)
205
+ end
206
+
207
+ it "test_should_query_false_if_value_is_zero" do
208
+ assert_equal false, @definition.query(0)
209
+ end
210
+ end
211
+
212
+ #------------------------------------------------------------------------------
213
+ describe "> PreferenceDefinitionWithStringTypeTest" do
214
+ before do
215
+ @definition = Preferences::PreferenceDefinition.new(:notifications, :string)
216
+ end
217
+
218
+ it "test_should_not_be_number" do
219
+ assert !@definition.number?
220
+ end
221
+
222
+ it "test_should_type_cast_integers_to_strings" do
223
+ assert_equal '1', @definition.type_cast('1')
224
+ end
225
+
226
+ it "test_should_not_type_cast_booleans" do
227
+ assert_equal 't', @definition.type_cast(true)
228
+ end
229
+
230
+ it "test_should_query_false_if_value_is_nil" do
231
+ assert_equal false, @definition.query(nil)
232
+ end
233
+
234
+ it "test_should_query_true_if_value_is_one" do
235
+ assert_equal true, @definition.query(1)
236
+ end
237
+
238
+ it "test_should_query_true_if_value_is_zero" do
239
+ assert_equal true, @definition.query(0)
240
+ end
241
+
242
+ it "test_should_query_false_if_value_is_blank" do
243
+ assert_equal false, @definition.query('')
244
+ end
245
+
246
+ it "test_should_query_true_if_value_is_not_blank" do
247
+ assert_equal true, @definition.query('hello')
248
+ end
249
+ end
@@ -1,259 +1,251 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
1
+ require 'spec_helper'
2
2
 
3
- class PreferenceByDefaultTest < ActiveSupport::TestCase
4
- def setup
3
+ include Factory
4
+
5
+ #------------------------------------------------------------------------------
6
+ describe "PreferenceByDefaultTest" do
7
+ before do
5
8
  @preference = Preference.new
6
9
  end
7
-
8
- def test_should_not_have_a_name
10
+
11
+ it "test_should_not_have_a_name" do
9
12
  assert @preference.name.blank?
10
13
  end
11
-
12
- def test_should_not_have_an_owner
14
+
15
+ it "test_should_not_have_an_owner" do
13
16
  assert_nil @preference.owner_id
14
17
  end
15
-
16
- def test_should_not_have_an_owner_type
18
+
19
+ it "test_should_not_have_an_owner_type" do
17
20
  assert @preference.owner_type.blank?
18
21
  end
19
-
20
- def test_should_not_have_a_group_association
22
+
23
+ it "test_should_not_have_a_group_association" do
21
24
  assert_nil @preference.group_id
22
25
  end
23
-
24
- def test_should_not_have_a_group_type
26
+
27
+ it "test_should_not_have_a_group_type" do
25
28
  assert @preference.group_type.nil?
26
29
  end
27
-
28
- def test_should_not_have_a_value
30
+
31
+ it "test_should_not_have_a_value" do
29
32
  assert @preference.value.blank?
30
33
  end
31
-
32
- def test_should_not_have_a_definition
34
+
35
+ it "test_should_not_have_a_definition" do
33
36
  assert_nil @preference.definition
34
37
  end
35
38
  end
36
39
 
37
- class PreferenceTest < ActiveSupport::TestCase
38
- def test_should_be_valid_with_a_set_of_valid_attributes
40
+ #------------------------------------------------------------------------------
41
+ describe "PreferenceTest" do
42
+
43
+ it "test_should_be_valid_with_a_set_of_valid_attributes" do
39
44
  preference = new_preference
40
45
  assert preference.valid?
41
46
  end
42
-
43
- def test_should_require_a_name
47
+
48
+ it "test_should_require_a_name" do
44
49
  preference = new_preference(:name => nil)
45
50
  assert !preference.valid?
46
- assert preference.errors.invalid?(:name)
51
+ assert preference.errors.include?(:name)
47
52
  end
48
-
49
- def test_should_require_an_owner_id
53
+
54
+ it "test_should_require_an_owner_id" do
50
55
  preference = new_preference(:owner => nil)
51
56
  assert !preference.valid?
52
- assert preference.errors.invalid?(:owner_id)
57
+ assert preference.errors.include?(:owner_id)
53
58
  end
54
-
55
- def test_should_require_an_owner_type
59
+
60
+ it "test_should_require_an_owner_type" do
56
61
  preference = new_preference(:owner => nil)
57
62
  assert !preference.valid?
58
- assert preference.errors.invalid?(:owner_type)
63
+ assert preference.errors.include?(:owner_type)
59
64
  end
60
-
61
- def test_should_not_require_a_group_id
65
+
66
+ it "test_should_not_require_a_group_id" do
62
67
  preference = new_preference(:group => nil)
63
68
  assert preference.valid?
64
69
  end
65
-
66
- def test_should_not_require_a_group_id_if_type_specified
70
+
71
+ it "test_should_not_require_a_group_id_if_type_specified" do
67
72
  preference = new_preference(:group => nil)
68
73
  preference.group_type = 'Car'
69
74
  assert preference.valid?
70
75
  end
71
-
72
- def test_should_not_require_a_group_type
76
+
77
+ it "test_should_not_require_a_group_type" do
73
78
  preference = new_preference(:group => nil)
74
79
  assert preference.valid?
75
80
  end
76
-
77
- def test_should_require_a_group_type_if_id_specified
81
+
82
+ it "test_should_require_a_group_type_if_id_specified" do
78
83
  preference = new_preference(:group => nil)
79
84
  preference.group_id = 1
80
85
  assert !preference.valid?
81
- assert preference.errors.invalid?(:group_type)
82
- end
83
-
84
- def test_should_protect_attributes_from_mass_assignment
85
- preference = Preference.new(
86
- :id => 1,
87
- :name => 'notifications',
88
- :value => '123',
89
- :owner_id => 1,
90
- :owner_type => 'User',
91
- :group_id => 1,
92
- :group_type => 'Car'
93
- )
94
-
95
- assert_nil preference.id
96
- assert_equal 'notifications', preference.name
97
- assert_equal '123', preference.value
98
- assert_equal 1, preference.owner_id
99
- assert_equal 'User', preference.owner_type
100
- assert_equal 1, preference.group_id
101
- assert_equal 'Car', preference.group_type
86
+ assert preference.errors.include?(:group_type)
102
87
  end
103
88
  end
104
89
 
105
- class PreferenceAsAClassTest < ActiveSupport::TestCase
106
- def test_should_be_able_to_split_nil_groups
90
+ #------------------------------------------------------------------------------
91
+ describe "PreferenceAsAClassTest" do
92
+ it "test_should_be_able_to_split_nil_groups" do
107
93
  group_id, group_type = Preference.split_group(nil)
108
94
  assert_nil group_id
109
95
  assert_nil group_type
110
96
  end
111
-
112
- def test_should_be_able_to_split_non_active_record_groups
97
+
98
+ it "test_should_be_able_to_split_non_active_record_groups" do
113
99
  group_id, group_type = Preference.split_group('car')
114
100
  assert_nil group_id
115
101
  assert_equal 'car', group_type
116
-
102
+
117
103
  group_id, group_type = Preference.split_group(:car)
118
104
  assert_nil group_id
119
105
  assert_equal 'car', group_type
120
-
106
+
121
107
  group_id, group_type = Preference.split_group(10)
122
108
  assert_nil group_id
123
109
  assert_equal 10, group_type
124
110
  end
125
-
126
- def test_should_be_able_to_split_active_record_groups
111
+
112
+ it "test_should_be_able_to_split_active_record_groups" do
127
113
  car = create_car
128
-
114
+
129
115
  group_id, group_type = Preference.split_group(car)
130
116
  assert_equal 1, group_id
131
117
  assert_equal 'Car', group_type
132
118
  end
133
119
  end
134
120
 
135
- class PreferenceAfterBeingCreatedTest < ActiveSupport::TestCase
136
- def setup
121
+ #------------------------------------------------------------------------------
122
+ describe "PreferenceAfterBeingCreatedTest" do
123
+ before do
137
124
  User.preference :notifications, :boolean
138
-
125
+
139
126
  @preference = create_preference(:name => 'notifications')
140
127
  end
141
-
142
- def test_should_have_an_owner
143
- assert_not_nil @preference.owner
128
+
129
+ it "test_should_have_an_owner" do
130
+ expect(@preference.owner.nil?).to eq false
144
131
  end
145
-
146
- def test_should_have_a_definition
147
- assert_not_nil @preference.definition
132
+
133
+ it "test_should_have_a_definition" do
134
+ expect(@preference.definition.nil?).to eq false
148
135
  end
149
-
150
- def test_should_have_a_value
151
- assert_not_nil @preference.value
136
+
137
+ it "test_should_have_a_value" do
138
+ expect(@preference.value.nil?).to eq false
152
139
  end
153
-
154
- def test_should_not_have_a_group_association
140
+
141
+ it "test_should_not_have_a_group_association" do
155
142
  assert_nil @preference.group
156
143
  end
157
-
158
- def teardown
144
+
145
+ after do
159
146
  User.preference_definitions.delete('notifications')
160
147
  end
161
148
  end
162
149
 
163
- class PreferenceWithBasicGroupTest < ActiveSupport::TestCase
164
- def setup
150
+ #------------------------------------------------------------------------------
151
+ describe "PreferenceWithBasicGroupTest" do
152
+ before do
165
153
  @preference = create_preference(:group_type => 'car')
166
154
  end
167
-
168
- def test_should_have_a_group_association
155
+
156
+ it "test_should_have_a_group_association" do
169
157
  assert_equal 'car', @preference.group
170
158
  end
171
159
  end
172
160
 
173
- class PreferenceWithActiveRecordGroupTest < ActiveSupport::TestCase
174
- def setup
161
+ #------------------------------------------------------------------------------
162
+ describe "PreferenceWithActiveRecordGroupTest" do
163
+ before do
175
164
  @car = create_car
176
165
  @preference = create_preference(:group => @car)
177
166
  end
178
-
179
- def test_should_have_a_group_association
167
+
168
+ it "test_should_have_a_group_association" do
180
169
  assert_equal @car, @preference.group
181
170
  end
182
171
  end
183
172
 
184
- class PreferenceWithBooleanTypeTest < ActiveSupport::TestCase
185
- def setup
173
+ #------------------------------------------------------------------------------
174
+ describe "PreferenceWithBooleanTypeTest" do
175
+ before do
186
176
  User.preference :notifications, :boolean
187
177
  end
188
-
189
- def test_should_type_cast_nil_values
178
+
179
+ it "test_should_type_cast_nil_values" do
190
180
  preference = new_preference(:name => 'notifications', :value => nil)
191
181
  assert_nil preference.value
192
182
  end
193
-
194
- def test_should_type_cast_numeric_values
183
+
184
+ it "test_should_type_cast_numeric_values" do
195
185
  preference = new_preference(:name => 'notifications', :value => 0)
196
186
  assert_equal false, preference.value
197
-
187
+
198
188
  preference.value = 1
199
189
  assert_equal true, preference.value
200
190
  end
201
-
202
- def test_should_type_cast_boolean_values
191
+
192
+ it "test_should_type_cast_boolean_values" do
203
193
  preference = new_preference(:name => 'notifications', :value => false)
204
194
  assert_equal false, preference.value
205
-
195
+
206
196
  preference.value = true
207
197
  assert_equal true, preference.value
208
198
  end
209
-
210
- def teardown
199
+
200
+ after do
211
201
  User.preference_definitions.delete('notifications')
212
202
  end
213
203
  end
214
204
 
215
- class PreferenceWithFloatTypeTest < ActiveSupport::TestCase
216
- def setup
205
+ #------------------------------------------------------------------------------
206
+ describe "PreferenceWithFloatTypeTest" do
207
+ before do
217
208
  User.preference :rate, :float, :default => 10.0
218
209
  end
219
-
220
- def test_should_type_cast_nil_values
210
+
211
+ it "test_should_type_cast_nil_values" do
221
212
  preference = new_preference(:name => 'rate', :value => nil)
222
213
  assert_nil preference.value
223
214
  end
224
-
225
- def test_should_type_cast_numeric_values
215
+
216
+ it "test_should_type_cast_numeric_values" do
226
217
  preference = new_preference(:name => 'rate', :value => 1.0)
227
218
  assert_equal 1.0, preference.value
228
-
219
+
229
220
  preference.value = "1.1"
230
221
  assert_equal 1.1, preference.value
231
222
  end
232
223
 
233
- def teardown
224
+ after do
234
225
  User.preference_definitions.delete('rate')
235
226
  end
236
227
  end
237
-
238
- class PreferenceWithSTIOwnerTest < ActiveSupport::TestCase
239
- def setup
228
+
229
+ #------------------------------------------------------------------------------
230
+ describe "PreferenceWithSTIOwnerTest" do
231
+ before do
240
232
  @manager = create_manager
241
233
  @preference = create_preference(:owner => @manager, :name => 'health_insurance', :value => true)
242
234
  end
243
-
244
- def test_should_have_an_owner
235
+
236
+ it "test_should_have_an_owner" do
245
237
  assert_equal @manager, @preference.owner
246
238
  end
247
-
248
- def test_should_have_an_owner_type
239
+
240
+ it "test_should_have_an_owner_type" do
249
241
  assert_equal 'Employee', @preference.owner_type
250
242
  end
251
-
252
- def test_should_have_a_definition
253
- assert_not_nil @preference.definition
243
+
244
+ it "test_should_have_a_definition" do
245
+ expect(@preference.definition.nil?).to eq false
254
246
  end
255
-
256
- def test_should_have_a_value
247
+
248
+ it "test_should_have_a_value" do
257
249
  assert_equal true, @preference.value
258
250
  end
259
251
  end