Converted Project#copy test to use shoulda

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2931 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Eric Davis 2009-10-19 00:07:23 +00:00
parent 35333367df
commit 548d5a21f6
1 changed files with 55 additions and 52 deletions

View File

@ -289,67 +289,70 @@ class ProjectTest < ActiveSupport::TestCase
# Default attributes # Default attributes
assert_equal 1, copied_project.status assert_equal 1, copied_project.status
end end
# Context: Project#copy
def test_copy_should_copy_issues
# Setup
ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
source_project = Project.find(2)
Project.destroy_all :identifier => "copy-test"
project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
project.trackers = source_project.trackers
assert project.valid?
assert project.issues.empty?
assert project.copy(source_project)
# Tests context "#copy" do
assert_equal source_project.issues.size, project.issues.size
project.issues.each do |issue| should "copy issues" do
assert issue.valid? # Setup
assert ! issue.assigned_to.blank? ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
assert_equal project, issue.project source_project = Project.find(2)
Project.destroy_all :identifier => "copy-test"
project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
project.trackers = source_project.trackers
assert project.valid?
assert project.issues.empty?
assert project.copy(source_project)
# Tests
assert_equal source_project.issues.size, project.issues.size
project.issues.each do |issue|
assert issue.valid?
assert ! issue.assigned_to.blank?
assert_equal project, issue.project
end
end end
end
def test_copy_should_copy_members
# Setup
ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
source_project = Project.find(2)
project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
project.trackers = source_project.trackers
project.enabled_modules = source_project.enabled_modules
assert project.valid?
assert project.members.empty? should "copy members" do
assert project.copy(source_project) # Setup
ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
source_project = Project.find(2)
project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
project.trackers = source_project.trackers
project.enabled_modules = source_project.enabled_modules
assert project.valid?
# Tests assert project.members.empty?
assert_equal source_project.members.size, project.members.size assert project.copy(source_project)
project.members.each do |member|
assert member # Tests
assert_equal project, member.project assert_equal source_project.members.size, project.members.size
project.members.each do |member|
assert member
assert_equal project, member.project
end
end end
end
def test_copy_should_copy_project_level_queries should "copy project specific queries" do
# Setup # Setup
ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests ProjectCustomField.destroy_all # Custom values are a mess to isolate in tests
source_project = Project.find(2) source_project = Project.find(2)
project = Project.new(:name => 'Copy Test', :identifier => 'copy-test') project = Project.new(:name => 'Copy Test', :identifier => 'copy-test')
project.trackers = source_project.trackers project.trackers = source_project.trackers
project.enabled_modules = source_project.enabled_modules project.enabled_modules = source_project.enabled_modules
assert project.valid? assert project.valid?
assert project.queries.empty? assert project.queries.empty?
assert project.copy(source_project) assert project.copy(source_project)
# Tests # Tests
assert_equal source_project.queries.size, project.queries.size assert_equal source_project.queries.size, project.queries.size
project.queries.each do |query| project.queries.each do |query|
assert query assert query
assert_equal project, query.project assert_equal project, query.project
end
end end
end end
end end