class Softlayer::Mock
Attributes
id[RW]
Public Class Methods
add_attributes(attrs)
click to toggle source
# File lib/softlayer/mock.rb, line 12 def self.add_attributes(attrs) class_name = get_class_from_return_object obj = class_name.constantize.new attrs.each do |attr,value| obj.send("#{attr}=", value) if obj.respond_to?("#{attr}=") end obj end
all()
click to toggle source
# File lib/softlayer/mock.rb, line 21 def self.all collection = [] results = $database[get_class_from_return_object] return collection if results.nil? results.each do |key,result| collection.push(result) end collection end
create_object(attrs)
click to toggle source
# File lib/softlayer/mock.rb, line 32 def self.create_object(attrs) obj = add_attributes(attrs) id = (0...50).map { ('a'..'z').to_a[rand(26)] }.join save_on_database(id, obj) end
find(id)
click to toggle source
# File lib/softlayer/mock.rb, line 38 def self.find(id) $database[get_class_from_return_object].each do |key,obj| return obj if obj.id == id end nil end
find_by_key(key)
click to toggle source
# File lib/softlayer/mock.rb, line 45 def self.find_by_key(key) $database[get_class_from_return_object][key] end
get_class_from_return_object()
click to toggle source
# File lib/softlayer/mock.rb, line 49 def self.get_class_from_return_object if !@return_object.nil? @return_object.first.name if @return_object.name == Array @return_object.name else self.name.gsub("::Mock","") end end
message_to_params(message)
click to toggle source
# File lib/softlayer/mock.rb, line 58 def self.message_to_params(message) parameters = [] if !message.nil? message.each do |attr,value| parameters.push(value) end end parameters end
request(service_name, method, return_object, message, init_headers = {})
click to toggle source
# File lib/softlayer/mock.rb, line 68 def self.request(service_name, method, return_object, message, init_headers = {}) klass_name = service_name.gsub("SoftLayer","Softlayer") klass_name = klass_name.gsub("Softlayer_", "Softlayer_Mock_").gsub("_","::") klass_name = klass_name.constantize if init_headers.keys.map { |x| x.match /#{service_name}InitParameters/ }.empty? @service = klass_name else @service = klass_name.new key_name = init_headers.keys.find { |x| x.match /#{service_name}InitParameters/ } @service.id = init_headers[key_name]["id"] end @return_object = return_object @message = message raise NotImplemented, "Error: Method #{method} not implemented" unless @service.methods.include?(method) parameters = message_to_params(message) return @service.send(method, *parameters) if parameters.length > 0 @service.send(method) end
save_on_database(key, obj)
click to toggle source
# File lib/softlayer/mock.rb, line 89 def self.save_on_database(key, obj) if $database[obj.class.name].nil? $database[obj.class.name] = {} $database[obj.class.name][key] = obj else $database[obj.class.name][key] = obj end end