Sha256: 761791187ff87020692f4f1b07756a78198b882c6a6e19cbfec42458618d9d3d

Contents?: true

Size: 1.82 KB

Versions: 25

Compression:

Stored size: 1.82 KB

Contents

# coding: utf-8
#
require 'spec_helper'

describe Picky::Query::Combinations do

  before(:each) do
    @combinations_ary = stub :combinations_ary

    @combinations = described_class.new @combinations_ary
  end

  describe "to_result" do
    before(:each) do
      @combination1 = stub :combination1, :to_result => :result1
      @combination2 = stub :combination2, :to_result => :result2

      @combinations_ary = [@combination1, @combination2]

      @combinations = described_class.new @combinations_ary
    end
    it "resultifies the combinations" do
      @combinations.to_result.should == [:result1, :result2]
    end
  end

  describe "weighted_score" do
    it "uses the weights' score method" do
      boosts = stub :boosts
      boosts.should_receive(:boost_for).once.with @combinations_ary

      @combinations.boost_for boosts
    end
  end

  describe "total_score" do
    before(:each) do
      @combination1 = stub :combination1, :weight => 3.14
      @combination2 = stub :combination2, :weight => 2.76

      @combinations_ary = [@combination1, @combination2]

      @combinations = described_class.new @combinations_ary
    end
    it "sums the scores" do
      @combinations.score.should == 5.90
    end
  end

  describe 'hash' do
    it "delegates to the combinations array" do
      @combinations_ary.should_receive(:hash).once.with

      @combinations.hash
    end
  end

  describe 'remove' do
    before(:each) do
      @combination1 = stub :combination1, :category => :other
      @combination2 = stub :combination2, :category => :to_remove
      @combination3 = stub :combination3, :category => :to_remove

      @combinations = described_class.new [@combination1, @combination2, @combination3]
    end
    it 'should remove the combinations' do
      @combinations.remove([:to_remove]).should == [@combination1]
    end
  end

end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
picky-4.5.3 spec/lib/query/combinations_spec.rb
picky-4.5.2 spec/lib/query/combinations_spec.rb
picky-4.5.1 spec/lib/query/combinations_spec.rb
picky-4.5.0 spec/lib/query/combinations_spec.rb
picky-4.4.2 spec/lib/query/combinations_spec.rb
picky-4.4.1 spec/lib/query/combinations_spec.rb
picky-4.4.0 spec/lib/query/combinations_spec.rb
picky-4.3.2 spec/lib/query/combinations_spec.rb
picky-4.3.1 spec/lib/query/combinations_spec.rb
picky-4.3.0 spec/lib/query/combinations_spec.rb
picky-4.2.4 spec/lib/query/combinations_spec.rb
picky-4.2.3 spec/lib/query/combinations_spec.rb
picky-4.2.2 spec/lib/query/combinations_spec.rb
picky-4.2.1 spec/lib/query/combinations_spec.rb
picky-4.2.0 spec/lib/query/combinations_spec.rb
picky-4.1.0 spec/lib/query/combinations_spec.rb
picky-4.0.9 spec/lib/query/combinations_spec.rb
picky-4.0.8 spec/lib/query/combinations_spec.rb
picky-4.0.7 spec/lib/query/combinations_spec.rb
picky-4.0.6 spec/lib/query/combinations_spec.rb