salesforcebulk 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 068978c964a5939788a560b11f5d9e1cbddbee46
4
- data.tar.gz: 5dc3e83dad93a4f155174277bfe267ce860ea32c
3
+ metadata.gz: b6f6595658ab7d407acd1f74cb96b8b40ae9a303
4
+ data.tar.gz: d9750c85f6cad1d42a6c81f108d6de8fb1558748
5
5
  SHA512:
6
- metadata.gz: 784d8d30a9572dc5cd89df6d15a6ea9edc21b501b0392351cbd3cad7b9df8fb123338494a8636d3be7a80f29905293a649735e193d070119c5f2e66b4c56bc7e
7
- data.tar.gz: 80b34920216f0f3c20a502d9b0044dfa22d55d67fcf3ae65340d649d4178e6d3924878a21b9b21aaabdb9ecf81b87c4869097bf839c4608f9a7f5423946e6228
6
+ metadata.gz: abe409976e507aa19ff46d3519088e84656f039aa1521def05daa495f114fe4c04bf4835f47baabcc69bf12da52ee3198cd1a950a0fd30eb472bea336acf2dab
7
+ data.tar.gz: 87ec0fa2cd572bdf23f624099bfa6ea43c512835672bff6e2aead8be09f4d05a7dce574fcbfaa9cc2285d99c18aaa2a39ff8469eb2726be02aad74636607993e
data/README.md CHANGED
@@ -153,6 +153,10 @@ Note: By reviewing the API docs and response format my understanding was that th
153
153
 
154
154
  ## Version History
155
155
 
