From b0630673213ed2bee99883cb9197ddf6457a3fac Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 9 Sep 2005 08:01:44 +0000 Subject: Added the instance methods #root and #ancestors on acts_as_tree and fixed siblings to not include the current node #2142, #2140 [coffee2code] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2163 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/test/fixtures/mixins.yml | 12 +++++++++++- activerecord/test/mixin_test.rb | 30 ++++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 3 deletions(-) (limited to 'activerecord/test') diff --git a/activerecord/test/fixtures/mixins.yml b/activerecord/test/fixtures/mixins.yml index 9f8e1ee8de..1d990c2e8e 100644 --- a/activerecord/test/fixtures/mixins.yml +++ b/activerecord/test/fixtures/mixins.yml @@ -2,7 +2,7 @@ tree_1: id: 1001 type: TreeMixin - parent_id: 0 + parent_id: tree_2: id: 1002 @@ -18,6 +18,16 @@ tree_4: id: 1004 type: TreeMixin parent_id: 1001 + +tree2_1: + id: 1005 + type: TreeMixin + parent_id: + +tree3_1: + id: 1006 + type: TreeMixin + parent_id: # List mixins diff --git a/activerecord/test/mixin_test.rb b/activerecord/test/mixin_test.rb index a6f759432f..dd29d94ab1 100644 --- a/activerecord/test/mixin_test.rb +++ b/activerecord/test/mixin_test.rb @@ -214,6 +214,13 @@ class TreeTest < Test::Unit::TestCase assert_equal mixins(:tree_4).children, [] end + def test_has_parent + assert_equal false, mixins(:tree_1).has_parent? + assert_equal true, mixins(:tree_2).has_parent? + assert_equal true, mixins(:tree_3).has_parent? + assert_equal true, mixins(:tree_4).has_parent? + end + def test_parent assert_equal mixins(:tree_2).parent, mixins(:tree_1) assert_equal mixins(:tree_2).parent, mixins(:tree_4).parent @@ -221,11 +228,14 @@ class TreeTest < Test::Unit::TestCase end def test_delete - assert_equal 4, TreeMixin.count + assert_equal 6, TreeMixin.count mixins(:tree_1).destroy + assert_equal 2, TreeMixin.count + mixins(:tree2_1).destroy + mixins(:tree3_1).destroy assert_equal 0, TreeMixin.count end - + def test_insert @extra = mixins(:tree_1).children.create @@ -239,6 +249,22 @@ class TreeTest < Test::Unit::TestCase assert mixins(:tree_1).children.include?(mixins(:tree_4)) end + def test_root + assert_equal mixins(:tree_1), TreeMixin.root + end + + def test_roots + assert_equal [mixins(:tree_1), mixins(:tree2_1), mixins(:tree3_1)], TreeMixin.roots + end + + def test_siblings + assert_equal [mixins(:tree2_1), mixins(:tree3_1)], mixins(:tree_1).siblings + assert_equal [mixins(:tree_4)], mixins(:tree_2).siblings + assert_equal [], mixins(:tree_3).siblings + assert_equal [mixins(:tree_2)], mixins(:tree_4).siblings + assert_equal [mixins(:tree_1), mixins(:tree3_1)], mixins(:tree2_1).siblings + assert_equal [mixins(:tree_1), mixins(:tree2_1)], mixins(:tree3_1).siblings + end end class TouchTest < Test::Unit::TestCase -- cgit v1.2.3