spec/datastream_spec.rb in rubydora-0.2.1 vs spec/datastream_spec.rb in rubydora-0.2.2
- old
+ new
@@ -1,46 +1,51 @@
require 'spec_helper'
describe Rubydora::Datastream do
+ before do
+ @mock_repository = mock(Rubydora::Repository)
+ @mock_object = mock(Rubydora::DigitalObject)
+ @mock_object.stub(:repository => @mock_repository, :pid => 'pid')
+ end
+
describe "create" do
before(:each) do
- @mock_repository = mock(Rubydora::Repository)
- @mock_object = mock(Rubydora::DigitalObject)
- @mock_object.should_receive(:repository).any_number_of_times.and_return(@mock_repository)
- @mock_object.should_receive(:pid).any_number_of_times.and_return 'pid'
+ @mock_repository.stub(:datastream) { raise("") }
@datastream = Rubydora::Datastream.new @mock_object, 'dsid'
end
it "should be new" do
- @mock_repository.should_receive(:datastream).and_raise("")
@datastream.new?.should == true
end
it "should be dirty" do
@datastream.changed?.should == false
end
+ it "should have default values" do
+ @datastream.controlGroup == "M"
+ @datastream.dsState.should == "A"
+ @datastream.checksumType.should == "DISABLED"
+ @datastream.versionable.should == true
+ @datastream.changed.should be_empty
+ end
+
+
it "should call the appropriate api on save" do
- @mock_repository.should_receive(:datastream).and_raise("")
@mock_repository.should_receive(:add_datastream).with(hash_including(:pid => 'pid', :dsid => 'dsid', :controlGroup => 'M', :dsState => 'A'))
@datastream.save
end
it "should be able to override defaults" do
- @mock_repository.should_receive(:datastream).and_raise("")
@mock_repository.should_receive(:add_datastream).with(hash_including(:controlGroup => 'E'))
@datastream.controlGroup = 'E'
@datastream.save
end
end
describe "retrieve" do
before(:each) do
- @mock_repository = mock(Rubydora::Repository)
- @mock_object = mock(Rubydora::DigitalObject)
- @mock_object.should_receive(:repository).any_number_of_times.and_return(@mock_repository)
- @mock_object.should_receive(:pid).any_number_of_times.and_return 'pid'
@datastream = Rubydora::Datastream.new @mock_object, 'dsid'
@mock_repository.should_receive(:datastream).any_number_of_times.and_return <<-XML
<datastreamProfile>
<dsLocation>some:uri</dsLocation>
<dsLabel>label</dsLabel>
@@ -77,14 +82,10 @@
end
describe "update" do
before(:each) do
- @mock_repository = mock(Rubydora::Repository)
- @mock_object = mock(Rubydora::DigitalObject)
- @mock_object.should_receive(:repository).any_number_of_times.and_return(@mock_repository)
- @mock_object.should_receive(:pid).any_number_of_times.and_return 'pid'
@datastream = Rubydora::Datastream.new @mock_object, 'dsid'
@mock_repository.should_receive(:datastream).any_number_of_times.and_return <<-XML
<datastreamProfile>
<dsLocation>some:uri</dsLocation>
<dsLabel>label</dsLabel>
@@ -117,13 +118,11 @@
end
describe "to_api_params" do
before(:each) do
- @mock_object = mock(Rubydora::DigitalObject)
- @mock_object.should_receive(:repository).any_number_of_times.and_return(@mock_repository)
- @mock_object.should_receive(:pid).any_number_of_times.and_return 'pid'
@datastream = Rubydora::Datastream.new @mock_object, 'dsid'
+ @datastream.stub(:profile) { {} }
end
it "should compile parameters to hash" do
@datastream.send(:to_api_params).should == {:checksumType=>"DISABLED", :versionable=>true,
:controlGroup=>"M", :dsState=>"A"}
end