spec/groupdocs/document_spec.rb in groupdocs-1.1.0 vs spec/groupdocs/document_spec.rb in groupdocs-1.2.0
- old
+ new
@@ -28,21 +28,108 @@
view.should be_a(GroupDocs::Document::View)
end
end
end
- it { should respond_to(:file) }
- it { should respond_to(:file=) }
- it { should respond_to(:process_date) }
- it { should respond_to(:process_date=) }
- it { should respond_to(:outputs) }
- it { should respond_to(:outputs=) }
- it { should respond_to(:output_formats) }
- it { should respond_to(:output_formats=) }
- it { should respond_to(:order) }
- it { should respond_to(:order=) }
+ describe '.templates!' do
+ before(:each) do
+ mock_api_server(load_json('templates_get'))
+ end
+ it 'accepts access credentials hash' do
+ lambda do
+ described_class.templates!(client_id: 'client_id', private_key: 'private_key')
+ end.should_not raise_error(ArgumentError)
+ end
+
+ it 'returns an array of GroupDocs::Document objects' do
+ templates = described_class.templates!
+ templates.should be_an(Array)
+ templates.each do |template|
+ template.should be_a(GroupDocs::Document)
+ end
+ end
+ end
+
+ describe '.sign_documents!' do
+ before(:each) do
+ mock_api_server(load_json('sign_documents'))
+ end
+
+ let(:documents) do
+ [GroupDocs::Document.new(file: GroupDocs::Storage::File.new(name: 'Document1', local_path: __FILE__)),
+ GroupDocs::Document.new(file: GroupDocs::Storage::File.new(name: 'Document2', local_path: 'spec/support/files/resume.pdf'))]
+ end
+ let(:signatures) { [GroupDocs::Signature.new(name: 'John Smith', image_path: 'spec/support/files/signature.png', position: {})] }
+
+ it 'accepts access credentials hash' do
+ lambda do
+ described_class.sign_documents!(documents, signatures, {}, client_id: 'client_id', private_key: 'private_key')
+ end.should_not raise_error(ArgumentError)
+ end
+
+ it 'raises error if document is not GroupDocs::Document object' do
+ -> { described_class.sign_documents!(['Document'], signatures) }.should raise_error(ArgumentError)
+ end
+
+ it 'raises error if document file does not have name' do
+ documents = [GroupDocs::Document.new(file: GroupDocs::Storage::File.new(local_path: __FILE__))]
+ -> { described_class.sign_documents!(documents, signatures) }.should raise_error(ArgumentError)
+ end
+
+ it 'raises error if document file does not have local path' do
+ documents = [GroupDocs::Document.new(file: GroupDocs::Storage::File.new(name: 'Document'))]
+ -> { described_class.sign_documents!(documents, signatures) }.should raise_error(ArgumentError)
+ end
+
+ it 'raises error if signature is not GroupDocs::Signature object' do
+ -> { described_class.sign_documents!(documents, ['Signature']) }.should raise_error(ArgumentError)
+ end
+
+ it 'raises error if signature does not have name' do
+ signatures = [GroupDocs::Signature.new(image_path: __FILE__, position: {})]
+ -> { described_class.sign_documents!(documents, signatures) }.should raise_error(ArgumentError)
+ end
+
+ it 'raises error if signature does not have image path' do
+ signatures = [GroupDocs::Signature.new(name: 'John Smith', position: {})]
+ -> { described_class.sign_documents!(documents, signatures) }.should raise_error(ArgumentError)
+ end
+
+ it 'raises error if signature does not have position' do
+ signatures = [GroupDocs::Signature.new(name: 'John Smith', image_path: __FILE__)]
+ -> { described_class.sign_documents!(documents, signatures) }.should raise_error(ArgumentError)
+ end
+
+ it 'detects each document and signature file MIME type' do
+ documents.each { |document| described_class.should_receive(:mime_type).with(document.file.local_path).once }
+ signatures.each { |signature| described_class.should_receive(:mime_type).with(signature.image_path).once }
+ described_class.sign_documents!(documents, signatures)
+ end
+
+ it 'returns array of GroupDocs::Document.objects' do
+ signed_documents = described_class.sign_documents!(documents, signatures)
+ signed_documents.should be_an(Array)
+ signed_documents.each do |document|
+ document.should be_a(GroupDocs::Document)
+ end
+ end
+
+ it 'calculates file name for each signed document' do
+ signed_documents = described_class.sign_documents!(documents, signatures)
+ signed_documents[0].file.name.should == "#{documents[0].file.name}_signed.pdf"
+ signed_documents[1].file.name.should == "#{documents[1].file.name}_signed.pdf"
+ end
+ end
+
+ it { should have_accessor(:file) }
+ it { should have_accessor(:process_date) }
+ it { should have_accessor(:outputs) }
+ it { should have_accessor(:output_formats) }
+ it { should have_accessor(:order) }
+ it { should have_accessor(:field_count) }
+
it { should have_alias(:access_mode=, :access_mode_set!) }
describe '#outputs=' do
let(:response) do
[
@@ -86,9 +173,35 @@
-> { described_class.new }.should raise_error(ArgumentError)
end
it 'raises error if file is not an instance of GroupDocs::Storage::File' do
-> { described_class.new(file: '') }.should raise_error(ArgumentError)
+ end
+ end
+
+ describe '#page_images!' do
+ before(:each) do
+ mock_api_server(load_json('document_page_images_get'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.page_images!(640, 480, {}, client_id: 'client_id', private_key: 'private_key')
+ end.should_not raise_error(ArgumentError)
+ end
+
+ it 'accepts options hash' do
+ lambda do
+ subject.page_images!(640, 480, first_page: 0, page_count: 1)
+ end.should_not raise_error(ArgumentError)
+ end
+
+ it 'returns array of URLs' do
+ urls = subject.page_images!(640, 480)
+ urls.should be_an(Array)
+ urls.each do |url|
+ url.should be_a(String)
+ end
end
end
describe '#access_mode!' do
before(:each) do