spec/groupdocs/job_spec.rb in groupdocs-2.2.0 vs spec/groupdocs/job_spec.rb in groupdocs-2.3.0
- old
+ new
@@ -1,323 +1,323 @@
-require 'spec_helper'
-
-describe GroupDocs::Job do
-
- it_behaves_like GroupDocs::Api::Entity
- include_examples GroupDocs::Api::Helpers::Status
-
- describe '.all!' do
- before(:each) do
- mock_api_server(load_json('jobs_get'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- described_class.all!({}, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'accepts options hash' do
- lambda do
- described_class.all!(:page => 1, :count => 2)
- end.should_not raise_error()
- end
-
- it 'returns an array of GroupDocs::Job objects' do
- jobs = described_class.all!
- jobs.should be_an(Array)
- jobs.each do |job|
- job.should be_a(GroupDocs::Job)
- end
- end
- end
-
- describe '.get!' do
- before(:each) do
- mock_api_server(load_json('job_get'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- described_class.get!(1, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'returns GroupDocs::Job object' do
- described_class.get!(1).should be_a(GroupDocs::Job)
- end
- end
-
- describe '.create!' do
- before(:each) do
- mock_api_server(load_json('job_create'))
- end
-
- let(:actions) { %w(convert compress_zip) }
-
- it 'accepts access credentials hash' do
- lambda do
- described_class.create!({ :actions => %w(convert) }, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'raises error if actions are passed' do
- lambda { described_class.create!({}) }.should raise_error(ArgumentError)
- end
-
- it 'convert actions to byte flag' do
- described_class.should_receive(:convert_actions_to_byte).with(actions).and_return(5)
- described_class.create!(:actions => actions)
- end
-
- it 'returns GroupDocs::Job object' do
- described_class.create!(:actions => actions).should be_a(GroupDocs::Job)
- end
- end
-
- it { should have_accessor(:id) }
- it { should have_accessor(:guid) }
- it { should have_accessor(:name) }
- it { should have_accessor(:priority) }
- it { should have_accessor(:actions) }
- it { should have_accessor(:email_results) }
- it { should have_accessor(:url_only) }
- it { should have_accessor(:documents) }
- it { should have_accessor(:requested_time) }
-
- describe '#documents=' do
- let(:response) do
- {
- :inputs => [
- { :id => 1, :guid => 'fhy9yh94u238dgf', :status => 0, :outputs => [] },
- { :id => 2, :guid => 'ofh9rhy9rfohf9s', :status => 2, :outputs => [] }
- ]
- }
- end
-
- it 'saves documents as array of GroupDocs::Document objects' do
- subject.documents = response
- documents = subject.documents
- documents.should be_an(Array)
- documents.each do |document|
- document.should be_a(GroupDocs::Document)
- end
- end
-
- it 'does nothing if nil is passed' do
- lambda do
- subject.documents = nil
- end.should_not change(subject, :documents)
- end
- end
-
- describe '#requested_time' do
- it 'converts timestamp to Time object' do
- subject.requested_time = 1330450135000
- subject.requested_time.should == Time.at(1330450135)
- end
- end
-
- describe '#actions' do
- it 'converts actions to human-readable format' do
- subject.actions = 'Convert, Combine, CompressZip'
- subject.actions.should == [:convert, :combine, :compress_zip]
- end
-
- it 'does nothing if there are no actions' do
- subject.actions = nil
- subject.actions.should be_nil
- end
- end
-
- describe '#documents!' do
- before(:each) do
- mock_api_server(load_json('job_documents'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.documents!(:client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'updates job status' do
- subject.documents!
- subject.status.should == :archived
- end
-
- it 'returns hash' do
- subject.documents!.should be_a(Hash)
- end
-
- it 'returns array of input documents' do
- documents = subject.documents![:inputs]
- documents.should be_an(Array)
- documents.each do |document|
- document.should be_a(GroupDocs::Document)
- end
- end
-
- it 'returns array of output documents' do
- documents = subject.documents![:outputs]
- documents.should be_an(Array)
- documents.each do |document|
- document.should be_a(GroupDocs::Document)
- end
- end
-
- it 'returns empty arrays if there are no documents' do
- mock_api_server('{ "status": "Ok", "result": {}}')
- subject.documents!.should == { :inputs => [], :outputs => [] }
- end
- end
-
- describe '#add_document!' do
- before(:each) do
- mock_api_server(load_json('job_file_add'))
- end
-
- let(:document) do
- GroupDocs::Document.new(:file => GroupDocs::Storage::File.new)
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.add_document!(document, {}, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'accepts options hash' do
- lambda do
- subject.add_document!(document, :output_formats => %w(pdf txt))
- end.should_not raise_error()
- end
-
- it 'raises error if document is not an instance of GroupDocs::Document' do
- lambda { subject.add_document!('Document') }.should raise_error(ArgumentError)
- end
-
- it 'returns document ID' do
- subject.add_document!(document).should be_an(Integer)
- end
- end
-
- describe '#delete_document!' do
- before(:each) do
- mock_api_server('{ "result": {}, "status": "Ok" }')
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.delete_document!('a9ufg8s7dfgsdf', :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'returns empty hash' do
- subject.delete_document!('a9ufg8s7dfgsdf').should be_empty
- end
- end
-
- describe '#add_datasource!' do
- before(:each) do
- mock_api_server('{ "status": "Ok", "result": {}}')
- end
- let(:document) do
- GroupDocs::Document.new(:file => GroupDocs::Storage::File.new)
- end
-
- let(:datasource) do
- GroupDocs::DataSource.new
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.add_datasource!(document, datasource, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'raises error if document is not an instance of GroupDocs::Document' do
- lambda { subject.add_datasource!('Document') }.should raise_error(ArgumentError)
- end
-
- it 'raises error if datasource is not an instance of GroupDocs::DataSource' do
- lambda { subject.add_datasource!(document, 'DataSource') }.should raise_error(ArgumentError)
- end
- end
-
- describe '#add_url!' do
- before(:each) do
- mock_api_server(load_json('job_add_url'))
- end
-
- let(:url) { 'http://www.google.com' }
-
- it 'accepts access credentials hash' do
- lambda do
- subject.add_url!(url, {}, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'accepts options hash' do
- lambda do
- subject.add_url!(url, :out_formats => %W(pdf txt))
- end.should_not raise_error()
- end
-
- it 'returns document ID' do
- subject.add_url!(url).should be_an(Integer)
- end
- end
-
- describe '#update!' do
- before(:each) do
- mock_api_server(load_json('job_update'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.update!({}, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'parses status' do
- subject.should_receive(:parse_status).with(:draft).and_return(-1)
- subject.update!(:status => :draft)
- end
- end
-
- describe '#delete!' do
- before(:each) do
- mock_api_server('{ "status": "Ok", "result": {} }')
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.delete!(:client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
- end
-
- describe '#convert_actions_to_byte' do
- let(:actions) { %w(convert compare) }
-
- it 'raises error if actions is not an array' do
- lambda { described_class.convert_actions_to_byte(:export) }.should raise_error(ArgumentError)
- end
-
- it 'raises error if action is unknown' do
- lambda { described_class.convert_actions_to_byte(%w(unknown)) }.should raise_error(ArgumentError)
- end
-
- it 'converts each action to Symbol' do
- actions.each do |action|
- symbol = action.to_sym
- action.should_receive(:to_sym).and_return(symbol)
- end
- described_class.convert_actions_to_byte(actions)
- end
-
- it 'returns correct byte flag' do
- described_class.convert_actions_to_byte(actions).should == 257
- end
- end
-end
+require 'spec_helper'
+
+describe GroupDocs::Job do
+
+ it_behaves_like GroupDocs::Api::Entity
+ include_examples GroupDocs::Api::Helpers::Status
+
+ describe '.all!' do
+ before(:each) do
+ mock_api_server(load_json('jobs_get'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ described_class.all!({}, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'accepts options hash' do
+ lambda do
+ described_class.all!(:page => 1, :count => 2)
+ end.should_not raise_error()
+ end
+
+ it 'returns an array of GroupDocs::Job objects' do
+ jobs = described_class.all!
+ jobs.should be_an(Array)
+ jobs.each do |job|
+ job.should be_a(GroupDocs::Job)
+ end
+ end
+ end
+
+ describe '.get!' do
+ before(:each) do
+ mock_api_server(load_json('job_get'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ described_class.get!(1, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'returns GroupDocs::Job object' do
+ described_class.get!(1).should be_a(GroupDocs::Job)
+ end
+ end
+
+ describe '.create!' do
+ before(:each) do
+ mock_api_server(load_json('job_create'))
+ end
+
+ let(:actions) { %w(convert compress_zip) }
+
+ it 'accepts access credentials hash' do
+ lambda do
+ described_class.create!({ :actions => %w(convert) }, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'raises error if actions are passed' do
+ lambda { described_class.create!({}) }.should raise_error(ArgumentError)
+ end
+
+ it 'convert actions to byte flag' do
+ described_class.should_receive(:convert_actions_to_byte).with(actions).and_return(5)
+ described_class.create!(:actions => actions)
+ end
+
+ it 'returns GroupDocs::Job object' do
+ described_class.create!(:actions => actions).should be_a(GroupDocs::Job)
+ end
+ end
+
+ it { should have_accessor(:id) }
+ it { should have_accessor(:guid) }
+ it { should have_accessor(:name) }
+ it { should have_accessor(:priority) }
+ it { should have_accessor(:actions) }
+ it { should have_accessor(:email_results) }
+ it { should have_accessor(:url_only) }
+ it { should have_accessor(:documents) }
+ it { should have_accessor(:requested_time) }
+
+ describe '#documents=' do
+ let(:response) do
+ {
+ :inputs => [
+ { :id => 1, :guid => 'fhy9yh94u238dgf', :status => 0, :outputs => [] },
+ { :id => 2, :guid => 'ofh9rhy9rfohf9s', :status => 2, :outputs => [] }
+ ]
+ }
+ end
+
+ it 'saves documents as array of GroupDocs::Document objects' do
+ subject.documents = response
+ documents = subject.documents
+ documents.should be_an(Array)
+ documents.each do |document|
+ document.should be_a(GroupDocs::Document)
+ end
+ end
+
+ it 'does nothing if nil is passed' do
+ lambda do
+ subject.documents = nil
+ end.should_not change(subject, :documents)
+ end
+ end
+
+ describe '#requested_time' do
+ it 'converts timestamp to Time object' do
+ subject.requested_time = 1330450135000
+ subject.requested_time.should == Time.at(1330450135)
+ end
+ end
+
+ describe '#actions' do
+ it 'converts actions to human-readable format' do
+ subject.actions = 'Convert, Combine, CompressZip'
+ subject.actions.should == [:convert, :combine, :compress_zip]
+ end
+
+ it 'does nothing if there are no actions' do
+ subject.actions = nil
+ subject.actions.should be_nil
+ end
+ end
+
+ describe '#documents!' do
+ before(:each) do
+ mock_api_server(load_json('job_documents'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.documents!(:client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'updates job status' do
+ subject.documents!
+ subject.status.should == :archived
+ end
+
+ it 'returns hash' do
+ subject.documents!.should be_a(Hash)
+ end
+
+ it 'returns array of input documents' do
+ documents = subject.documents![:inputs]
+ documents.should be_an(Array)
+ documents.each do |document|
+ document.should be_a(GroupDocs::Document)
+ end
+ end
+
+ it 'returns array of output documents' do
+ documents = subject.documents![:outputs]
+ documents.should be_an(Array)
+ documents.each do |document|
+ document.should be_a(GroupDocs::Document)
+ end
+ end
+
+ it 'returns empty arrays if there are no documents' do
+ mock_api_server('{ "status": "Ok", "result": {}}')
+ subject.documents!.should == { :inputs => [], :outputs => [] }
+ end
+ end
+
+ describe '#add_document!' do
+ before(:each) do
+ mock_api_server(load_json('job_file_add'))
+ end
+
+ let(:document) do
+ GroupDocs::Document.new(:file => GroupDocs::Storage::File.new)
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.add_document!(document, {}, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'accepts options hash' do
+ lambda do
+ subject.add_document!(document, :output_formats => %w(pdf txt))
+ end.should_not raise_error()
+ end
+
+ it 'raises error if document is not an instance of GroupDocs::Document' do
+ lambda { subject.add_document!('Document') }.should raise_error(ArgumentError)
+ end
+
+ it 'returns document ID' do
+ subject.add_document!(document).should be_an(Integer)
+ end
+ end
+
+ describe '#delete_document!' do
+ before(:each) do
+ mock_api_server('{ "result": {}, "status": "Ok" }')
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.delete_document!('a9ufg8s7dfgsdf', :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'returns empty hash' do
+ subject.delete_document!('a9ufg8s7dfgsdf').should be_empty
+ end
+ end
+
+ describe '#add_datasource!' do
+ before(:each) do
+ mock_api_server('{ "status": "Ok", "result": {}}')
+ end
+ let(:document) do
+ GroupDocs::Document.new(:file => GroupDocs::Storage::File.new)
+ end
+
+ let(:datasource) do
+ GroupDocs::DataSource.new
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.add_datasource!(document, datasource, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'raises error if document is not an instance of GroupDocs::Document' do
+ lambda { subject.add_datasource!('Document') }.should raise_error(ArgumentError)
+ end
+
+ it 'raises error if datasource is not an instance of GroupDocs::DataSource' do
+ lambda { subject.add_datasource!(document, 'DataSource') }.should raise_error(ArgumentError)
+ end
+ end
+
+ describe '#add_url!' do
+ before(:each) do
+ mock_api_server(load_json('job_add_url'))
+ end
+
+ let(:url) { 'http://www.google.com' }
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.add_url!(url, {}, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'accepts options hash' do
+ lambda do
+ subject.add_url!(url, :out_formats => %W(pdf txt))
+ end.should_not raise_error()
+ end
+
+ it 'returns document ID' do
+ subject.add_url!(url).should be_an(Integer)
+ end
+ end
+
+ describe '#update!' do
+ before(:each) do
+ mock_api_server(load_json('job_update'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.update!({}, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'parses status' do
+ subject.should_receive(:parse_status).with(:draft).and_return(-1)
+ subject.update!(:status => :draft)
+ end
+ end
+
+ describe '#delete!' do
+ before(:each) do
+ mock_api_server('{ "status": "Ok", "result": {} }')
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.delete!(:client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+ end
+
+ describe '#convert_actions_to_byte' do
+ let(:actions) { %w(convert compare) }
+
+ it 'raises error if actions is not an array' do
+ lambda { described_class.convert_actions_to_byte(:export) }.should raise_error(ArgumentError)
+ end
+
+ it 'raises error if action is unknown' do
+ lambda { described_class.convert_actions_to_byte(%w(unknown)) }.should raise_error(ArgumentError)
+ end
+
+ it 'converts each action to Symbol' do
+ actions.each do |action|
+ symbol = action.to_sym
+ action.should_receive(:to_sym).and_return(symbol)
+ end
+ described_class.convert_actions_to_byte(actions)
+ end
+
+ it 'returns correct byte flag' do
+ described_class.convert_actions_to_byte(actions).should == 257
+ end
+ end
+end