156
+ **1.4.0** (June 1, 2014)
157
+
158
+ * Added state_message to Batch class (#11 - thanks [@bethesque](https://github.com/bethesque))
159
+
156
160
  **1.3.0** (April 28, 2014)
157
161
 
158
162
  * Added support for multiple subdomains (#10 - thanks [@lucianapazos](https://github.com/lucianapazos))
@@ -1,6 +1,6 @@
1
1
  module SalesforceBulk
2
2
  class Batch
3
-
3
+
4
4
  attr_accessor :apex_processing_time
5
5
  attr_accessor :api_active_processing_time
6
6
  attr_accessor :completed_at
@@ -10,13 +10,15 @@ module SalesforceBulk
10
10
  attr_accessor :job_id
11
11
  attr_accessor :processed_records
12
12
  attr_accessor :state
13
+ attr_accessor :state_message
13
14
  attr_accessor :total_processing_time
14
-
15
+
15
16
  def self.new_from_xml(data)
16
17
  batch = self.new
17
18
  batch.id = data['id']
18
19
  batch.job_id = data['jobId']
19
20
  batch.state = data['state']
21
+ batch.state_message = data['stateMessage']
20
22
  batch.created_at = DateTime.parse(data['createdDate'])
21
23
  batch.completed_at = DateTime.parse(data['systemModstamp'])
22
24
  batch.processed_records = data['numberRecordsProcessed'].to_i
@@ -26,23 +28,23 @@ module SalesforceBulk
26
28
  batch.apex_processing_time = data['apex_processing_time'].to_i
27
29
  batch
28
30
  end
29
-
31
+
30
32
  def in_progress?
31
33
  state? 'InProgress'
32
34
  end
33
-
35
+
34
36
  def queued?
35
37
  state? 'Queued'
36
38
  end
37
-
39
+
38
40
  def completed?
39
41
  state? 'Completed'
40
42
  end
41
-
43
+
42
44
  def failed?
43
45
  state? 'Failed'
44
46
  end
45
-
47
+
46
48
  def state?(value)
47
49
  self.state.present? && self.state.casecmp(value) == 0
48
50
  end
@@ -1,3 +1,3 @@
1
1
  module SalesforceBulk
2
- VERSION = "1.3.0"
2
+ VERSION = "1.4.0"
3
3
  end
@@ -3,6 +3,7 @@
3
3
  <id>751E00000004ZRbIAM</id>
4
4
  <jobId>750E00000004N97IAE</jobId>
5
5
  <state>Completed</state>
6
+ <stateMessage>Success</stateMessage>
6
7
  <createdDate>2012-05-31T01:22:47.000Z</createdDate>
7
8
  <systemModstamp>2012-05-31T01:22:47.000Z</systemModstamp>
8
9
  <numberRecordsProcessed>2</numberRecordsProcessed>
@@ -1,27 +1,28 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class TestBatch < Test::Unit::TestCase
4
-
4
+
5
5
  def setup
6
6
  options = {
7
- :username => 'myusername',
7
+ :username => 'myusername',
8
8
  :password => 'mypassword'
9
9
  }
10
-
10
+
11
11
  @client = SalesforceBulk::Client.new(options)
12
12
  bypass_authentication(@client)
13
13
  @batch = SalesforceBulk::Batch.new
14
14
  @headers = {"Content-Type" => "text/csv; charset=UTF-8", 'X-Sfdc-Session' => '123456789'}
15
15
  @headersWithXml = {'Content-Type' => 'application/xml', 'X-Sfdc-Session' => '123456789'}
16
16
  end
17
-
17
+
18
18
  test "initialize from XML" do
19
19
  xml = fixture("batch_info_response.xml")
20
20
  batch = SalesforceBulk::Batch.new_from_xml(XmlSimple.xml_in(xml, 'ForceArray' => false))
21
-
21
+
22
22
  assert_equal batch.id, '751E00000004ZRbIAM'
23
23
  assert_equal batch.job_id, '750E00000004N97IAE'
24
24
  assert_equal batch.state, 'Completed'
25
+ assert_equal batch.state_message, 'Success'
25
26
  assert_equal batch.created_at, DateTime.parse('2012-05-31T01:22:47.000Z')
26
27
  assert_equal batch.completed_at, DateTime.parse('2012-05-31T01:22:47.000Z')
27
28
  assert_equal batch.processed_records, 2
@@ -30,50 +31,50 @@ class TestBatch < Test::Unit::TestCase
30
31
  assert_equal batch.api_active_processing_time, 28
31
32
  assert_equal batch.apex_processing_time, 0
32
33
  end
33
-
34
+
34
35
  test "state?" do
35
36
  @batch.state = "Completed"
36
37
  assert @batch.state?('Completed')
37
-
38
+
38
39
  @batch.state = "COMPLETED"
39
40
  assert @batch.state?('completed')
40
-
41
+
41
42
  @batch.state = "Failed"
42
43
  assert !@batch.state?('Queued')
43
44
  end
44
-
45
+
45
46
  test "state is marked queued" do
46
47
  @batch.state = "Queued"
47
48
  assert @batch.queued?
48
-
49
+
49
50
  @batch.state = nil
50
51
  assert !@batch.queued?
51
52
  end
52
-
53
+
53
54
  test "state is marked in progress" do
54
55
  @batch.state = "InProgress"
55
56
  assert @batch.in_progress?
56
-
57
+
57
58
  @batch.state = nil
58
59
  assert !@batch.in_progress?
59
60
  end
60
-
61
+
61
62
  test "state is marked completed" do
62
63
  @batch.state = "Completed"
63
64
  assert @batch.completed?
64
-
65
+
65
66
  @batch.state = nil
66
67
  assert !@batch.completed?
67
68
  end
68
-
69
+
69
70
  test "state is marked failed" do
70
71
  @batch.state = "Failed"
71
72
  assert @batch.failed?
72
-
73
+
73
74
  @batch.state = nil
74
75
  assert !@batch.failed?
75
76
  end
76
-
77
+
77
78
  test "should add a batch to a job and return a successful response" do
78
79
  request = fixture("batch_create_request.csv")
79
80
  response = fixture("batch_create_response.xml")
@@ -87,13 +88,13 @@ class TestBatch < Test::Unit::TestCase
87
88
  if RUBY_VERSION < '1.9'
88
89
  data.first.stubs(:keys).returns([:Id__c, :Title__c, :IsPreview__c])
89
90
  end
90
-
91
+
91
92
  stub_request(:post, "#{api_url(@client)}job/#{job_id}/batch").with(:body => request, :headers => @headers).to_return(:body => response, :status => 200)
92
-
93
+
93
94
  batch = @client.add_batch(job_id, data)
94
-
95
+
95
96
  assert_requested :post, "#{api_url(@client)}job/#{job_id}/batch", :body => request, :headers => @headers, :times => 1
96
-
97
+
97
98
  assert_equal batch.id, batch_id
98
99
  assert_equal batch.job_id, job_id
99
100
  assert_equal batch.state, 'Queued'
@@ -105,29 +106,29 @@ class TestBatch < Test::Unit::TestCase
105
106
  assert_equal batch.api_active_processing_time, 0
106
107
  assert_equal batch.apex_processing_time, 0
107
108
  end
108
-
109
+
109
110
  test "should raise ArgumentError when given data array length exceeding 10000" do
110
111
  data = (1..10100).map { |index| {:Id => index} }
111
-
112
+
112
113
  assert_raise ArgumentError do
113
114
  @client.add_batch("750E00000004NRfIAM", data)
114
115
  end
115
116
  end
116
-
117
+
117
118
  test "should retrieve info for all batches in a job in a single request" do
118
119
  response = fixture("batch_info_list_response.xml")
119
120
  job_id = "750E00000004N97IAE"
120
-
121
+
121
122
  stub_request(:get, "#{api_url(@client)}job/#{job_id}/batch").with(:headers => @headersWithXml).to_return(:body => response, :status => 200)
122
-
123
+
123
124
  batches = @client.batch_info_list(job_id)
124
-
125
+
125
126
  assert_requested :get, "#{api_url(@client)}job/#{job_id}/batch", :headers => @headersWithXml, :times => 1
126
-
127
+
127
128
  assert_kind_of Array, batches
128
129
  assert_kind_of SalesforceBulk::Batch, batches.first
129
130
  assert_equal batches.length, 2
130
-
131
+
131
132
  batch = batches.first
132
133
  assert_equal batch.id, "751E00000004ZRbIAM"
133
134
  assert_equal batch.job_id, job_id
@@ -139,7 +140,7 @@ class TestBatch < Test::Unit::TestCase
139
140
  assert_equal batch.total_processing_time, 72
140
141
  assert_equal batch.api_active_processing_time, 28
141
142
  assert_equal batch.apex_processing_time, 0
142
-
143
+
143
144
  batch = batches.last
144
145
  assert_equal batch.id, "751E00000004ZQsIAM"
145
146
  assert_equal batch.job_id, job_id
@@ -152,18 +153,18 @@ class TestBatch < Test::Unit::TestCase
152
153
  assert_equal batch.api_active_processing_time, 28
153
154
  assert_equal batch.apex_processing_time, 0
154
155
  end
155
-
156
+
156
157
  test "should retrieve batch info" do
157
158
  response = fixture("batch_info_response.xml")
158
159
  job_id = "750E00000004N97IAE"
159
160
  batch_id = "751E00000004ZRbIAM"
160
-
161
+
161
162
  stub_request(:get, "#{api_url(@client)}job/#{job_id}/batch/#{batch_id}").with(:headers => @headersWithXml).to_return(:body => response, :status => 200)
162
-
163
+
163
164
  batch = @client.batch_info(job_id, batch_id)
164
-
165
+
165
166
  assert_requested :get, "#{api_url(@client)}job/#{job_id}/batch/#{batch_id}", :headers => @headersWithXml, :times => 1
166
-
167
+
167
168
  assert_equal batch.id, batch_id
168
169
  assert_equal batch.job_id, job_id
169
170
  assert_equal batch.state, 'Completed'
@@ -175,22 +176,22 @@ class TestBatch < Test::Unit::TestCase
175
176
  assert_equal batch.api_active_processing_time, 28
176
177
  assert_equal batch.apex_processing_time, 0
177
178
  end
178
-
179
+
179
180
  test "should return batch result for a non-querying job" do
180
181
  response = fixture("batch_result_list_response.csv")
181
182
  job_id = "750E00000004NRa"
182
183
  batch_id = "751E00000004ZmK"
183
-
184
- # Batches that are created using CSV will always return
184
+
185
+ # Batches that are created using CSV will always return
185
186
  # results in CSV format despite requesting with XML content type.
186
187
  # Thus the content type header is ignored.
187
-
188
+
188
189
  stub_request(:get, "#{api_url(@client)}job/#{job_id}/batch/#{batch_id}/result").to_return(:body => response, :status => 200)
189
-
190
+
190
191
  results = @client.batch_result(job_id, batch_id)
191
-
192
+
192
193
  assert_requested :get, "#{api_url(@client)}job/#{job_id}/batch/#{batch_id}/result", :times => 1
193
-
194
+
194
195
  assert_kind_of SalesforceBulk::BatchResultCollection, results
195
196
  assert_kind_of Array, results
196
197
  assert_equal results.length, 2
@@ -201,51 +202,51 @@ class TestBatch < Test::Unit::TestCase
201
202
  assert_equal results.first.error?, false
202
203
  assert_equal results.first.error, ''
203
204
  end
204
-
205
+
205
206
  test "retrieve result id for a query operation" do
206
207
  response = fixture("query_result_list_response.xml")
207
208
  job_id = "750E00000004NnR"
208
209
  batch_id = "751E00000004aEY"
209
210
  result_id = "752E0000000TNaq"
210
-
211
+
211
212
  stub_request(:get, "#{api_url(@client)}job/#{job_id}/batch/#{batch_id}/result").with(:headers => @headersWithXml).to_return(:body => response, :status => 200)
212
-
213
+
213
214
  @client.expects(:query_result).with(job_id, batch_id, result_id).returns([])
214
-
215
+
215
216
  result = @client.batch_result(job_id, batch_id)
216
-
217
+
217
218
  assert_requested :get, "#{api_url(@client)}job/#{job_id}/batch/#{batch_id}/result", :headers => @headersWithXml, :times => 1
218
219
  assert_kind_of SalesforceBulk::QueryResultCollection, result
219
220
  assert_equal result.job_id, job_id
220
221
  assert_equal result.batch_id, batch_id
221
222
  assert_equal result.result_id, result_id
222
223
  end
223
-
224
+
224
225
  test "retrieve and parse a query result successfully" do
225
226
  response = fixture("query_result_response.csv")
226
227
  job_id = "750E00000004NnR"
227
228
  batch_id = "751E00000004aEY"
228
229
  result_id = "752E0000000TNaq"
229
-
230
+
230
231
  stub_request(:get, "#{api_url(@client)}job/#{job_id}/batch/#{batch_id}/result/#{result_id}").with(:headers => @headers).to_return(:body => response, :status => 200)
231
-
232
+
232
233
  result = @client.query_result(job_id, batch_id, result_id)
233
-
234
+
234
235
  assert_requested :get, "#{api_url(@client)}job/#{job_id}/batch/#{batch_id}/result/#{result_id}", :headers => @headers, :times => 1
235
236
  assert_kind_of Array, result
236
237
  assert result.length == 4
237
238
  end
238
-
239
+
239
240
  test "should raise SalesforceError on invalid batch response" do
240
241
  response = fixture("invalid_batch_error.xml")
241
242
  job_id = "750E00000004NnR"
242
243
  batch_id = "751E00000004aEY"
243
-
244
+
244
245
  stub_request(:get, "#{api_url(@client)}job/#{job_id}/batch/#{batch_id}/result").with(:headers => @headersWithXml).to_return(:body => response, :status => 400)
245
-
246
+
246
247
  assert_raise SalesforceBulk::SalesforceError do
247
248
  @client.batch_result(job_id, batch_id)
248
249
  end
249
250
  end
250
-
251
+
251
252
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: salesforcebulk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Javier Julio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-28 00:00:00.000000000 Z
11
+ date: 2014-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport