ocrsdk 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +28 -0
- data/VERSION +1 -1
- data/lib/ocrsdk/mock.rb +46 -0
- data/mocks/get_task_status/completed.xml +14 -0
- data/mocks/get_task_status/failed.xml +14 -0
- data/mocks/get_task_status/in_progress.xml +14 -0
- data/mocks/get_task_status/not_enough_credits.xml +14 -0
- data/mocks/get_task_status/submitted.xml +14 -0
- data/mocks/process_image/success.xml +14 -0
- data/mocks/result/simple.xml +1 -0
- data/mocks/test/test.xml +1 -0
- data/spec/ocrsdk/image_spec.rb +4 -15
- data/spec/ocrsdk/mock_spec.rb +18 -0
- data/spec/ocrsdk/promise_spec.rb +13 -24
- data/spec/spec_helper.rb +1 -1
- metadata +13 -4
- data/spec/helpers/ocrsdk_helpers.rb +0 -106
data/README.md
CHANGED
@@ -76,6 +76,34 @@ else
|
|
76
76
|
end
|
77
77
|
```
|
78
78
|
|
79
|
+
Testing
|
80
|
+
-------
|
81
|
+
|
82
|
+
In order to make tests determenistic and fast you might want to mock all network interactions. For this purpose OCRSDK introduce Mock module built on top of [Webmock](https://github.com/bblimke/webmock) gem. It can be used with any testing environment including RSpec, Capybara, Cucumber. To mock all gem request you need to call on of those functions before running tests:
|
83
|
+
|
84
|
+
* `OCRSDK::Mock.success` - image was correctly submitted, promise will return `:completed` status and you will be able to retrieve a result;
|
85
|
+
* `OCRSDK::Mock.in_progress` - image was correctly submitted, promise will return `:in_progress` status for every request, which means you wouldn't be able to get the result;
|
86
|
+
* `OCRSDK::Mock.not_enough_credits` - submission of image would raise `OCRSDK::NotEnoughCredits` error.
|
87
|
+
|
88
|
+
For example you can mock ocrsdk in controller test like this:
|
89
|
+
|
90
|
+
```ruby
|
91
|
+
# spec_helper.rb
|
92
|
+
require 'ocrsdk/mock'
|
93
|
+
|
94
|
+
# some_controller_spec.rb
|
95
|
+
|
96
|
+
require 'spec_helper'
|
97
|
+
|
98
|
+
describe SomeController do
|
99
|
+
before { OCRSDK::Mock.success }
|
100
|
+
|
101
|
+
describe "POST recognize" do
|
102
|
+
# ...
|
103
|
+
end
|
104
|
+
end
|
105
|
+
```
|
106
|
+
|
79
107
|
Copyright
|
80
108
|
=========
|
81
109
|
Copytright © 2012 Andrey Korzhuev. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/ocrsdk/mock.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'webmock'
|
2
|
+
|
3
|
+
module OCRSDK::Mock
|
4
|
+
MOCKS_PATH = File.realpath(File.join(File.dirname(__FILE__), '..', '..', 'mocks'))
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def success
|
8
|
+
stub_process_image response(:process_image, :success)
|
9
|
+
stub_get_task_status response(:get_task_status, :completed)
|
10
|
+
stub_result response(:result, :simple)
|
11
|
+
end
|
12
|
+
|
13
|
+
def in_progress
|
14
|
+
success
|
15
|
+
stub_get_task_status response(:get_task_status, :in_progress)
|
16
|
+
end
|
17
|
+
|
18
|
+
def not_enough_credits
|
19
|
+
success
|
20
|
+
stub_process_image response(:process_image, :not_enough_credits)
|
21
|
+
stub_get_task_status response(:get_task_status, :not_enough_credits)
|
22
|
+
end
|
23
|
+
|
24
|
+
def stub_process_image(response)
|
25
|
+
WebMock::API.stub_request(:post, /.*:.*@cloud.ocrsdk.com\/processImage/).to_return(body: response)
|
26
|
+
end
|
27
|
+
|
28
|
+
def stub_get_task_status(response)
|
29
|
+
WebMock::API.stub_request(:get, /.*:.*@cloud.ocrsdk.com\/getTaskStatus\?taskId=.*/).to_return(body: response)
|
30
|
+
end
|
31
|
+
|
32
|
+
def stub_result(response)
|
33
|
+
WebMock::API.stub_request(:get, 'http://cloud.ocrsdk.com/result_url').to_return(body: response)
|
34
|
+
end
|
35
|
+
|
36
|
+
def response(method, status)
|
37
|
+
path = File.join(MOCKS_PATH, method.to_s, "#{status.to_s}.xml")
|
38
|
+
|
39
|
+
unless File.exist? path
|
40
|
+
warn "No predefined xml response for #{method}/#{status} found. Path: #{path}"
|
41
|
+
end
|
42
|
+
|
43
|
+
File.new(path).read
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<response>
|
3
|
+
<task id="update-task-id"
|
4
|
+
registrationTime="2001-01-01T13:18:22Z"
|
5
|
+
statusChangeTime="2001-03-01T13:18:22Z"
|
6
|
+
status="Completed"
|
7
|
+
error="{An error message.}"
|
8
|
+
filesCount="10"
|
9
|
+
credits="10"
|
10
|
+
estimatedProcessingTime="3600"
|
11
|
+
resultUrl="http://cloud.ocrsdk.com/result_url"
|
12
|
+
description="My first OCR task"/>
|
13
|
+
<task/>
|
14
|
+
</response>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<response>
|
3
|
+
<task id="update-task-id"
|
4
|
+
registrationTime="2001-01-01T13:18:22Z"
|
5
|
+
statusChangeTime="2001-03-01T13:18:22Z"
|
6
|
+
status="ProcessingFailed"
|
7
|
+
error="{An error message.}"
|
8
|
+
filesCount="10"
|
9
|
+
credits="10"
|
10
|
+
estimatedProcessingTime="3600"
|
11
|
+
resultUrl="http://cloud.ocrsdk.com/result_url"
|
12
|
+
description="My first OCR task"/>
|
13
|
+
<task/>
|
14
|
+
</response>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<response>
|
3
|
+
<task id="update-task-id"
|
4
|
+
registrationTime="2001-01-01T13:18:22Z"
|
5
|
+
statusChangeTime="2001-02-01T13:18:22Z"
|
6
|
+
status="InProgress"
|
7
|
+
error="{An error message.}"
|
8
|
+
filesCount="10"
|
9
|
+
credits="10"
|
10
|
+
estimatedProcessingTime="3600"
|
11
|
+
resultUrl="http://cloud.ocrsdk.com/result_url"
|
12
|
+
description="My first OCR task"/>
|
13
|
+
<task/>
|
14
|
+
</response>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<response>
|
3
|
+
<task id="22345200-abe8-4f60-90c8-0d43c5f6c0f6"
|
4
|
+
registrationTime="2001-01-01T13:18:22Z"
|
5
|
+
statusChangeTime="2001-01-01T13:18:22Z"
|
6
|
+
status="NotEnoughCredits"
|
7
|
+
error="{An error message.}"
|
8
|
+
filesCount="10"
|
9
|
+
credits="0"
|
10
|
+
estimatedProcessingTime="3600"
|
11
|
+
resultUrl="http://cloud.ocrsdk.com/result_url"
|
12
|
+
description="My first OCR task"/>
|
13
|
+
<task/>
|
14
|
+
</response>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<response>
|
3
|
+
<task id="22345200-abe8-4f60-90c8-0d43c5f6c0f6"
|
4
|
+
registrationTime="2001-01-01T13:18:22Z"
|
5
|
+
statusChangeTime="2001-01-01T13:18:22Z"
|
6
|
+
status="Submitted"
|
7
|
+
error="{An error message.}"
|
8
|
+
filesCount="10"
|
9
|
+
credits="10"
|
10
|
+
estimatedProcessingTime="3600"
|
11
|
+
resultUrl="http://cloud.ocrsdk.com/result_url"
|
12
|
+
description="My first OCR task"/>
|
13
|
+
<task/>
|
14
|
+
</response>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<response>
|
3
|
+
<task id="22345200-abe8-4f60-90c8-0d43c5f6c0f6"
|
4
|
+
registrationTime="2001-01-01T13:18:22Z"
|
5
|
+
statusChangeTime="2001-01-01T13:18:22Z"
|
6
|
+
status="Submitted"
|
7
|
+
error="{An error message.}"
|
8
|
+
filesCount="10"
|
9
|
+
credits="10"
|
10
|
+
estimatedProcessingTime="3600"
|
11
|
+
resultUrl="http://cloud.ocrsdk.com/result_url"
|
12
|
+
description="My first OCR task"/>
|
13
|
+
<task/>
|
14
|
+
</response>
|
@@ -0,0 +1 @@
|
|
1
|
+
meow
|
data/mocks/test/test.xml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
meow
|
data/spec/ocrsdk/image_spec.rb
CHANGED
@@ -6,40 +6,31 @@ describe OCRSDK::Image do
|
|
6
6
|
OCRSDK.setup do |config|
|
7
7
|
config.application_id = 'app_id'
|
8
8
|
config.password = 'pass'
|
9
|
-
end
|
9
|
+
end
|
10
|
+
OCRSDK::Mock.success
|
10
11
|
end
|
11
12
|
|
13
|
+
subject { OCRSDK::Image.new TestFiles.russian_jpg_path }
|
14
|
+
|
12
15
|
describe ".as_text" do
|
13
|
-
subject { OCRSDK::Image.new TestFiles.russian_jpg_path }
|
14
|
-
before { mock_ocrsdk }
|
15
|
-
|
16
16
|
it "should call api and return Promise" do
|
17
17
|
subject.as_text([:russian]).should be_kind_of(OCRSDK::Promise)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
describe ".as_text_sync" do
|
22
|
-
subject { OCRSDK::Image.new TestFiles.russian_jpg_path }
|
23
|
-
before { mock_ocrsdk }
|
24
|
-
|
25
22
|
it "should wait till Promise is done and return result" do
|
26
23
|
subject.as_text_sync([:russian], 0).should == 'meow'
|
27
24
|
end
|
28
25
|
end
|
29
26
|
|
30
27
|
describe ".as_pdf" do
|
31
|
-
subject { OCRSDK::Image.new TestFiles.russian_jpg_path }
|
32
|
-
before { mock_ocrsdk }
|
33
|
-
|
34
28
|
it "should call api and return Promise" do
|
35
29
|
subject.as_pdf([:russian]).should be_kind_of(OCRSDK::Promise)
|
36
30
|
end
|
37
31
|
end
|
38
32
|
|
39
33
|
describe ".as_pdf_sync" do
|
40
|
-
subject { OCRSDK::Image.new TestFiles.russian_jpg_path }
|
41
|
-
before { mock_ocrsdk }
|
42
|
-
|
43
34
|
it "should wait till Promise is done and return result if output file isn't specified" do
|
44
35
|
subject.as_pdf_sync([:russian], nil, 0).should == 'meow'
|
45
36
|
end
|
@@ -53,8 +44,6 @@ describe OCRSDK::Image do
|
|
53
44
|
end
|
54
45
|
|
55
46
|
describe ".api_process_image" do
|
56
|
-
subject { OCRSDK::Image.new TestFiles.russian_jpg_path }
|
57
|
-
|
58
47
|
it "should raise UnsupportedLanguage on unsupported language" do
|
59
48
|
expect {
|
60
49
|
subject.instance_eval { api_process_image TestFiles.russian_jpg_path, [:meow] }
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe OCRSDK::Mock do
|
5
|
+
|
6
|
+
describe ".response" do
|
7
|
+
it "should read response from file" do
|
8
|
+
OCRSDK::Mock.response(:test, :test).should == 'meow'
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should raise an exception if response is not found" do
|
12
|
+
expect {
|
13
|
+
OCRSDK::Mock.response(:test, :non_existant_file)
|
14
|
+
}.to raise_error(Errno::ENOENT)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/spec/ocrsdk/promise_spec.rb
CHANGED
@@ -11,7 +11,7 @@ describe OCRSDK::Promise do
|
|
11
11
|
|
12
12
|
describe ".parse_response" do
|
13
13
|
context "correct response" do
|
14
|
-
subject { OCRSDK::Promise.new(nil).parse_response
|
14
|
+
subject { OCRSDK::Promise.new(nil).parse_response OCRSDK::Mock.response(:get_task_status, :submitted) }
|
15
15
|
|
16
16
|
its(:task_id) { should == '22345200-abe8-4f60-90c8-0d43c5f6c0f6' }
|
17
17
|
its(:status) { should == :submitted }
|
@@ -35,14 +35,14 @@ describe OCRSDK::Promise do
|
|
35
35
|
|
36
36
|
it "should raise an OCRSDK::NotEnoughCredits error" do
|
37
37
|
expect {
|
38
|
-
subject.parse_response
|
38
|
+
subject.parse_response OCRSDK::Mock.response(:get_task_status, :not_enough_credits)
|
39
39
|
}.to raise_error(OCRSDK::NotEnoughCredits)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
44
|
describe "self.from_response" do
|
45
|
-
subject { OCRSDK::Promise.from_response
|
45
|
+
subject { OCRSDK::Promise.from_response OCRSDK::Mock.response(:get_task_status, :submitted) }
|
46
46
|
|
47
47
|
its(:task_id) { should == '22345200-abe8-4f60-90c8-0d43c5f6c0f6' }
|
48
48
|
its(:status) { should == :submitted }
|
@@ -54,7 +54,7 @@ describe OCRSDK::Promise do
|
|
54
54
|
describe ".update" do
|
55
55
|
subject { OCRSDK::Promise.new 'update-task-id' }
|
56
56
|
before do
|
57
|
-
|
57
|
+
OCRSDK::Mock.in_progress
|
58
58
|
subject.update
|
59
59
|
end
|
60
60
|
|
@@ -85,21 +85,10 @@ describe OCRSDK::Promise do
|
|
85
85
|
|
86
86
|
describe ".result" do
|
87
87
|
context "processing completed without errors" do
|
88
|
-
|
88
|
+
before { OCRSDK::Mock.success }
|
89
|
+
subject { OCRSDK::Promise.from_response OCRSDK::Mock.response(:get_task_status, :completed) }
|
89
90
|
|
90
|
-
|
91
|
-
subject.should_receive(:api_get_result).once
|
92
|
-
subject.result
|
93
|
-
end
|
94
|
-
|
95
|
-
it "should get file with coorect url and return its contents" do
|
96
|
-
RestClient.stub(:get) do |url|
|
97
|
-
url.to_s.should == "http://cloud.ocrsdk.com/result_url"
|
98
|
-
"meow"
|
99
|
-
end
|
100
|
-
RestClient.should_receive(:get).once
|
101
|
-
subject.result.should == 'meow'
|
102
|
-
end
|
91
|
+
its(:result) { should == 'meow' }
|
103
92
|
|
104
93
|
it "should raise NetworkError in case getting file fails" do
|
105
94
|
RestClient.stub(:get) {|url| raise RestClient::ExceptionWithResponse }
|
@@ -112,7 +101,7 @@ describe OCRSDK::Promise do
|
|
112
101
|
end
|
113
102
|
|
114
103
|
context "processing failed" do
|
115
|
-
subject { OCRSDK::Promise.from_response
|
104
|
+
subject { OCRSDK::Promise.from_response OCRSDK::Mock.response(:get_task_status, :failed) }
|
116
105
|
|
117
106
|
it "should raise an ProcessingFailed" do
|
118
107
|
expect {
|
@@ -124,7 +113,7 @@ describe OCRSDK::Promise do
|
|
124
113
|
|
125
114
|
describe ".completed? and .failed?" do
|
126
115
|
context "processed job" do
|
127
|
-
subject { OCRSDK::Promise.from_response
|
116
|
+
subject { OCRSDK::Promise.from_response OCRSDK::Mock.response(:get_task_status, :in_progress) }
|
128
117
|
|
129
118
|
its(:processing?) { should be_true }
|
130
119
|
its(:completed?) { should be_false }
|
@@ -132,7 +121,7 @@ describe OCRSDK::Promise do
|
|
132
121
|
end
|
133
122
|
|
134
123
|
context "completed job" do
|
135
|
-
subject { OCRSDK::Promise.from_response
|
124
|
+
subject { OCRSDK::Promise.from_response OCRSDK::Mock.response(:get_task_status, :completed) }
|
136
125
|
|
137
126
|
its(:processing?) { should be_false }
|
138
127
|
its(:completed?) { should be_true }
|
@@ -140,7 +129,7 @@ describe OCRSDK::Promise do
|
|
140
129
|
end
|
141
130
|
|
142
131
|
context "failed job" do
|
143
|
-
subject { OCRSDK::Promise.from_response
|
132
|
+
subject { OCRSDK::Promise.from_response OCRSDK::Mock.response(:get_task_status, :failed) }
|
144
133
|
|
145
134
|
its(:processing?) { should be_false }
|
146
135
|
its(:completed?) { should be_false }
|
@@ -149,13 +138,13 @@ describe OCRSDK::Promise do
|
|
149
138
|
end
|
150
139
|
|
151
140
|
describe ".wait" do
|
152
|
-
subject { OCRSDK::Promise.from_response
|
141
|
+
subject { OCRSDK::Promise.from_response OCRSDK::Mock.response(:get_task_status, :in_progress) }
|
153
142
|
|
154
143
|
it "should check the status as many times as needed waiting while ocr is completed" do
|
155
144
|
called_once = false
|
156
145
|
subject.stub(:update) do
|
157
146
|
if called_once
|
158
|
-
subject.parse_response
|
147
|
+
subject.parse_response OCRSDK::Mock.response(:get_task_status, :completed)
|
159
148
|
else
|
160
149
|
called_once = true
|
161
150
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ocrsdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
@@ -159,6 +159,7 @@ files:
|
|
159
159
|
- lib/ocrsdk/document.rb
|
160
160
|
- lib/ocrsdk/errors.rb
|
161
161
|
- lib/ocrsdk/image.rb
|
162
|
+
- lib/ocrsdk/mock.rb
|
162
163
|
- lib/ocrsdk/pdf.rb
|
163
164
|
- lib/ocrsdk/promise.rb
|
164
165
|
- lib/ocrsdk/verifiers.rb
|
@@ -166,6 +167,14 @@ files:
|
|
166
167
|
- lib/ocrsdk/verifiers/language.rb
|
167
168
|
- lib/ocrsdk/verifiers/profile.rb
|
168
169
|
- lib/ocrsdk/verifiers/status.rb
|
170
|
+
- mocks/get_task_status/completed.xml
|
171
|
+
- mocks/get_task_status/failed.xml
|
172
|
+
- mocks/get_task_status/in_progress.xml
|
173
|
+
- mocks/get_task_status/not_enough_credits.xml
|
174
|
+
- mocks/get_task_status/submitted.xml
|
175
|
+
- mocks/process_image/success.xml
|
176
|
+
- mocks/result/simple.xml
|
177
|
+
- mocks/test/test.xml
|
169
178
|
- ocrsdk.gemspec
|
170
179
|
- spec/abstract_entity_spec.rb
|
171
180
|
- spec/fixtures/files/lorem.complex.pdf
|
@@ -174,8 +183,8 @@ files:
|
|
174
183
|
- spec/fixtures/files/recognizeable.pdf
|
175
184
|
- spec/fixtures/files/russian.jpg
|
176
185
|
- spec/fixtures/files/searchable.malformed.pdf
|
177
|
-
- spec/helpers/ocrsdk_helpers.rb
|
178
186
|
- spec/ocrsdk/image_spec.rb
|
187
|
+
- spec/ocrsdk/mock_spec.rb
|
179
188
|
- spec/ocrsdk/pdf_spec.rb
|
180
189
|
- spec/ocrsdk/promise_spec.rb
|
181
190
|
- spec/ocrsdk/verifiers/format_spec.rb
|
@@ -219,8 +228,8 @@ test_files:
|
|
219
228
|
- spec/fixtures/files/recognizeable.pdf
|
220
229
|
- spec/fixtures/files/russian.jpg
|
221
230
|
- spec/fixtures/files/searchable.malformed.pdf
|
222
|
-
- spec/helpers/ocrsdk_helpers.rb
|
223
231
|
- spec/ocrsdk/image_spec.rb
|
232
|
+
- spec/ocrsdk/mock_spec.rb
|
224
233
|
- spec/ocrsdk/pdf_spec.rb
|
225
234
|
- spec/ocrsdk/promise_spec.rb
|
226
235
|
- spec/ocrsdk/verifiers/format_spec.rb
|
@@ -1,106 +0,0 @@
|
|
1
|
-
module OCRSDKHelpers
|
2
|
-
|
3
|
-
def process_image_response
|
4
|
-
<<-XML
|
5
|
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
6
|
-
<response>
|
7
|
-
<task id="22345200-abe8-4f60-90c8-0d43c5f6c0f6"
|
8
|
-
registrationTime="2001-01-01T13:18:22Z"
|
9
|
-
statusChangeTime="2001-01-01T13:18:22Z"
|
10
|
-
status="Submitted"
|
11
|
-
error="{An error message.}"
|
12
|
-
filesCount="10"
|
13
|
-
credits="10"
|
14
|
-
estimatedProcessingTime="3600"
|
15
|
-
resultUrl="http://cloud.ocrsdk.com/result_url"
|
16
|
-
description="My first OCR task"/>
|
17
|
-
<task/>
|
18
|
-
</response>
|
19
|
-
XML
|
20
|
-
end
|
21
|
-
|
22
|
-
def process_image_response_credits
|
23
|
-
<<-XML
|
24
|
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
25
|
-
<response>
|
26
|
-
<task id="22345200-abe8-4f60-90c8-0d43c5f6c0f6"
|
27
|
-
registrationTime="2001-01-01T13:18:22Z"
|
28
|
-
statusChangeTime="2001-01-01T13:18:22Z"
|
29
|
-
status="NotEnoughCredits"
|
30
|
-
error="{An error message.}"
|
31
|
-
filesCount="10"
|
32
|
-
credits="0"
|
33
|
-
estimatedProcessingTime="3600"
|
34
|
-
resultUrl="http://cloud.ocrsdk.com/result_url"
|
35
|
-
description="My first OCR task"/>
|
36
|
-
<task/>
|
37
|
-
</response>
|
38
|
-
XML
|
39
|
-
end
|
40
|
-
|
41
|
-
def process_image_updated_response
|
42
|
-
<<-XML
|
43
|
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
44
|
-
<response>
|
45
|
-
<task id="update-task-id"
|
46
|
-
registrationTime="2001-01-01T13:18:22Z"
|
47
|
-
statusChangeTime="2001-02-01T13:18:22Z"
|
48
|
-
status="InProgress"
|
49
|
-
error="{An error message.}"
|
50
|
-
filesCount="10"
|
51
|
-
credits="10"
|
52
|
-
estimatedProcessingTime="3600"
|
53
|
-
resultUrl="http://cloud.ocrsdk.com/result_url"
|
54
|
-
description="My first OCR task"/>
|
55
|
-
<task/>
|
56
|
-
</response>
|
57
|
-
XML
|
58
|
-
end
|
59
|
-
|
60
|
-
def process_image_completed_response
|
61
|
-
<<-XML
|
62
|
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
63
|
-
<response>
|
64
|
-
<task id="update-task-id"
|
65
|
-
registrationTime="2001-01-01T13:18:22Z"
|
66
|
-
statusChangeTime="2001-03-01T13:18:22Z"
|
67
|
-
status="Completed"
|
68
|
-
error="{An error message.}"
|
69
|
-
filesCount="10"
|
70
|
-
credits="10"
|
71
|
-
estimatedProcessingTime="3600"
|
72
|
-
resultUrl="http://cloud.ocrsdk.com/result_url"
|
73
|
-
description="My first OCR task"/>
|
74
|
-
<task/>
|
75
|
-
</response>
|
76
|
-
XML
|
77
|
-
end
|
78
|
-
|
79
|
-
def process_image_failed_response
|
80
|
-
<<-XML
|
81
|
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
82
|
-
<response>
|
83
|
-
<task id="update-task-id"
|
84
|
-
registrationTime="2001-01-01T13:18:22Z"
|
85
|
-
statusChangeTime="2001-03-01T13:18:22Z"
|
86
|
-
status="ProcessingFailed"
|
87
|
-
error="{An error message.}"
|
88
|
-
filesCount="10"
|
89
|
-
credits="10"
|
90
|
-
estimatedProcessingTime="3600"
|
91
|
-
resultUrl="http://cloud.ocrsdk.com/result_url"
|
92
|
-
description="My first OCR task"/>
|
93
|
-
<task/>
|
94
|
-
</response>
|
95
|
-
XML
|
96
|
-
end
|
97
|
-
|
98
|
-
def mock_ocrsdk
|
99
|
-
stub_request(:post, /.*:.*@cloud.ocrsdk.com\/processImage/).to_return(body: process_image_response)
|
100
|
-
stub_request(:get, /.*:.*@cloud.ocrsdk.com\/getTaskStatus\?taskId=.*/).to_return(body: process_image_completed_response )
|
101
|
-
stub_request(:get, 'http://cloud.ocrsdk.com/result_url').to_return(body: 'meow')
|
102
|
-
end
|
103
|
-
|
104
|
-
end
|
105
|
-
|
106
|
-
RSpec.configuration.include OCRSDKHelpers
|