Class: Softlayer::Mock
- Inherits:
-
Object
show all
- Defined in:
- lib/softlayer/mock.rb,
lib/softlayer/mock/brand.rb,
lib/softlayer/mock/ticket.rb,
lib/softlayer/mock/account.rb,
lib/softlayer/mock/dns/domain.rb,
lib/softlayer/mock/virtual/guest.rb,
lib/softlayer/mock/dns/domain/resource_record/soa_type.rb
Defined Under Namespace
Classes: Account, Brand, Dns, NotImplemented, Ticket, Virtual
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
10
11
12
|
# File 'lib/softlayer/mock.rb', line 10
def id
@id
end
|
Class Method Details
.add_attributes(attrs) ⇒ Object
12
13
14
15
16
17
18
19
|
# 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 ⇒ Object
21
22
23
24
25
26
27
28
29
30
|
# 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) ⇒ Object
32
33
34
35
36
|
# 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) ⇒ Object
38
39
40
41
42
43
|
# 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) ⇒ Object
45
46
47
|
# 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 ⇒ Object
49
50
51
52
53
54
55
56
|
# 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) ⇒ Object
58
59
60
61
62
63
64
65
66
|
# 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 = {}) ⇒ Object
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/softlayer/mock.rb', line 68
def self.request(service_name, method, return_object, message, = {})
klass_name = service_name.gsub("SoftLayer","Softlayer")
klass_name = klass_name.gsub("Softlayer_", "Softlayer_Mock_").gsub("_","::")
klass_name = klass_name.constantize
if .keys.map { |x| x.match /#{service_name}InitParameters/ }.empty?
@service = klass_name
else
@service = klass_name.new
key_name = .keys.find { |x| x.match /#{service_name}InitParameters/ }
@service.id = [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) ⇒ Object
89
90
91
92
93
94
95
96
|
# 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
|