-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathtask_spec.rb
More file actions
106 lines (80 loc) · 3.12 KB
/
task_spec.rb
File metadata and controls
106 lines (80 loc) · 3.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
RSpec.describe ConvertApi::Task, '#run' do
subject { task.run }
let(:task) { described_class.new(from_format, to_format, params) }
let(:from_format) { 'txt' }
let(:to_format) { 'pdf' }
let(:params) { { File: file } }
let(:file) { 'https://www.w3.org/TR/2003/REC-PNG-20031110/iso_8859-1.txt' }
let(:result) { double }
shared_examples 'successful task' do
it 'executes task and returns result' do
expect(ConvertApi.client).to(
receive(:post).with('convert/txt/to/pdf', instance_of(Hash), instance_of(Hash)).and_return(result)
)
expect(subject).to be_instance_of(ConvertApi::Result)
end
end
it_behaves_like 'successful task'
context 'with converter' do
let(:params) { { File: file, Converter: 'openoffice' } }
it 'adds converter to the path' do
expect(ConvertApi.client).to(
receive(:post).with('convert/txt/to/pdf/converter/openoffice', instance_of(Hash), instance_of(Hash)).and_return(result)
)
expect(subject).to be_instance_of(ConvertApi::Result)
end
end
context 'when file is instance of ResultFile' do
let(:file) { ConvertApi::ResultFile.new('Url' => 'testurl') }
let(:expected_params) { hash_including(File: 'testurl') }
it 'uses file url' do
expect(ConvertApi.client).to(
receive(:post).with('convert/txt/to/pdf', expected_params, instance_of(Hash)).and_return(result)
)
expect(subject).to be_instance_of(ConvertApi::Result)
end
end
context 'when multiple file params' do
let(:file) { ConvertApi::ResultFile.new('Url' => 'testurl') }
let(:params) { { File: file, CompareFile: file } }
let(:expected_params) { hash_including(File: 'testurl', CompareFile: 'testurl') }
it 'uses multiple file urls' do
expect(ConvertApi.client).to(
receive(:post).with('convert/txt/to/pdf', expected_params, instance_of(Hash)).and_return(result)
)
expect(subject).to be_instance_of(ConvertApi::Result)
end
it 'executes task and returns result' do
expect(ConvertApi.client).to(
receive(:post).with('convert/txt/to/pdf', instance_of(Hash), instance_of(Hash)).and_return(result)
)
expect(subject).to be_instance_of(ConvertApi::Result)
end
end
describe 'async' do
shared_examples 'successful async task' do
it 'submits an async task and returns result' do
expect(ConvertApi.client).to(
receive(:post).with('async/convert/txt/to/pdf', instance_of(Hash), instance_of(Hash)).and_return(result)
)
expect(subject).to be_instance_of(ConvertApi::AsyncResult)
end
end
context 'Async: false' do
let(:params) { { Async: false, File: file } }
it_behaves_like 'successful task'
end
context 'Async: "false"' do
let(:params) { { Async: 'false', File: file } }
it_behaves_like 'successful task'
end
context 'Async: true' do
let(:params) { { Async: true, File: file } }
it_behaves_like 'successful async task'
end
context 'Async: "true"' do
let(:params) { { Async: "true", File: file } }
it_behaves_like 'successful async task'
end
end
end