Sha256: 53022e9d52b83ba74885b34b6275925e0f3e136412d0946507baa2cc09e1dd08

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

# encoding: utf-8
require 'spec_helper'
require 'ndd/rspec/matchers'
require 'ndd/rspec/matchers/shared_examples'


describe "be sorted by", { :type => 'matcher' } do

  SORTED_ARRAY = [1, 2, 3].freeze
  UNSORTED_ARRAY = [1, 3, 2].freeze

  it_behaves_like "an RSpec matcher",
                  :valid_value => SORTED_ARRAY,
                  :invalid_value => UNSORTED_ARRAY do
    let(:matcher) { be_sorted_by(:to_i) }
  end

  it "matches when actual is sorted according to the given attribute" do
    SORTED_ARRAY.should be_sorted_by(:to_i)
  end

  it "does not match when actual is not sorted according to the given attribute" do
    UNSORTED_ARRAY.should_not be_sorted_by(:to_i)
  end

  it "describes itself" do
    matcher = be_sorted_by(:to_i)
    matcher.matches?(SORTED_ARRAY)
    matcher.description.should == "be sorted by 'to_i'"
  end

  it "provides message on #failure_message" do
    matcher = be_sorted_by(:to_i)
    matcher.matches?(UNSORTED_ARRAY)

    matcher.failure_message_for_should.should == <<-MESSAGE

expected '[1, 3, 2]' to be sorted by 'to_i'
expected attributes: [1, 2, 3]
     got attributes: [1, 3, 2]

    MESSAGE
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ndd-rspec-0.1.1 spec/ndd/rspec/matchers/be_sorted_by_spec.rb