Sha256: b511b762aa4367c44598c6f2102cf9de59271c847964b7504de8e1113ae7ae8e

Contents?: true

Size: 1.55 KB

Versions: 8

Compression:

Stored size: 1.55 KB

Contents

require "spec_helper"
require 'ostruct'
require "active_fedora/rspec_matchers/have_many_associated_active_fedora_objects_matcher"

describe RSpec::Matchers, "have_many_associated_active_fedora_objects_matcher" do
  subject { OpenStruct.new(:pid => pid )}
  let(:pid) { 123 }
  let(:object1) { Object.new }
  let(:object2) { Object.new }
  let(:object3) { Object.new }
  let(:association) { :association }

  it 'should match when association is properly stored in fedora' do
    expect(subject.class).to receive(:find).with(pid).and_return(subject)
    expect(subject).to receive(association).and_return([object1,object2])
    expect(subject).to have_many_associated_active_fedora_objects(association).with_objects([object1, object2])
  end

  it 'should not match when association is different' do
    expect(subject.class).to receive(:find).with(pid).and_return(subject)
    expect(subject).to receive(association).and_return([object1,object3])
    expect {
      expect(subject).to have_many_associated_active_fedora_objects(association).with_objects([object1, object2])
    }.to (
      raise_error(
        RSpec::Expectations::ExpectationNotMetError,
        /expected #{subject.class} PID=#{pid} association: #{association.inspect}/
      )
    )
  end

  it 'should require :with_objects option' do
    expect {
      expect(subject).to have_many_associated_active_fedora_objects(association)
    }.to(
      raise_error(
        ArgumentError,
        "subject.should have_many_associated_active_fedora_objects(<association_name>).with_objects(<objects[]>)"
      )
    )
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
active-fedora-8.7.0 spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb
active-fedora-8.6.0 spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb
active-fedora-8.5.0 spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb
active-fedora-8.4.2 spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb
active-fedora-8.4.1 spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb
active-fedora-8.4.0 spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb
active-fedora-8.3.0 spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb
active-fedora-8.2.2 spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb