sharing != 'none'
end
+ def deletable?
+ fixed_issues.empty? && !referenced_by_a_custom_field?
+ end
+
private
def load_issue_counts
progress
end
end
+
+ def referenced_by_a_custom_field?
+ CustomValue.joins(:custom_field).
+ where(:value => id.to_s, :custom_fields => {:field_format => 'version'}).any?
+ end
end
@generated_version_name.succ!
version = Version.new(attributes)
version.name = @generated_version_name.dup if version.name.blank?
+ version.project ||= Project.find(1)
yield version if block_given?
version.save!
version
assert_equal @version, project_2_issue.fixed_version
end
+ def test_deletable_should_return_true_when_not_referenced
+ version = Version.generate!
+
+ assert_equal true, version.deletable?
+ end
+
+ def test_deletable_should_return_false_when_referenced_by_an_issue
+ version = Version.generate!
+ Issue.generate!(:fixed_version => version)
+
+ assert_equal false, version.deletable?
+ end
+
+ def test_deletable_should_return_false_when_referenced_by_a_custom_field
+ version = Version.generate!
+ field = IssueCustomField.generate!(:field_format => 'version')
+ value = CustomValue.create!(:custom_field => field, :customized => Issue.first, :value => version.id)
+
+ assert_equal false, version.deletable?
+ end
+
private
def add_issue(version, attributes={})