-
-
Save SafeAF/f8fa2a0782c572fc3e97 to your computer and use it in GitHub Desktop.
Mongoid standalone/embedded
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'mongoid' | |
require 'minitest/autorun' | |
Mongoid.configure do |config| | |
config.master = Mongo::Connection.new.db('basket_test') | |
end | |
class Basket | |
include Mongoid::Document | |
recursively_embeds_many | |
embeds_one :fruit | |
end | |
class Fruit | |
include Mongoid::Document | |
field :name | |
end | |
class BasketTest < MiniTest::Unit::TestCase | |
def test_an_embedded_basket_can_have_a_fruit | |
basket = Basket.create(fruit: Fruit.new(name: 'apple'), child_baskets: [Basket.new]) | |
basket.reload | |
assert_equal 1, basket.child_baskets.size | |
embedded_basket = basket.child_baskets.first | |
embedded_basket.fruit = Fruit.new(name: 'banana') | |
embedded_basket.save! | |
basket.reload | |
assert ! basket.child_baskets.first.fruit.nil?, | |
'The embedded basket\'s fruit is lost.' | |
end | |
def test_fruits_can_be_standalone_as_well | |
Fruit.create(name: 'apple') | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment