Sha256: 804041e4f1d77e2fc5d52e4720e519f47b3c797ab7bf624ed9f90ff01ccef850

Contents?: true

Size: 1.21 KB

Versions: 33

Compression:

Stored size: 1.21 KB

Contents

require 'spec_helper'

describe ActiveFedora::Base do

  before(:all) do
    class ResurrectionModel < ActiveFedora::Base
      after_destroy :eradicate
    end
  end

  after(:all) do
    Object.send(:remove_const, :ResurrectionModel)
  end

  context "when an object is has already been deleted" do
    let(:ghost) do
      obj = ActiveFedora::Base.create
      obj.destroy
      obj.id
    end
    context "in a typical sitation" do
      specify "it cannot be reused" do
        expect { ActiveFedora::Base.create(ghost) }.to raise_error(Ldp::Gone)
      end
    end
    specify "remove its tombstone" do
      expect(ActiveFedora::Base.eradicate(ghost)).to be true
    end
  end

  context "when an object has just been deleted" do
    let(:zombie) do
      obj = ActiveFedora::Base.create
      obj.destroy
      return obj
    end
    specify "remove its tombstone" do
      expect(zombie.eradicate).to be true
    end
  end

  describe "a model with no tombstones" do
    let(:lazarus) do
      body = ResurrectionModel.create
      soul = body.id
      body.destroy
      return soul
    end
    it "should allow reusing a uri" do
      expect(ResurrectionModel.create(id: lazarus)).to be_kind_of(ResurrectionModel)
    end
  end

end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
active-fedora-9.0.8 spec/integration/eradicate_spec.rb
active-fedora-9.5.0 spec/integration/eradicate_spec.rb
active-fedora-9.4.3 spec/integration/eradicate_spec.rb
active-fedora-9.4.2 spec/integration/eradicate_spec.rb
active-fedora-9.4.1 spec/integration/eradicate_spec.rb
active-fedora-9.4.0 spec/integration/eradicate_spec.rb
active-fedora-9.3.0 spec/integration/eradicate_spec.rb
active-fedora-9.2.1 spec/integration/eradicate_spec.rb
active-fedora-9.2.0 spec/integration/eradicate_spec.rb
active-fedora-9.2.0.rc2 spec/integration/eradicate_spec.rb
active-fedora-9.2.0.rc1 spec/integration/eradicate_spec.rb
active-fedora-9.1.2 spec/integration/eradicate_spec.rb
active-fedora-9.1.1 spec/integration/eradicate_spec.rb
active-fedora-9.1.0 spec/integration/eradicate_spec.rb
active-fedora-9.1.0.rc1 spec/integration/eradicate_spec.rb
active-fedora-9.0.6 spec/integration/eradicate_spec.rb
active-fedora-9.0.5 spec/integration/eradicate_spec.rb
active-fedora-9.0.4 spec/integration/eradicate_spec.rb
active-fedora-9.0.3 spec/integration/eradicate_spec.rb
active-fedora-9.0.2 spec/integration/eradicate_spec.rb