Sha256: ca8889f2a089967fa31cb36a647f05aef05c8baed95a14eb2a042e80e511c860

Contents?: true

Size: 1.2 KB

Versions: 30

Compression:

Stored size: 1.2 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 = described_class.create
      obj.destroy
      obj.id
    end
    context "in a typical sitation" do
      specify "it cannot be reused" do
        expect { described_class.create(ghost) }.to raise_error(Ldp::Gone)
      end
    end
    specify "remove its tombstone" do
      expect(described_class.eradicate(ghost)).to be true
    end
  end

  context "when an object has just been deleted" do
    let(:zombie) do
      obj = described_class.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 "allows reusing a uri" do
      expect(ResurrectionModel.create(id: lazarus)).to be_kind_of(ResurrectionModel)
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
active-fedora-9.7.3 spec/integration/eradicate_spec.rb
active-fedora-11.0.0.rc2 spec/integration/eradicate_spec.rb
active-fedora-11.0.0.rc1 spec/integration/eradicate_spec.rb
active-fedora-10.1.0 spec/integration/eradicate_spec.rb
active-fedora-10.1.0.rc1 spec/integration/eradicate_spec.rb
active-fedora-9.7.2 spec/integration/eradicate_spec.rb
active-fedora-10.0.0 spec/integration/eradicate_spec.rb
active-fedora-10.0.0.beta4 spec/integration/eradicate_spec.rb
active-fedora-10.0.0.beta3 spec/integration/eradicate_spec.rb
active-fedora-10.0.0.beta2 spec/integration/eradicate_spec.rb
active-fedora-10.0.0.beta1 spec/integration/eradicate_spec.rb
active-fedora-9.13.0 spec/integration/eradicate_spec.rb
active-fedora-9.12.0 spec/integration/eradicate_spec.rb
active-fedora-9.11.0 spec/integration/eradicate_spec.rb
active-fedora-9.10.4 spec/integration/eradicate_spec.rb
active-fedora-9.10.3 spec/integration/eradicate_spec.rb
active-fedora-9.10.2 spec/integration/eradicate_spec.rb
active-fedora-9.10.1 spec/integration/eradicate_spec.rb
active-fedora-9.10.0 spec/integration/eradicate_spec.rb
active-fedora-9.10.0.pre2 spec/integration/eradicate_spec.rb