Sha256: f5aa5f68c21a7f272c60c3d26c7cd12eedd40059bbc3ffbb7c25bc476b1f6b4e

Contents?: true

Size: 920 Bytes

Versions: 12

Compression:

Stored size: 920 Bytes

Contents

# -*- encoding : utf-8 -*-
require 'spec_helper'

describe ByFieldFinder do
  let(:sut) { [double(field1: 'aa', field2: 'bb'), double(field1: 'cc', field2: 'bb'), double(field1: 'aa', field2: 'dd')].extend(ByFieldFinder) }

  [
      {field: :field1, search_value: 'aa', matching_index: 0},
      {field: :field1, search_value: 'cc', matching_index: 1},
      {field: :field2, search_value: 'bb', matching_index: 0},
      {field: :field2, search_value: 'dd', matching_index: 2},
  ].each do |test_params|
    it 'should return first matching object' do
      sut.send("by_#{test_params[:field]}", test_params[:search_value]).should == sut[test_params[:matching_index]]
    end
  end

  it 'should return nil if no object matches' do
    sut.by_field1('xx').should == nil
  end

  it 'should throw exception if elements doesnt respond to given field' do
    expect { sut.by_non_existing_field }.to raise_error
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
git_stats-1.0.11 spec/by_field_finder_spec.rb
git_stats-1.0.10 spec/by_field_finder_spec.rb
git_stats-1.0.9 spec/by_field_finder_spec.rb
git_stats-1.0.8 spec/by_field_finder_spec.rb
git_stats-1.0.7 spec/by_field_finder_spec.rb
git_stats-1.0.6 spec/by_field_finder_spec.rb
git_stats-1.0.5 spec/by_field_finder_spec.rb
git_stats-1.0.4 spec/by_field_finder_spec.rb
git_stats-1.0.3 spec/by_field_finder_spec.rb
git_stats-1.0.2 spec/by_field_finder_spec.rb
git_stats-1.0.1 spec/by_field_finder_spec.rb
git_stats-1.0.0 spec/by_field_finder_spec.rb