restforce_mock 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +18 -0
- data/lib/restforce_mock/client.rb +30 -2
- data/lib/restforce_mock/sandbox.rb +25 -0
- data/lib/restforce_mock/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 503069008904b0403bf039de367bdb8249643b0d
|
4
|
+
data.tar.gz: 30fcfd99caf343ed29bc9708a33f42401b786113
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e832bf92df18847f2219510b7be5ab06db7e3a5b81b819e584c0e305e6dac8cd3433d96094f38052621d055766fb0d52036288ca614e28b30b3b70221d2cc1d
|
7
|
+
data.tar.gz: 52dc0da9f71626370801ec424bb773df130b6c04aec4f93a6b3602eeaecd6c02a7da947624b43fd61d70e48c76fd532ca5b8185b01462eef9e2496f084cac6ba
|
data/README.md
CHANGED
@@ -97,6 +97,24 @@ To access the object in the RestforceMock object
|
|
97
97
|
RestforceMock::Sandbox.get_object("Contact", "HGUKK674J79HjsH")
|
98
98
|
```
|
99
99
|
|
100
|
+
To find an object with the salesforce find method
|
101
|
+
|
102
|
+
```ruby
|
103
|
+
client = RestforceMock::Client.new
|
104
|
+
RestforceMock::Sandbox.add_object("Contact", '12345', {:Email=>"example@yahoo.com"})
|
105
|
+
client.find('Contact', '12345')
|
106
|
+
```
|
107
|
+
|
108
|
+
To make a query with the salesforce query method
|
109
|
+
|
110
|
+
```ruby
|
111
|
+
client = RestforceMock::Client.new
|
112
|
+
RestforceMock::Sandbox.add_object("Contact", '12345', {:Email=>"example@yahoo.com"})
|
113
|
+
client.query("Select Id FROM Contact WHERE Email = 'example@yahoo.com'")
|
114
|
+
```
|
115
|
+
|
116
|
+
Note: when making a `find` or `query`, it should be in the format specified above.
|
117
|
+
|
100
118
|
RestforceMock sandbox is **shared across all your tests** (same way as real Salesforce instace would be), hence,
|
101
119
|
after completion of tests make sure to clean up if necessary
|
102
120
|
|
@@ -7,6 +7,25 @@ module RestforceMock
|
|
7
7
|
include ::Restforce::Concerns::API
|
8
8
|
include RestforceMock::Sandbox
|
9
9
|
|
10
|
+
def mashify?
|
11
|
+
true
|
12
|
+
end
|
13
|
+
|
14
|
+
def api_get(url, attrs = nil)
|
15
|
+
url=~/sobjects\/(.+)\/(.+)/
|
16
|
+
object=$1
|
17
|
+
id=$2
|
18
|
+
|
19
|
+
if !attrs.nil? && url == 'query'
|
20
|
+
query = attrs.values.first
|
21
|
+
response = get_object_from_query(query)
|
22
|
+
return Body.new(response, url)
|
23
|
+
else
|
24
|
+
response = get_object(object, id)
|
25
|
+
return Body.new(response)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
10
29
|
def api_patch(url, attrs)
|
11
30
|
url=~/sobjects\/(.+)\/(.+)/
|
12
31
|
object=$1
|
@@ -73,8 +92,17 @@ module RestforceMock
|
|
73
92
|
end
|
74
93
|
|
75
94
|
class Body
|
76
|
-
def initialize(id)
|
77
|
-
|
95
|
+
def initialize(id, type= nil)
|
96
|
+
collection = {"totalSize"=>1, "done"=>true,
|
97
|
+
"records"=>[{"attributes"=>{"type"=>"Contact", "url"=>""}, "Id"=> id}]}
|
98
|
+
|
99
|
+
@body =
|
100
|
+
|
101
|
+
if type == 'query'
|
102
|
+
Restforce::Collection.new(collection, Restforce::Data::Client.new)
|
103
|
+
else
|
104
|
+
{'id' => id}
|
105
|
+
end
|
78
106
|
end
|
79
107
|
|
80
108
|
def body
|
@@ -12,10 +12,35 @@ module RestforceMock
|
|
12
12
|
RestforceMock::Sandbox.add_object(name, id, values)
|
13
13
|
end
|
14
14
|
|
15
|
+
def get_object(name, id)
|
16
|
+
RestforceMock::Sandbox.get_object(name, id)
|
17
|
+
end
|
18
|
+
|
15
19
|
def self.get_object(name, id)
|
16
20
|
storage[name][id]
|
17
21
|
end
|
18
22
|
|
23
|
+
def get_object_from_query(query)
|
24
|
+
RestforceMock::Sandbox.find_object(query)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.find_object(query)
|
28
|
+
# This will only support making queries in this format:
|
29
|
+
# client.query("Select Id FROM Contact WHERE Email = 'debrah.obrian@yahoo.com'")
|
30
|
+
|
31
|
+
split_query = query.split
|
32
|
+
|
33
|
+
storage_name = split_query[3]
|
34
|
+
key = "#{split_query[5]}".to_sym
|
35
|
+
val = split_query.last
|
36
|
+
.gsub(/^'|'$/, '')
|
37
|
+
.gsub('\\', '')
|
38
|
+
|
39
|
+
if storage[storage_name].has_value?( key => val)
|
40
|
+
return storage[storage_name].keys.first
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
19
44
|
def self.update_object(name, id, attrs)
|
20
45
|
current = storage[name][id]
|
21
46
|
storage[name][id] = current.merge(attrs)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: restforce_mock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilya Katz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: restforce
|
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
143
|
version: '0'
|
144
144
|
requirements: []
|
145
145
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.
|
146
|
+
rubygems_version: 2.6.10
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
149
|
summary: Mock for Restforce gem
|