Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

160 lines (144 sloc) 5.116 kb
require 'spec_helper'
describe Picky::Categories do
context "with real categories" do
before(:each) do
@index1 = Picky::Index.new :name
@category1 = Picky::Category.new :category1, @index1
@category2 = Picky::Category.new :category2, @index1
@category3 = Picky::Category.new :category3, @index1
@categories = described_class.new
@categories << @category1
@categories << @category2
@categories << @category3
end
describe "similar_possible_for" do
before(:each) do
@token = Picky::Query::Token.processed 'similar~', 'Similar~'
end
context 'with nothing similar' do
it "returns possible categories" do
@categories.similar_possible_for(@token).should == []
end
end
context 'with some similar' do
before(:each) do
@bundle1 = double :bundle1, :similar => ['similar', 'text'], :weight => 1, :identifier => ''
@category1.stub :bundle_for => @bundle1
end
# it "returns possible categories" do
# @categories.similar_possible_for(@token).should == [
# Picky::Query::Combination.new(Picky::Query::Token.new('similar', 'similar', @category1), @category1),
# Picky::Query::Combination.new(Picky::Query::Token.new('text', 'text', @category1), @category1)
# ]
# end
end
end
end
describe 'clear_categories' do
before(:each) do
@categories = described_class.new
end
it 'is clear right at the beginning' do
@categories.categories.should be_empty
@categories.category_hash.should be_empty
end
it "isn't clear anymore after adding" do
@categories << double(:category, :name => :some_name)
@categories.categories.should_not be_empty
@categories.category_hash.should_not be_empty
end
it "is clear again after clearing" do
@categories << double(:category, :name => :some_name)
@categories.clear_categories
@categories.categories.should be_empty
@categories.category_hash.should be_empty
end
end
context 'without options' do
before(:each) do
@index1 = Picky::Index.new :some_index
@category1 = Picky::Category.new :category1, @index1
@category2 = Picky::Category.new :category2, @index1
@category3 = Picky::Category.new :category3, @index1
@categories = described_class.new
@categories << @category1
@categories << @category2
@categories << @category3
end
# describe "possible_combinations" do
# before(:each) do
# @token = double :token
# end
# context "with similar token" do
# before(:each) do
# @token.double :similar? => true, :categorize => nil
# end
# it "calls the right method" do
# @categories.should_receive(:similar_possible_for).once.with @token
#
# @categories.possible_combinations @token
# end
# end
# context "with non-similar token" do
# before(:each) do
# @token.double :similar? => false, :categorize => nil
# end
# it "calls the right method" do
# @categories.should_receive(:possible_for).once.with @token
#
# @categories.possible_combinations @token
# end
# end
# end
# describe 'possible_for' do
# context 'without preselected categories' do
# context 'user defined exists' do
# before(:each) do
# @token = Picky::Query::Token.processed 'hello'
# end
# context 'combination exists' do
# before(:each) do
# @combination = double :combination
# @category2.stub :combination_for => @combination
# end
# it 'should return the right combinations' do
# @categories.possible_for(@token).should == [@combination]
# end
# end
# context 'combination does not exist' do
# before(:each) do
# @category2.stub :combination_for => nil
# end
# it 'should return the right combinations' do
# @categories.possible_for(@token).should == []
# end
# end
# end
# context 'user defined does not exist' do
#
# end
# end
# context 'with preselected categories' do
#
# end
# end
describe 'possible_categories' do
context 'user defined exists' do
before(:each) do
@token = double :token, :predefined_categories => [@category2]
end
it 'should return the right categories' do
@categories.possible_categories(@token).should == [@category2]
end
end
context 'user defined does not exist' do
before(:each) do
@token = double :token, :predefined_categories => nil
end
it 'should return all categories' do
@categories.possible_categories(@token).should == [@category1, @category2, @category3]
end
end
end
end
end
Jump to Line
Something went wrong with that request. Please try again.