Sha256: 97b0c1aee58771c340703089179a28ed0b81579b7b68a8bd513fef533620a76a

Contents?: true

Size: 1.94 KB

Versions: 1

Compression:

Stored size: 1.94 KB

Contents

require 'spec_helper'

describe ActiveFedora::Model do
  
  before(:each) do 
    module ModelIntegrationSpec
      
      class Base < ActiveFedora::Base
        include ActiveFedora::Model
        def self.pid_namespace
          "foo"
        end
      end
      class Basic < Base
      end
    end

    @test_instance = ModelIntegrationSpec::Basic.new
    @test_instance.save
    
  end
  
  after(:each) do
    @test_instance.delete
    Object.send(:remove_const, :ModelIntegrationSpec)
  end
  
  describe '#find' do
    describe "with :all" do
      it "should return an array of instances of the calling Class" do
        result = ModelIntegrationSpec::Basic.find(:all)
        result.should be_instance_of(Array)
        # this test is meaningless if the array length is zero
        result.length.should > 0
        result.each do |obj|
          obj.class.should == ModelIntegrationSpec::Basic
        end
      end
    end
    describe "#find with a valid pid with cast" do
      subject { ActiveFedora::Base.find('hydrangea:fixture_mods_article1', :cast=>true) }
      it { should be_instance_of HydrangeaArticle}
    end
    describe "#find with a valid pid without cast" do
      subject { ActiveFedora::Base.find('hydrangea:fixture_mods_article1') }
      it { should be_instance_of ActiveFedora::Base}
    end
  end

  describe "#load_instance_from_solr" do
    describe "with a valid pid" do
      subject { ActiveFedora::Base.load_instance_from_solr('hydrangea:fixture_mods_article1') }
      it { should be_instance_of HydrangeaArticle}
    end
    describe "with metadata datastrem spec" do
      subject { ActiveFedora::Base.load_instance_from_solr('hydrangea:fixture_mods_article1') }
      it "should create an xml datastream" do
        subject.datastreams['properties'].should be_kind_of ActiveFedora::SimpleDatastream
      end

      it "should know the datastreams properties" do
        subject.properties.dsSize.should == 19
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
active-fedora-6.1.1 spec/integration/model_spec.rb