Sha256: 85c9ec745ad695702dfe6a386dcb1391462b7f3f8834498e9e7bf0d5f64658f6

Contents?: true

Size: 1.2 KB

Versions: 45

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(id: 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

45 entries across 45 versions & 1 rubygems

Version Path
active-fedora-12.2.4 spec/integration/eradicate_spec.rb
active-fedora-12.2.3 spec/integration/eradicate_spec.rb
active-fedora-11.5.6 spec/integration/eradicate_spec.rb
active-fedora-12.2.2 spec/integration/eradicate_spec.rb
active-fedora-11.2.1 spec/integration/eradicate_spec.rb
active-fedora-12.2.1 spec/integration/eradicate_spec.rb
active-fedora-12.0.3 spec/integration/eradicate_spec.rb
active-fedora-11.5.5 spec/integration/eradicate_spec.rb
active-fedora-13.1.2 spec/integration/eradicate_spec.rb
active-fedora-13.1.1 spec/integration/eradicate_spec.rb
active-fedora-13.1.0 spec/integration/eradicate_spec.rb
active-fedora-13.0.0 spec/integration/eradicate_spec.rb
active-fedora-12.1.1 spec/integration/eradicate_spec.rb
active-fedora-12.1.0 spec/integration/eradicate_spec.rb
active-fedora-11.5.4 spec/integration/eradicate_spec.rb
active-fedora-11.5.3 spec/integration/eradicate_spec.rb
active-fedora-12.0.2 spec/integration/eradicate_spec.rb
active-fedora-12.0.1 spec/integration/eradicate_spec.rb
active-fedora-11.5.2 spec/integration/eradicate_spec.rb
active-fedora-12.0.0 spec/integration/eradicate_spec.rb