aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2007-01-12 05:33:09 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2007-01-12 05:33:09 +0000
commit8d3ff3abc757dee8c6538c1f26f839882786a5cc (patch)
tree7784271fea307ed5762c1bad32d905c13a7f2629 /activerecord/test
parentef4ac31de3f310c6426a6d9ebc86b4810ac6325b (diff)
downloadrails-8d3ff3abc757dee8c6538c1f26f839882786a5cc.tar.gz
rails-8d3ff3abc757dee8c6538c1f26f839882786a5cc.tar.bz2
rails-8d3ff3abc757dee8c6538c1f26f839882786a5cc.zip
acts_as_nested_set works with single-table inheritance. Closes #6030.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5889 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/fixtures/mixin.rb10
-rw-r--r--activerecord/test/fixtures/mixins.yml18
-rw-r--r--activerecord/test/mixin_nested_set_test.rb16
3 files changed, 42 insertions, 2 deletions
diff --git a/activerecord/test/fixtures/mixin.rb b/activerecord/test/fixtures/mixin.rb
index 1f200da62d..7f877a8ce8 100644
--- a/activerecord/test/fixtures/mixin.rb
+++ b/activerecord/test/fixtures/mixin.rb
@@ -51,3 +51,13 @@ class NestedSetWithSymbolScope < Mixin
def self.table_name() "mixins" end
end
+
+class NestedSetSuperclass < Mixin
+ acts_as_nested_set :scope => :root
+
+ def self.table_name() "mixins" end
+end
+
+class NestedSetSubclass < NestedSetSuperclass
+
+end
diff --git a/activerecord/test/fixtures/mixins.yml b/activerecord/test/fixtures/mixins.yml
index d7a0b97295..881b97c1d2 100644
--- a/activerecord/test/fixtures/mixins.yml
+++ b/activerecord/test/fixtures/mixins.yml
@@ -77,6 +77,24 @@ set_<%= counter %>:
type: NestedSet
<% end %>
+# Nested set with STI
+<%
+[ [3100, 0, 1, 10, "NestedSetSuperclass"],
+ [3101, 3100, 2, 5, "NestedSetSubclass"],
+ [3102, 3101, 3, 4, "NestedSetSuperclass"],
+ [3103, 3100, 6, 9, "NestedSetSuperclass"],
+ [3104, 3103, 7, 8, "NestedSetSubclass"]
+].each do |sti| %>
+sti_set_<%= sti[0] %>:
+ id: <%= sti[0] %>
+ parent_id: <%= sti[1] %>
+ lft: <%= sti[2] %>
+ rgt: <%= sti[3] %>
+ type: <%= sti[4] %>
+ root_id: 3100
+
+<% end %>
+
# Big old set
<%
[[4001, 0, 1, 20],
diff --git a/activerecord/test/mixin_nested_set_test.rb b/activerecord/test/mixin_nested_set_test.rb
index 8764a6ac49..7ed9075bda 100644
--- a/activerecord/test/mixin_nested_set_test.rb
+++ b/activerecord/test/mixin_nested_set_test.rb
@@ -178,7 +178,19 @@ class MixinNestedSetTest < Test::Unit::TestCase
mixins(:set_1).add_child mixins(:set_4)
assert_equal( 3, mixins(:set_1).all_children.length )
-
-
+ end
+
+ def test_inheritance
+ parent = mixins(:sti_set_3100)
+ child = mixins(:sti_set_3101)
+ grandchild = mixins(:sti_set_3102)
+ assert_equal 5, parent.full_set.size
+ assert_equal 2, child.full_set.size
+ assert_equal 4, parent.all_children.size
+ assert_equal 1, child.all_children.size
+ assert_equal 2, parent.direct_children.size
+ assert_equal 1, child.direct_children.size
+ child.destroy
+ assert_equal 3, parent.full_set.size
end
end