spec/unit/datastreams_spec.rb in active-fedora-4.4.1 vs spec/unit/datastreams_spec.rb in active-fedora-4.5.0

- old
+ new

@@ -55,11 +55,13 @@ FooHistory.has_metadata :type=>ActiveFedora::Datastream, :name=>'new_ds', :control_group=>'R' FooHistory.ds_specs['new_ds'][:control_group].should == 'R' end it "should be able to set versionable to false" do FooHistory.has_metadata :type=>ActiveFedora::Datastream, :name=>'new_ds', :versionable=>false + FooHistory.has_file_datastream :type=>ActiveFedora::Datastream, :name=>'newer_ds', :versionable=>false FooHistory.ds_specs['new_ds'][:versionable].should be_false + FooHistory.ds_specs['newer_ds'][:versionable].should be_false end it "should be able to set versionable to true" do FooHistory.has_metadata :type=>ActiveFedora::Datastream, :name=>'new_ds', :versionable=>true FooHistory.ds_specs['new_ds'][:versionable].should be_true end @@ -69,34 +71,48 @@ end end describe "creates datastreams" do - before do + before(:each) do class FooHistory < ActiveFedora::Base has_metadata :type=>ActiveFedora::SimpleDatastream, :name=>"someData" do |m| m.field "fubar", :string m.field "swank", :text end has_metadata :type=>ActiveFedora::SimpleDatastream, :name=>"withText2", :label=>"withLabel" do |m| m.field "fubar", :text end + + has_metadata :type=>ActiveFedora::SimpleDatastream, :name=>"no_autocreate", :autocreate => false, :label=>"withLabel" do |m| + m.field "fubar", :text + end end stub_ingest(@this_pid) - stub_add_ds(@this_pid, ['RELS-EXT', 'someData', 'withText', 'withText2']) + stub_add_ds(@this_pid, ['RELS-EXT', 'someData', 'withText', 'withText2','no_autocreate']) @n = FooHistory.new() FooHistory.stubs(:assign_pid).returns(@this_pid) @n.datastreams['RELS-EXT'].expects(:changed?).returns(true).at_least_once @n.expects(:update_index) - @n.save end after do Object.send(:remove_const, :FooHistory) end + it "should respect autocreate => false" do + @n.datastreams['no_autocreate'].expects(:save).never + @n.save + end + + it "should default to autocreating datastreams" do + @n.datastreams['someData'].expects(:save).once + @n.save + end + it "should create specified datastreams with specified fields" do + @n.save @n.datastreams["someData"].should_not be_nil @n.datastreams["someData"].fubar='bar' @n.datastreams["someData"].fubar.should == ['bar'] @n.datastreams["withText2"].dsLabel.should == "withLabel" end