git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3139 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/0.9.0
def tracker_id=(tid) | def tracker_id=(tid) | ||||
self.tracker = nil | self.tracker = nil | ||||
write_attribute(:tracker_id, tid) | write_attribute(:tracker_id, tid) | ||||
result = write_attribute(:tracker_id, tid) | |||||
@custom_field_values = nil | |||||
result | |||||
end | end | ||||
# Overrides attributes= so that tracker_id gets assigned first | |||||
def attributes_with_tracker_first=(new_attributes, *args) | |||||
return if new_attributes.nil? | |||||
new_tracker_id = new_attributes['tracker_id'] || new_attributes[:tracker_id] | |||||
if new_tracker_id | |||||
self.tracker_id = new_tracker_id | |||||
end | |||||
self.attributes_without_tracker_first = new_attributes, *args | |||||
end | |||||
alias_method_chain :attributes=, :tracker_first | |||||
def estimated_hours=(h) | def estimated_hours=(h) | ||||
write_attribute :estimated_hours, (h.is_a?(String) ? h.to_hours : h) | write_attribute :estimated_hours, (h.is_a?(String) ? h.to_hours : h) | ||||
end | end |
assert_equal custom_value.id, issue.custom_value_for(field).id | assert_equal custom_value.id, issue.custom_value_for(field).id | ||||
end | end | ||||
def test_assigning_tracker_id_should_reload_custom_fields_values | |||||
issue = Issue.new(:project => Project.find(1)) | |||||
assert issue.custom_field_values.empty? | |||||
issue.tracker_id = 1 | |||||
assert issue.custom_field_values.any? | |||||
end | |||||
def test_assigning_attributes_should_assign_tracker_id_first | |||||
attributes = ActiveSupport::OrderedHash.new | |||||
attributes['custom_field_values'] = { '1' => 'MySQL' } | |||||
attributes['tracker_id'] = '1' | |||||
issue = Issue.new(:project => Project.find(1)) | |||||
issue.attributes = attributes | |||||
assert_not_nil issue.custom_value_for(1) | |||||
assert_equal 'MySQL', issue.custom_value_for(1).value | |||||
end | |||||
def test_should_update_issue_with_disabled_tracker | def test_should_update_issue_with_disabled_tracker | ||||
p = Project.find(1) | p = Project.find(1) | ||||
issue = Issue.find(1) | issue = Issue.find(1) |