diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-01-10 17:21:34 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-01-10 17:21:34 +0000 |
commit | c0e67118263d8ff6e296f52e0f97cb6968cd94ae (patch) | |
tree | 12d9a28fc3e8c1d54ab223e369a17dfb9e3c8954 | |
parent | 77a72527d0745fee26b329576f421384b19d243f (diff) | |
download | redmine-c0e67118263d8ff6e296f52e0f97cb6968cd94ae.tar.gz redmine-c0e67118263d8ff6e296f52e0f97cb6968cd94ae.zip |
Adds some tests on project hierarchy methods.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/work@2254 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | nested_projects/test/fixtures/projects.yml | 29 | ||||
-rw-r--r-- | nested_projects/test/unit/project_test.rb | 36 |
2 files changed, 51 insertions, 14 deletions
diff --git a/nested_projects/test/fixtures/projects.yml b/nested_projects/test/fixtures/projects.yml index 5d2f38f51..e355e5da8 100644 --- a/nested_projects/test/fixtures/projects.yml +++ b/nested_projects/test/fixtures/projects.yml @@ -11,7 +11,7 @@ projects_001: identifier: ecookbook
parent_id:
lft: 1
- rgt: 8
+ rgt: 10
projects_002:
created_on: 2006-07-19 19:14:19 +02:00
name: OnlineStore
@@ -23,8 +23,8 @@ projects_002: is_public: false
identifier: onlinestore
parent_id:
- lft: 9
- rgt: 10
+ lft: 11
+ rgt: 12
projects_003:
created_on: 2006-07-19 19:15:21 +02:00
name: eCookbook Subproject 1
@@ -36,8 +36,8 @@ projects_003: is_public: true
identifier: subproject1
parent_id: 1
- lft: 4
- rgt: 5
+ lft: 6
+ rgt: 7
projects_004:
created_on: 2006-07-19 19:15:51 +02:00
name: eCookbook Subproject 2
@@ -49,8 +49,8 @@ projects_004: is_public: true
identifier: subproject2
parent_id: 1
- lft: 6
- rgt: 7
+ lft: 8
+ rgt: 9
projects_005:
created_on: 2006-07-19 19:15:51 +02:00
name: Private child of eCookbook
@@ -63,5 +63,18 @@ projects_005: identifier: private-child
parent_id: 1
lft: 2
- rgt: 3
+ rgt: 5
+projects_006:
+ created_on: 2006-07-19 19:15:51 +02:00
+ name: Child of private child
+ updated_on: 2006-07-19 19:17:07 +02:00
+ projects_count: 0
+ id: 6
+ description: This is a public subproject of a private project
+ homepage: ""
+ is_public: true
+ identifier: project6
+ parent_id: 5
+ lft: 3
+ rgt: 4
\ No newline at end of file diff --git a/nested_projects/test/unit/project_test.rb b/nested_projects/test/unit/project_test.rb index 229944832..6a143fae9 100644 --- a/nested_projects/test/unit/project_test.rb +++ b/nested_projects/test/unit/project_test.rb @@ -45,12 +45,6 @@ class ProjectTest < Test::Unit::TestCase assert_equal "activerecord_error_blank", @ecookbook.errors.on(:name)
end
- def test_public_projects
- public_projects = Project.find(:all, :conditions => ["is_public=?", true])
- assert_equal 3, public_projects.length
- assert_equal true, public_projects[0].is_public?
- end
-
def test_archive
user = @ecookbook.members.first.user
@ecookbook.archive
@@ -159,6 +153,36 @@ class ProjectTest < Test::Unit::TestCase assert_equal parent.children.sort_by(&:name), parent.children
end
+ def test_parent
+ p = Project.find(6).parent
+ assert p.is_a?(Project)
+ assert_equal 5, p.id
+ end
+
+ def test_ancestors
+ a = Project.find(6).ancestors
+ assert a.first.is_a?(Project)
+ assert_equal [1, 5], a.collect(&:id)
+ end
+
+ def test_root
+ r = Project.find(6).root
+ assert r.is_a?(Project)
+ assert_equal 1, r.id
+ end
+
+ def test_children
+ c = Project.find(1).children
+ assert c.first.is_a?(Project)
+ assert_equal [5, 3, 4], c.collect(&:id)
+ end
+
+ def test_descendants
+ d = Project.find(1).descendants
+ assert d.first.is_a?(Project)
+ assert_equal [5, 6, 3, 4], d.collect(&:id)
+ end
+
def test_rolled_up_trackers
parent = Project.find(1)
parent.trackers = Tracker.find([1,2])
|