def put_attributes(domain_name, item_name, attributes, options = {})
options[:expect] = {} unless options[:expect]
options[:replace] = [] unless options[:replace]
response = Excon::Response.new
if self.data[:domains][domain_name]
options[:expect].each do |ck, cv|
if self.data[:domains][domain_name][item_name][ck] != [cv]
response.status = 409
raise(Excon::Errors.status_error({:expects => 200}, response))
end
end
attributes.each do |key, value|
self.data[:domains][domain_name][item_name] ||= {}
self.data[:domains][domain_name][item_name][key.to_s] = [] unless self.data[:domains][domain_name][item_name][key.to_s]
if options[:replace].include?(key.to_s)
self.data[:domains][domain_name][item_name][key.to_s] = [*value].map {|x| x.to_s}
else
self.data[:domains][domain_name][item_name][key.to_s] += [*value].map {|x| x.to_s}
end
end
response.status = 200
response.body = {
'BoxUsage' => Fog::AWS::Mock.box_usage,
'RequestId' => Fog::AWS::Mock.request_id
}
else
response.status = 400
raise(Excon::Errors.status_error({:expects => 200}, response))
end
response
end