aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-09-09 08:01:44 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-09-09 08:01:44 +0000
commitb0630673213ed2bee99883cb9197ddf6457a3fac (patch)
treec28f2571c88c42e07bf9548313cabe66c196d0a7 /activerecord/test
parentc8e0e10e28948bce93ea9f28524f917d9e0ea2da (diff)
downloadrails-b0630673213ed2bee99883cb9197ddf6457a3fac.tar.gz
rails-b0630673213ed2bee99883cb9197ddf6457a3fac.tar.bz2
rails-b0630673213ed2bee99883cb9197ddf6457a3fac.zip
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
Diffstat (limited to 'activerecord/test')
-rw-r--r--activerecord/test/fixtures/mixins.yml12
-rw-r--r--activerecord/test/mixin_test.rb30
2 files changed, 39 insertions, 3 deletions
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