Sha256: 01fbe9448904b5f2af1a1ee0c9afed55df3ce38a40a5e8b61ebe0136f5b1ff72
Contents?: true
Size: 1.8 KB
Versions: 2
Compression:
Stored size: 1.8 KB
Contents
require File.join(File.dirname(__FILE__), 'CONFIG.rb') require 'rubygems' require 'facets' require 'test/unit' require 'og' require 'glue/timestamped' class TC_JoinsMany < Test::Unit::TestCase # :nodoc: all include Og class Item property :name, String joins_many Tag def to_s @name end end class Tag property :name, String def to_s @name end end def setup $og1.manage_classes(Item, Tag) @conn = $og1.conn end def test_all (1..3).each do |n| t = Tag.new t.name = "Tag_#{n}" t.save end assert_equal 3, Tag.all.size # see if i can get a tag back from th db t = Tag.find_by_name("Tag_1") assert_not_nil t i1 = Item.new i1.name = "Item_1" i1.save i1.add_tag(Tag.find_by_name("Tag_1")) i1.add_tag(Tag.find_by_name("Tag_2")) i1.save i2 = Item.new i2.name = "Item_2" i2.save i2.add_tag(Tag.find_by_name("Tag_2")) i2.add_tag(Tag.find_by_name("Tag_3")) i2.save # count SQL, note that the join table will change when test class changes sql = 'SELECT count(*) FROM ogj_tc_joinsmany_item_tc_joinsmany_tag' # after inserting 2 tags into the each of the 2 items, 4 relations assert_equal 4, @conn.query(sql).first_value.to_i i1.delete(true) i2.delete(true) # after deleting the 2 items, the relations are invalid assert_equal 0, @conn.query(sql).first_value.to_i # the following code is new and should not trigger an exception due to # existing items in the mapping table assert_nothing_raised do i3 = Item.new i3.name = "Item_3" i3.save i3.add_tag(Tag.find_by_name("Tag_1")) i3.add_tag(Tag.find_by_name("Tag_2")) i3.save end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
og-0.41.0 | test/og/tc_joins_many.rb |
og-0.40.0 | test/og/tc_joins_many.rb |