ratnikov-shoulda 2.0.6.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 (103) hide show
  1. data/CONTRIBUTION_GUIDELINES.rdoc +12 -0
  2. data/MIT-LICENSE +22 -0
  3. data/README.rdoc +146 -0
  4. data/Rakefile +72 -0
  5. data/bin/convert_to_should_syntax +42 -0
  6. data/lib/shoulda/action_mailer/assertions.rb +38 -0
  7. data/lib/shoulda/action_mailer.rb +10 -0
  8. data/lib/shoulda/active_record/assertions.rb +90 -0
  9. data/lib/shoulda/active_record/macros.rb +748 -0
  10. data/lib/shoulda/active_record.rb +12 -0
  11. data/lib/shoulda/assertions.rb +47 -0
  12. data/lib/shoulda/context.rb +326 -0
  13. data/lib/shoulda/controller/formats/html.rb +199 -0
  14. data/lib/shoulda/controller/formats/xml.rb +168 -0
  15. data/lib/shoulda/controller/helpers.rb +62 -0
  16. data/lib/shoulda/controller/macros.rb +336 -0
  17. data/lib/shoulda/controller/resource_options.rb +233 -0
  18. data/lib/shoulda/controller.rb +30 -0
  19. data/lib/shoulda/helpers.rb +8 -0
  20. data/lib/shoulda/macros.rb +73 -0
  21. data/lib/shoulda/private_helpers.rb +20 -0
  22. data/lib/shoulda/proc_extensions.rb +14 -0
  23. data/lib/shoulda/rails.rb +19 -0
  24. data/lib/shoulda/tasks/list_tests.rake +24 -0
  25. data/lib/shoulda/tasks/yaml_to_shoulda.rake +28 -0
  26. data/lib/shoulda/tasks.rb +3 -0
  27. data/lib/shoulda.rb +21 -0
  28. data/rails/init.rb +1 -0
  29. data/test/README +36 -0
  30. data/test/fail_macros.rb +34 -0
  31. data/test/fixtures/addresses.yml +3 -0
  32. data/test/fixtures/friendships.yml +0 -0
  33. data/test/fixtures/posts.yml +5 -0
  34. data/test/fixtures/products.yml +0 -0
  35. data/test/fixtures/taggings.yml +0 -0
  36. data/test/fixtures/tags.yml +9 -0
  37. data/test/fixtures/users.yml +6 -0
  38. data/test/functional/posts_controller_test.rb +108 -0
  39. data/test/functional/users_controller_test.rb +38 -0
  40. data/test/other/context_test.rb +161 -0
  41. data/test/other/convert_to_should_syntax_test.rb +63 -0
  42. data/test/other/helpers_test.rb +183 -0
  43. data/test/other/private_helpers_test.rb +34 -0
  44. data/test/other/should_test.rb +266 -0
  45. data/test/rails_root/app/controllers/application.rb +25 -0
  46. data/test/rails_root/app/controllers/posts_controller.rb +86 -0
  47. data/test/rails_root/app/controllers/users_controller.rb +84 -0
  48. data/test/rails_root/app/helpers/application_helper.rb +3 -0
  49. data/test/rails_root/app/helpers/posts_helper.rb +2 -0
  50. data/test/rails_root/app/helpers/users_helper.rb +2 -0
  51. data/test/rails_root/app/models/address.rb +7 -0
  52. data/test/rails_root/app/models/flea.rb +3 -0
  53. data/test/rails_root/app/models/friendship.rb +4 -0
  54. data/test/rails_root/app/models/post.rb +12 -0
  55. data/test/rails_root/app/models/product.rb +12 -0
  56. data/test/rails_root/app/models/tag.rb +8 -0
  57. data/test/rails_root/app/models/tagging.rb +4 -0
  58. data/test/rails_root/app/models/user.rb +28 -0
  59. data/test/rails_root/app/views/layouts/posts.rhtml +19 -0
  60. data/test/rails_root/app/views/layouts/users.rhtml +17 -0
  61. data/test/rails_root/app/views/layouts/wide.html.erb +1 -0
  62. data/test/rails_root/app/views/posts/edit.rhtml +27 -0
  63. data/test/rails_root/app/views/posts/index.rhtml +25 -0
  64. data/test/rails_root/app/views/posts/new.rhtml +26 -0
  65. data/test/rails_root/app/views/posts/show.rhtml +18 -0
  66. data/test/rails_root/app/views/users/edit.rhtml +22 -0
  67. data/test/rails_root/app/views/users/index.rhtml +22 -0
  68. data/test/rails_root/app/views/users/new.rhtml +21 -0
  69. data/test/rails_root/app/views/users/show.rhtml +13 -0
  70. data/test/rails_root/config/boot.rb +109 -0
  71. data/test/rails_root/config/database.yml +4 -0
  72. data/test/rails_root/config/environment.rb +14 -0
  73. data/test/rails_root/config/environments/sqlite3.rb +0 -0
  74. data/test/rails_root/config/initializers/new_rails_defaults.rb +15 -0
  75. data/test/rails_root/config/initializers/shoulda.rb +8 -0
  76. data/test/rails_root/config/routes.rb +6 -0
  77. data/test/rails_root/db/migrate/001_create_users.rb +19 -0
  78. data/test/rails_root/db/migrate/002_create_posts.rb +13 -0
  79. data/test/rails_root/db/migrate/003_create_taggings.rb +12 -0
  80. data/test/rails_root/db/migrate/004_create_tags.rb +11 -0
  81. data/test/rails_root/db/migrate/005_create_dogs.rb +12 -0
  82. data/test/rails_root/db/migrate/006_create_addresses.rb +14 -0
  83. data/test/rails_root/db/migrate/007_create_fleas.rb +11 -0
  84. data/test/rails_root/db/migrate/008_create_dogs_fleas.rb +12 -0
  85. data/test/rails_root/db/migrate/009_create_products.rb +17 -0
  86. data/test/rails_root/db/migrate/010_create_friendships.rb +14 -0
  87. data/test/rails_root/db/schema.rb +0 -0
  88. data/test/rails_root/public/404.html +30 -0
  89. data/test/rails_root/public/422.html +30 -0
  90. data/test/rails_root/public/500.html +30 -0
  91. data/test/rails_root/script/console +3 -0
  92. data/test/rails_root/script/generate +3 -0
  93. data/test/test_helper.rb +33 -0
  94. data/test/unit/address_test.rb +10 -0
  95. data/test/unit/dog_test.rb +10 -0
  96. data/test/unit/flea_test.rb +6 -0
  97. data/test/unit/friendship_test.rb +6 -0
  98. data/test/unit/post_test.rb +19 -0
  99. data/test/unit/product_test.rb +27 -0
  100. data/test/unit/tag_test.rb +14 -0
  101. data/test/unit/tagging_test.rb +6 -0
  102. data/test/unit/user_test.rb +60 -0
  103. metadata +189 -0
