Sha256: 58bd76cb3f6187de3040986f1f11baa6d34dbee5f2803732d7ee4f96d1e640d6

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

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


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

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

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

  it "matches when actual is sorted according to the given attribute in reverse order" do
    REVERSE_SORTED_ARRAY.should be_reverse_sorted_by(:to_i)
  end

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

  it "provides message on #failure_message" do
    matcher = be_reverse_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' in reverse order
expected attributes: [3, 2, 1]
     got attributes: [1, 3, 2]

    MESSAGE
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ndd-rspec-0.1.0 spec/ndd/rspec/matchers/be_reverse_sorted_by_spec.rb