spec/groupdocs/document/annotation_spec.rb in groupdocs-2.2.0 vs spec/groupdocs/document/annotation_spec.rb in groupdocs-2.3.0
- old
+ new
@@ -1,234 +1,234 @@
-require 'spec_helper'
-
-describe GroupDocs::Document::Annotation do
-
- it_behaves_like GroupDocs::Api::Entity
- include_examples GroupDocs::Api::Helpers::AccessMode
-
- subject do
- file = GroupDocs::Storage::File.new
- document = GroupDocs::Document.new(:file => file)
- described_class.new(:document => document)
- end
-
- it { should have_accessor(:document) }
- it { should have_accessor(:id) }
- it { should have_accessor(:guid) }
- it { should have_accessor(:sessionGuid) }
- it { should have_accessor(:documentGuid) }
- it { should have_accessor(:creatorGuid) }
- it { should have_accessor(:replyGuid) }
- it { should have_accessor(:createdOn) }
- it { should have_accessor(:type) }
- it { should have_accessor(:access) }
- it { should have_accessor(:box) }
- it { should have_accessor(:replies) }
- it { should have_accessor(:annotationPosition) }
-
- it { should alias_accessor(:session_guid, :sessionGuid) }
- it { should alias_accessor(:document_guid, :documentGuid) }
- it { should alias_accessor(:creator_guid, :creatorGuid) }
- it { should alias_accessor(:reply_guid, :replyGuid) }
- # Annotation#created_on is overwritten
- it { should have_alias(:created_on=, :createdOn=) }
- it { should alias_accessor(:annotation_position, :annotationPosition) }
-
- it { should have_alias(:annotationGuid=, :guid=) }
-
- describe '#initialize' do
- it 'raises error if document is not specified' do
- lambda { described_class.new }.should raise_error(ArgumentError)
- end
-
- it 'raises error if document is not an instance of GroupDocs::Document' do
- lambda { described_class.new(:document => '') }.should raise_error(ArgumentError)
- end
- end
-
- describe '#type=' do
- it 'saves type in machine readable format if symbol is passed' do
- subject.type = :text_strikeout
- subject.instance_variable_get(:@type).should == 'TextStrikeout'
- end
-
- it 'does nothing if parameter is not symbol' do
- subject.type = 'Area'
- subject.instance_variable_get(:@type).should == 'Area'
- end
-
- it 'raises error if type is unknown' do
- lambda { subject.type = :unknown }.should raise_error(ArgumentError)
- end
- end
-
- describe '#type' do
- it 'returns type in human-readable format' do
- subject.type = 'TextStrikeout'
- subject.type.should == :text_strikeout
- end
- end
-
- describe '#access=' do
- it 'converts symbol to string if passed' do
- subject.access = :public
- subject.instance_variable_get(:@access).should == 'Public'
- end
-
- it 'does nothing if not a symbol is passed' do
- subject.access = 'Blah'
- subject.instance_variable_get(:@access).should == 'Blah'
- end
- end
-
- describe '#created_on' do
- it 'returns converted to Time object Unix timestamp' do
- subject.created_on = 1332950825000
- subject.created_on.should == Time.at(1332950825)
- end
- end
-
- describe '#box=' do
- it 'converts passed hash to GroupDocs::Document::Rectangle object' do
- subject.box = { :x => 0.90, :y => 0.05, :width => 0.06745, :height => 0.005967 }
- subject.box.should be_a(GroupDocs::Document::Rectangle)
- subject.box.x.should == 0.90
- subject.box.y.should == 0.05
- subject.box.w.should == 0.06745
- subject.box.h.should == 0.005967
- end
- end
-
- describe '#replies=' do
- it 'converts each reply to GroupDocs::Document::Annotation::Reply object if hash is passed' do
- subject.replies = [{ }]
- replies = subject.replies
- replies.should be_an(Array)
- replies.each do |reply|
- reply.should be_a(GroupDocs::Document::Annotation::Reply)
- reply.annotation.should == subject
- end
- end
-
- it 'saves each reply if it is GroupDocs::Document::Annotation::Reply object' do
- reply1 = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
- reply2 = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
- subject.replies = [reply1, reply2]
- subject.replies.should include(reply1)
- subject.replies.should include(reply2)
- end
-
- it 'does nothing if nil is passed' do
- lambda do
- subject.replies = nil
- end.should_not change(subject, :replies)
- end
- end
-
- describe '#add_reply' do
- it 'raises error if reply is not GroupDocs::Document::Annotation::Reply object' do
- lambda { subject.add_reply('Reply') }.should raise_error(ArgumentError)
- end
-
- it 'saves reply' do
- reply = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
- subject.add_reply(reply)
- subject.replies.should == [reply]
- end
- end
-
- describe '#create!' do
- before(:each) do
- mock_api_server(load_json('annotation_create'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.create!(%w(info), :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'updated self with response values' do
- lambda do
- subject.create! :box => '10', :annotationPosition => '100'
- end.should change {
- subject.id
- subject.guid
- subject.document_guid
- subject.reply_guid
- subject.session_guid
- }
- end
- end
-
- describe '#remove!' do
- before(:each) do
- mock_api_server(load_json('annotation_remove'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.remove!(:client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
- end
-
- describe '#replies!' do
- it 'calls GroupDocs::Document::Annotation::Reply.get!' do
- GroupDocs::Document::Annotation::Reply.should_receive(:get!).with(subject, {}, {})
- subject.replies!
- end
- end
-
- describe '#move!' do
- before(:each) do
- mock_api_server(load_json('annotation_move'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.move!(10, 10, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'updates annotation position' do
- lambda do
- subject.move!(10, 10)
- end.should change(subject, :annotation_position).to(:x => 10, :y => 10)
- end
- end
-
- describe '#move_marker!' do
- before(:each) do
- mock_api_server('{ "status": "Ok", "result": {}}')
- end
-
- let(:marker) { GroupDocs::Document::Annotation::MarkerPosition.new(:position => {:x => 1, :y => 1}, :page=>1)}
-1
- it 'accepts access credentials hash' do
- lambda do
- subject.move_marker!(marker, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
- it 'raises error if marker is not GroupDocs::Document::Annotation::MarkerPosition object' do
- lambda { subject.move_marker!(['MarkerPosition']) }.should raise_error(ArgumentError)
- end
-
- end
-
- describe '#set_access!' do
- before(:each) do
- mock_api_server(load_json('annotation_access_set'))
- end
-
- it 'accepts access credentials hash' do
- lambda do
- subject.set_access!(:private, :client_id => 'client_id', :private_key => 'private_key')
- end.should_not raise_error()
- end
-
- it 'updates annotation access mode' do
- subject.set_access!(:private)
- subject.access.should == :private
- end
- end
-end
+require 'spec_helper'
+
+describe GroupDocs::Document::Annotation do
+
+ it_behaves_like GroupDocs::Api::Entity
+ include_examples GroupDocs::Api::Helpers::AccessMode
+
+ subject do
+ file = GroupDocs::Storage::File.new
+ document = GroupDocs::Document.new(:file => file)
+ described_class.new(:document => document)
+ end
+
+ it { should have_accessor(:document) }
+ it { should have_accessor(:id) }
+ it { should have_accessor(:guid) }
+ it { should have_accessor(:sessionGuid) }
+ it { should have_accessor(:documentGuid) }
+ it { should have_accessor(:creatorGuid) }
+ it { should have_accessor(:replyGuid) }
+ it { should have_accessor(:createdOn) }
+ it { should have_accessor(:type) }
+ it { should have_accessor(:access) }
+ it { should have_accessor(:box) }
+ it { should have_accessor(:replies) }
+ it { should have_accessor(:annotationPosition) }
+
+ it { should alias_accessor(:session_guid, :sessionGuid) }
+ it { should alias_accessor(:document_guid, :documentGuid) }
+ it { should alias_accessor(:creator_guid, :creatorGuid) }
+ it { should alias_accessor(:reply_guid, :replyGuid) }
+ # Annotation#created_on is overwritten
+ it { should have_alias(:created_on=, :createdOn=) }
+ it { should alias_accessor(:annotation_position, :annotationPosition) }
+
+ it { should have_alias(:annotationGuid=, :guid=) }
+
+ describe '#initialize' do
+ it 'raises error if document is not specified' do
+ lambda { described_class.new }.should raise_error(ArgumentError)
+ end
+
+ it 'raises error if document is not an instance of GroupDocs::Document' do
+ lambda { described_class.new(:document => '') }.should raise_error(ArgumentError)
+ end
+ end
+
+ describe '#type=' do
+ it 'saves type in machine readable format if symbol is passed' do
+ subject.type = :text_strikeout
+ subject.instance_variable_get(:@type).should == 'TextStrikeout'
+ end
+
+ it 'does nothing if parameter is not symbol' do
+ subject.type = 'Area'
+ subject.instance_variable_get(:@type).should == 'Area'
+ end
+
+ it 'raises error if type is unknown' do
+ lambda { subject.type = :unknown }.should raise_error(ArgumentError)
+ end
+ end
+
+ describe '#type' do
+ it 'returns type in human-readable format' do
+ subject.type = 'TextStrikeout'
+ subject.type.should == :text_strikeout
+ end
+ end
+
+ describe '#access=' do
+ it 'converts symbol to string if passed' do
+ subject.access = :public
+ subject.instance_variable_get(:@access).should == 'Public'
+ end
+
+ it 'does nothing if not a symbol is passed' do
+ subject.access = 'Blah'
+ subject.instance_variable_get(:@access).should == 'Blah'
+ end
+ end
+
+ describe '#created_on' do
+ it 'returns converted to Time object Unix timestamp' do
+ subject.created_on = 1332950825000
+ subject.created_on.should == Time.at(1332950825)
+ end
+ end
+
+ describe '#box=' do
+ it 'converts passed hash to GroupDocs::Document::Rectangle object' do
+ subject.box = { :x => 0.90, :y => 0.05, :width => 0.06745, :height => 0.005967 }
+ subject.box.should be_a(GroupDocs::Document::Rectangle)
+ subject.box.x.should == 0.90
+ subject.box.y.should == 0.05
+ subject.box.w.should == 0.06745
+ subject.box.h.should == 0.005967
+ end
+ end
+
+ describe '#replies=' do
+ it 'converts each reply to GroupDocs::Document::Annotation::Reply object if hash is passed' do
+ subject.replies = [{ }]
+ replies = subject.replies
+ replies.should be_an(Array)
+ replies.each do |reply|
+ reply.should be_a(GroupDocs::Document::Annotation::Reply)
+ reply.annotation.should == subject
+ end
+ end
+
+ it 'saves each reply if it is GroupDocs::Document::Annotation::Reply object' do
+ reply1 = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
+ reply2 = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
+ subject.replies = [reply1, reply2]
+ subject.replies.should include(reply1)
+ subject.replies.should include(reply2)
+ end
+
+ it 'does nothing if nil is passed' do
+ lambda do
+ subject.replies = nil
+ end.should_not change(subject, :replies)
+ end
+ end
+
+ describe '#add_reply' do
+ it 'raises error if reply is not GroupDocs::Document::Annotation::Reply object' do
+ lambda { subject.add_reply('Reply') }.should raise_error(ArgumentError)
+ end
+
+ it 'saves reply' do
+ reply = GroupDocs::Document::Annotation::Reply.new(:annotation => subject)
+ subject.add_reply(reply)
+ subject.replies.should == [reply]
+ end
+ end
+
+ describe '#create!' do
+ before(:each) do
+ mock_api_server(load_json('annotation_create'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.create!(%w(info), :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'updated self with response values' do
+ lambda do
+ subject.create! :box => '10', :annotationPosition => '100'
+ end.should change {
+ subject.id
+ subject.guid
+ subject.document_guid
+ subject.reply_guid
+ subject.session_guid
+ }
+ end
+ end
+
+ describe '#remove!' do
+ before(:each) do
+ mock_api_server(load_json('annotation_remove'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.remove!(:client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+ end
+
+ describe '#replies!' do
+ it 'calls GroupDocs::Document::Annotation::Reply.get!' do
+ GroupDocs::Document::Annotation::Reply.should_receive(:get!).with(subject, {}, {})
+ subject.replies!
+ end
+ end
+
+ describe '#move!' do
+ before(:each) do
+ mock_api_server(load_json('annotation_move'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.move!(10, 10, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'updates annotation position' do
+ lambda do
+ subject.move!(10, 10)
+ end.should change(subject, :annotation_position).to(:x => 10, :y => 10)
+ end
+ end
+
+ describe '#move_marker!' do
+ before(:each) do
+ mock_api_server('{ "status": "Ok", "result": {}}')
+ end
+
+ let(:marker) { GroupDocs::Document::Annotation::MarkerPosition.new(:position => {:x => 1, :y => 1}, :page=>1)}
+1
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.move_marker!(marker, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+ it 'raises error if marker is not GroupDocs::Document::Annotation::MarkerPosition object' do
+ lambda { subject.move_marker!(['MarkerPosition']) }.should raise_error(ArgumentError)
+ end
+
+ end
+
+ describe '#set_access!' do
+ before(:each) do
+ mock_api_server(load_json('annotation_access_set'))
+ end
+
+ it 'accepts access credentials hash' do
+ lambda do
+ subject.set_access!(:private, :client_id => 'client_id', :private_key => 'private_key')
+ end.should_not raise_error()
+ end
+
+ it 'updates annotation access mode' do
+ subject.set_access!(:private)
+ subject.access.should == :private
+ end
+ end
+end