Sha256: 39bc12eb01980d9b6cddcddb5191f9f5b4a66a3e20cd7078dfee013295ef3dc1

Contents?: true

Size: 1.54 KB

Versions: 8

Compression:

Stored size: 1.54 KB

Contents

require "spec_helper"
require 'ostruct'
require 'webmock/rspec'
WebMock.allow_net_connect!
require "active_fedora/rspec_matchers/match_fedora_datastream_matcher"

describe RSpec::Matchers, "match_fedora_datastream" do
  let(:pid) { 123 }
  let(:expected_xml) { '<xml><node>Value</node></xml>' }
  let(:datastream_name) { 'metadata' }
  let(:datastream_url) {
    File.join(ActiveFedora.config.credentials[:url], 'objects', pid.to_s,'datastreams', datastream_name, 'content')
  }
  subject { OpenStruct.new(:pid => pid )}

  it 'should match based on request' do
    stub_request(:get, datastream_url).to_return(:body => expected_xml, :status => 200)
    expect(subject).to match_fedora_datastream(datastream_name).with(expected_xml)
  end

  it 'should handle non-matching requests' do
    stub_request(:get, datastream_url).to_return(:body => "<parent>#{expected_xml}</parent>", :status => 200)
    expect {
      expect(subject).to match_fedora_datastream(datastream_name).with(expected_xml)
    }.to(
      raise_error(
        RSpec::Expectations::ExpectationNotMetError,
        /expected #{subject.class} PID=#{pid} datastream: #{datastream_name.inspect} to match Fedora/
      )
    )
  end

  it 'should require :with option' do
    stub_request(:get, datastream_url).to_return(:body => "<parent>#{expected_xml}</parent>", :status => 200)
    expect {
      expect(subject).to match_fedora_datastream(datastream_name)
    }.to(
      raise_error(
        ArgumentError,
        "match_fedora_datastream(<datastream_name>).with(<expected_xml>)"
      )
    )
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

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