assert_equal custom_value.id, issue.custom_value_for(field).id
end
+ def test_should_not_update_custom_fields_on_changing_tracker_with_different_custom_fields
+ issue = Issue.new(:project_id => 1)
+ issue.attributes = {:tracker_id => 1, :author_id => 1, :status_id => 1, :subject => 'Test', :custom_field_values => {'2' => 'Test'}}
+ issue.save!
+
+ assert !Tracker.find(2).custom_field_ids.include?(2)
+
+ issue = Issue.find(issue.id)
+ issue.attributes = {:tracker_id => 2, :custom_field_values => {'1' => ''}}
+
+ issue = Issue.find(issue.id)
+ custom_value = issue.custom_value_for(2)
+ assert_not_nil custom_value
+ assert_equal 'Test', custom_value.value
+ end
+
def test_assigning_tracker_id_should_reload_custom_fields_values
issue = Issue.new(:project => Project.find(1))
assert issue.custom_field_values.empty?
custom_field_values.each do |custom_value|
custom_value.value = values[custom_value.custom_field_id.to_s] if values.has_key?(custom_value.custom_field_id.to_s)
end if values.is_a?(Hash)
- self.custom_values = custom_field_values
end
def custom_field_values
end
def save_custom_field_values
+ self.custom_values = custom_field_values
custom_field_values.each(&:save)
@custom_field_values_changed = false
@custom_field_values = nil