Riot assertions for Mongoid
The best way to explain is always with an example.
So given a model like:
class Photo
include Mongoid::Document
field :title, :type => String
field :caption, :type => String, :default => ""
referenced_in, :account
references_many, :comments
embedded_in, :customer, :class_name => "Person"
validates_presence_of :caption
validates :states, :inclusion_of_set => { :in => [1, 2, 3] }
key :title, :caption
end
Your riot test would look something like:
context "Photo Model" do
context 'definition' do
setup { Photo }
# field associations
asserts_topic.has_field :title, :type => String
asserts_topic.has_field :caption, :type => String, :default => ""
# association assertions
asserts_topic.has_association :referenced_in, :account
asserts_topic.has_association :references_many, :comments
asserts_topic.has_association :embedded_in, :customer, :class_name => "Person"
# validation assertions
asserts_topic.has_validation :validates_presence_of, :caption
# support for custom validators, see the tests for a complete example
asserts_topic.has_validation :validates, :states, :inclusion_of_set => { :in => [1, 2, 3] }
# key assertions
asserts_topic.has_key :title, :caption
end
end
To use riot-mongoid with Mongoid 1.9.1 check out the legacy branch
To use riot-mongoid with Mongoid 2.1.x do:
gem install riot-mongoid
or check out the master branch
- Fork the project.
- Make your feature addition or bug fix.
- Add tests for it. This is important so I don't break it in a future version unintentionally.
- Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
- Send me a pull request. Bonus points for topic branches.
Copyright (c) 2011 gabrielg, Arthur Chiu. See LICENSE for details.