spec/unit/mover_spec.rb in fedora-migrate-0.0.1 vs spec/unit/mover_spec.rb in fedora-migrate-0.1.0
- old
+ new
@@ -5,11 +5,10 @@
it { is_expected.to respond_to :source }
it { is_expected.to respond_to :target }
it { is_expected.to respond_to :options }
describe "#new" do
-
context "with two arguments" do
subject { FedoraMigrate::Mover.new("foo", "bar") }
specify "has a source" do
expect(subject.source).to eql("foo")
end
@@ -32,8 +31,43 @@
end
specify "has a target" do
expect(subject.target).to be_nil
end
end
+ end
+ describe "::id_component" do
+ context "with a Rubydora object" do
+ let(:id) { "rb68xc11m" }
+ let(:object) { FedoraMigrate.source.connection.find("sufia:#{id}") }
+ subject { FedoraMigrate::Mover.id_component(object) }
+ it { is_expected.to eql(id) }
+ end
+ context "with a URI" do
+ let(:object) { RDF::URI.new("foo:bar") }
+ subject { FedoraMigrate::Mover.id_component(object) }
+ it { is_expected.to eql("bar") }
+ end
+ context "with a string" do
+ let(:object) { "foo:bar" }
+ subject { FedoraMigrate::Mover.id_component(object) }
+ it { is_expected.to eql("bar") }
+ end
end
+
+ describe "#id_component" do
+ context "with a source" do
+ subject { FedoraMigrate::Mover.new("source:pid").id_component }
+ it { is_expected.to eql("pid") }
+ end
+ context "object, but no source" do
+ subject { FedoraMigrate::Mover.new.id_component("source:pid") }
+ it { is_expected.to eql("pid") }
+ end
+ context "neither object, nor source" do
+ specify "raises an error" do
+ expect { FedoraMigrate::Mover.new.id_component }.to raise_error(FedoraMigrate::Errors::MigrationError)
+ end
+ end
+ end
+
end