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