OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openproject/features/step_definitions/planning_element_steps.rb

45 lines
1.4 KiB

#-- copyright
# OpenProject is a project management system.
#
# Copyright (C) 2012-2013 the OpenProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# See doc/COPYRIGHT.rdoc for more details.
#++
Given (/^there are the following planning elements(?: in project "([^"]*)")?:$/) do |project_name, table|
project = get_project(project_name)
table.map_headers! { |header| header.underscore.gsub(' ', '_') }
table.hashes.each do |type_attributes|
[
["planning_element_status", PlanningElementStatus],
["author", User],
["responsible", User],
["assigned_to", User],
["type", Type],
["fixed_version", Version],
["priority", IssuePriority],
["status", IssueStatus],
["parent", WorkPackage]
].each do |key, const|
if type_attributes[key].present?
type_attributes[key] = InstanceFinder.find(const, type_attributes[key])
else
type_attributes.delete(key)
end
end
# lookup the type by its name and replace it with the type
# if the cast is ommitted, the contents of type_attributes is interpreted as an int
11 years ago
unless type_attributes.has_key? :type
type_attributes[:type] = Type.where(name: type_attributes[:type].to_s).first
11 years ago
end
factory = FactoryGirl.create(:planning_element, type_attributes.merge(:project_id => project.id))
end
end