@@ -0,0 +1,60 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class UserTest < Test::Unit::TestCase
4
+ fixtures :all
5
+
6
+ should_have_many :posts
7
+ should_have_many :dogs
8
+
9
+ should_have_many :friendships
10
+ should_have_many :friends
11
+
12
+ should_have_one :address
13
+ should_have_one :address, :dependent => :destroy
14
+
15
+ should_have_indices :email, :name
16
+ should_have_index :age
17
+ should_have_index [:email, :name], :unique => true
18
+ should_have_index :age, :unique => false
19
+
20
+ should_fail do
21
+ should_have_index :phone
22
+ should_have_index :email, :unique => false
23
+ should_have_index :age, :unique => true
24
+ end
25
+
26
+ should_have_named_scope :old, :conditions => "age > 50"
27
+ should_have_named_scope :eighteen, :conditions => { :age => 18 }
28
+
29
+ should_have_named_scope 'recent(5)', :limit => 5
30
+ should_have_named_scope 'recent(1)', :limit => 1
31
+ should_have_named_scope 'recent_via_method(7)', :limit => 7
32
+
33
+ context "when given an instance variable" do
34
+ setup { @count = 2 }
35
+ should_have_named_scope 'recent(@count)', :limit => 2
36
+ end
37
+
38
+ should_not_allow_values_for :email, "blah", "b lah"
39
+ should_allow_values_for :email, "a@b.com", "asdf@asdf.com"
40
+ should_ensure_length_in_range :email, 1..100
41
+ should_ensure_value_in_range :age, 1..100
42
+ should_protect_attributes :password
43
+ should_have_class_methods :find, :destroy
44
+ should_have_instance_methods :email, :age, :email=, :valid?
45
+ should_have_db_columns :name, :email, :age
46
+ should_have_db_column :id, :type => "integer", :primary => true
47
+ should_have_db_column :email, :type => "string", :default => nil, :precision => nil, :limit => 255,
48
+ :null => true, :primary => false, :scale => nil, :sql_type => 'varchar(255)'
49
+ should_require_acceptance_of :eula
50
+ should_require_unique_attributes :email, :scoped_to => :name, :case_sensitive => false
51
+
52
+ should_ensure_length_is :ssn, 9, :message => "Social Security Number is not the right length"
53
+ should_only_allow_numeric_values_for :ssn
54
+
55
+ should_have_readonly_attributes :name
56
+
57
+ should_fail do
58
+ should_protect_attributes :name, :age
59
+ end
60
+ end
metadata ADDED
@@ -0,0 +1,189 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ratnikov-shoulda
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.6.1
5
+ platform: ruby
6
+ authors:
7
+ - Tammer Saleh
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-12-10 00:00:00 -08:00
13
+ default_executable: convert_to_should_syntax
14
+ dependencies: []
15
+
16
+ description:
17
+ email: tsaleh@thoughtbot.com
18
+ executables:
19
+ - convert_to_should_syntax
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README.rdoc
24
+ - CONTRIBUTION_GUIDELINES.rdoc
25
+ files:
26
+ - CONTRIBUTION_GUIDELINES.rdoc
27
+ - MIT-LICENSE
28
+ - Rakefile
29
+ - README.rdoc
30
+ - bin/convert_to_should_syntax
31
+ - lib/shoulda
32
+ - lib/shoulda/action_mailer
33
+ - lib/shoulda/action_mailer/assertions.rb
34
+ - lib/shoulda/action_mailer.rb
35
+ - lib/shoulda/active_record
36
+ - lib/shoulda/active_record/assertions.rb
37
+ - lib/shoulda/active_record/macros.rb
38
+ - lib/shoulda/active_record.rb
39
+ - lib/shoulda/assertions.rb
40
+ - lib/shoulda/context.rb
41
+ - lib/shoulda/controller
42
+ - lib/shoulda/controller/formats
43
+ - lib/shoulda/controller/formats/html.rb
44
+ - lib/shoulda/controller/formats/xml.rb
45
+ - lib/shoulda/controller/helpers.rb
46
+ - lib/shoulda/controller/macros.rb
47
+ - lib/shoulda/controller/resource_options.rb
48
+ - lib/shoulda/controller.rb
49
+ - lib/shoulda/helpers.rb
50
+ - lib/shoulda/macros.rb
51
+ - lib/shoulda/private_helpers.rb
52
+ - lib/shoulda/proc_extensions.rb
53
+ - lib/shoulda/rails.rb
54
+ - lib/shoulda/tasks
55
+ - lib/shoulda/tasks/list_tests.rake
56
+ - lib/shoulda/tasks/yaml_to_shoulda.rake
57
+ - lib/shoulda/tasks.rb
58
+ - lib/shoulda.rb
59
+ - rails/init.rb
60
+ - test/fail_macros.rb
61
+ - test/fixtures
62
+ - test/fixtures/addresses.yml
63
+ - test/fixtures/friendships.yml
64
+ - test/fixtures/posts.yml
65
+ - test/fixtures/products.yml
66
+ - test/fixtures/taggings.yml
67
+ - test/fixtures/tags.yml
68
+ - test/fixtures/users.yml
69
+ - test/functional
70
+ - test/functional/posts_controller_test.rb
71
+ - test/functional/users_controller_test.rb
72
+ - test/other
73
+ - test/other/context_test.rb
74
+ - test/other/convert_to_should_syntax_test.rb
75
+ - test/other/helpers_test.rb
76
+ - test/other/private_helpers_test.rb
77
+ - test/other/should_test.rb
78
+ - test/rails_root
79
+ - test/rails_root/app
80
+ - test/rails_root/app/controllers
81
+ - test/rails_root/app/controllers/application.rb
82
+ - test/rails_root/app/controllers/posts_controller.rb
83
+ - test/rails_root/app/controllers/users_controller.rb
84
+ - test/rails_root/app/helpers
85
+ - test/rails_root/app/helpers/application_helper.rb
86
+ - test/rails_root/app/helpers/posts_helper.rb
87
+ - test/rails_root/app/helpers/users_helper.rb
88
+ - test/rails_root/app/models
89
+ - test/rails_root/app/models/address.rb
90
+ - test/rails_root/app/models/dog.rb
91
+ - test/rails_root/app/models/flea.rb
92
+ - test/rails_root/app/models/friendship.rb
93
+ - test/rails_root/app/models/post.rb
94
+ - test/rails_root/app/models/product.rb
95
+ - test/rails_root/app/models/tag.rb
96
+ - test/rails_root/app/models/tagging.rb
97
+ - test/rails_root/app/models/user.rb
98
+ - test/rails_root/app/views
99
+ - test/rails_root/app/views/layouts
100
+ - test/rails_root/app/views/layouts/posts.rhtml
101
+ - test/rails_root/app/views/layouts/users.rhtml
102
+ - test/rails_root/app/views/layouts/wide.html.erb
103
+ - test/rails_root/app/views/posts
104
+ - test/rails_root/app/views/posts/edit.rhtml
105
+ - test/rails_root/app/views/posts/index.rhtml
106
+ - test/rails_root/app/views/posts/new.rhtml
107
+ - test/rails_root/app/views/posts/show.rhtml
108
+ - test/rails_root/app/views/users
109
+ - test/rails_root/app/views/users/edit.rhtml
110
+ - test/rails_root/app/views/users/index.rhtml
111
+ - test/rails_root/app/views/users/new.rhtml
112
+ - test/rails_root/app/views/users/show.rhtml
113
+ - test/rails_root/config
114
+ - test/rails_root/config/boot.rb
115
+ - test/rails_root/config/database.yml
116
+ - test/rails_root/config/environment.rb
117
+ - test/rails_root/config/environments
118
+ - test/rails_root/config/environments/sqlite3.rb
119
+ - test/rails_root/config/initializers
120
+ - test/rails_root/config/initializers/new_rails_defaults.rb
121
+ - test/rails_root/config/initializers/shoulda.rb
122
+ - test/rails_root/config/routes.rb
123
+ - test/rails_root/db
124
+ - test/rails_root/db/migrate
125
+ - test/rails_root/db/migrate/001_create_users.rb
126
+ - test/rails_root/db/migrate/002_create_posts.rb
127
+ - test/rails_root/db/migrate/003_create_taggings.rb
128
+ - test/rails_root/db/migrate/004_create_tags.rb
129
+ - test/rails_root/db/migrate/005_create_dogs.rb
130
+ - test/rails_root/db/migrate/006_create_addresses.rb
131
+ - test/rails_root/db/migrate/007_create_fleas.rb
132
+ - test/rails_root/db/migrate/008_create_dogs_fleas.rb
133
+ - test/rails_root/db/migrate/009_create_products.rb
134
+ - test/rails_root/db/migrate/010_create_friendships.rb
135
+ - test/rails_root/db/schema.rb
136
+ - test/rails_root/log
137
+ - test/rails_root/log/sqlite3.log
138
+ - test/rails_root/public
139
+ - test/rails_root/public/404.html
140
+ - test/rails_root/public/422.html
141
+ - test/rails_root/public/500.html
142
+ - test/rails_root/script
143
+ - test/rails_root/script/console
144
+ - test/rails_root/script/generate
145
+ - test/rails_root/vendor
146
+ - test/rails_root/vendor/plugins
147
+ - test/README
148
+ - test/test_helper.rb
149
+ - test/unit
150
+ - test/unit/address_test.rb
151
+ - test/unit/dog_test.rb
152
+ - test/unit/flea_test.rb
153
+ - test/unit/friendship_test.rb
154
+ - test/unit/post_test.rb
155
+ - test/unit/product_test.rb
156
+ - test/unit/tag_test.rb
157
+ - test/unit/tagging_test.rb
158
+ - test/unit/user_test.rb
159
+ has_rdoc: true
160
+ homepage: http://thoughtbot.com/projects/shoulda
161
+ post_install_message:
162
+ rdoc_options:
163
+ - --line-numbers
164
+ - --inline-source
165
+ - --main
166
+ - README.rdoc
167
+ require_paths:
168
+ - lib
169
+ required_ruby_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: "0"
174
+ version:
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: "0"
180
+ version:
181
+ requirements: []
182
+
183
+ rubyforge_project: shoulda
184
+ rubygems_version: 1.2.0
185
+ signing_key:
186
+ specification_version: 2
187
+ summary: Making tests easy on the fingers and eyes
188
+ test_files: []
189
+