issue = arg.is_a?(Issue) ? arg : Issue.find(arg)
self.attributes = issue.attributes.dup.except("id", "created_on", "updated_on")
self.custom_values = issue.custom_values.collect {|v| v.clone}
+ self.status = issue.status
self
end
assert_equal orig.tracker, issue.tracker
assert_equal orig.custom_values.first.value, issue.custom_values.first.value
end
+
+ def test_copy_should_copy_status
+ orig = Issue.find(8)
+ assert orig.status != IssueStatus.default
+
+ issue = Issue.new.copy_from(orig)
+ assert issue.save
+ issue.reload
+ assert_equal orig.status, issue.status
+ end
def test_should_close_duplicates
# Create 3 issues
end
should "copy issues" do
+ @source_project.issues << Issue.generate!(:status_id => 5,
+ :subject => "copy issue status",
+ :tracker_id => 1,
+ :assigned_to_id => 2,
+ :project_id => @source_project.id)
assert @project.valid?
assert @project.issues.empty?
assert @project.copy(@source_project)
assert ! issue.assigned_to.blank?
assert_equal @project, issue.project
end
+
+ copied_issue = @project.issues.first(:conditions => {:subject => "copy issue status"})
+ assert copied_issue
+ assert copied_issue.status
+ assert_equal "Closed", copied_issue.status.name
end
should "change the new issues to use the copied version" do