Sha256: 9ccfae8193dc7f48f870c3c669a68f1735829ccc36a075d0d88d88f2af2ff779

Contents?: true

Size: 1.82 KB

Versions: 18

Compression:

Stored size: 1.82 KB

Contents

require 'spec_helper'

describe ActiveFedora::SimpleDatastream do

  before do
    @sample_xml =  "<fields><coverage>coverage1</coverage><coverage>coverage2</coverage><creation_date>2012-01-15</creation_date><mydate>fake-date</mydate><publisher>publisher1</publisher></fields>"
    @test_ds = ActiveFedora::SimpleDatastream.from_xml(@sample_xml )
    @test_ds.field :coverage
    @test_ds.field :creation_date, :date
    @test_ds.field :mydate
    @test_ds.field :publisher

  end
  it "from_xml should parse everything correctly" do
    @test_ds.ng_xml.should be_equivalent_to @sample_xml
  end

  
  describe '#new' do
    describe "model methods" do 

      [:coverage, :mydate, :publisher].each do |el|
        it "should respond to getters and setters for the string typed #{el} element" do
          value = "Hey #{el}"
          @test_ds.send("#{el.to_s}=", value) 
          @test_ds.send(el).first.should == value  #Looking at first because creator has 2 nodes
        end
      end

      it "should set date elements" do
        d = Date.parse('1939-05-23')
        @test_ds.creation_date = d
        @test_ds.creation_date.first.should == d
      end
    end
  end
  
  describe '.to_xml' do
    it 'should output the fields hash as Qualified Dublin Core XML' do
      @test_ds.publisher= "charlie"
      @test_ds.coverage= ["80%", "20%"]

      @test_ds.to_xml.should be_equivalent_to('
        <fields>
          <coverage>80%</coverage>
          <coverage>20%</coverage>
          <creation_date>2012-01-15</creation_date>
          <mydate>fake-date</mydate>
          <publisher>charlie</publisher>
        </fields>')
    end
  end

  describe "#to_solr" do
    it "should have title" do
      solr = @test_ds.to_solr
      solr["publisher_t"].should == ["publisher1"]
      solr["creation_date_dt"].should == ["2012-01-15"]
    end
  end

end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
active-fedora-5.5.0 spec/unit/simple_datastream_spec.rb
active-fedora-5.5.0.rc2 spec/unit/simple_datastream_spec.rb
active-fedora-5.5.0.rc1 spec/unit/simple_datastream_spec.rb
active-fedora-5.4.0 spec/unit/simple_datastream_spec.rb
active-fedora-5.3.1 spec/unit/simple_datastream_spec.rb
active-fedora-5.3.0 spec/unit/simple_datastream_spec.rb
active-fedora-5.2.1 spec/unit/simple_datastream_spec.rb
active-fedora-5.2.0 spec/unit/simple_datastream_spec.rb
active-fedora-5.1.0 spec/unit/simple_datastream_spec.rb
active-fedora-5.0.0 spec/unit/simple_datastream_spec.rb
active-fedora-5.0.0.rc5 spec/unit/simple_datastream_spec.rb
active-fedora-5.0.0.rc4 spec/unit/simple_datastream_spec.rb
active-fedora-5.0.0.rc3 spec/unit/simple_datastream_spec.rb
active-fedora-5.0.0.rc2 spec/unit/simple_datastream_spec.rb
active-fedora-5.0.0.rc1 spec/unit/simple_datastream_spec.rb
active-fedora-4.6.0.rc4 spec/unit/simple_datastream_spec.rb
active-fedora-4.6.0.rc3 spec/unit/simple_datastream_spec.rb
active-fedora-4.6.0.rc2 spec/unit/simple_datastream_spec.rb