-
Notifications
You must be signed in to change notification settings - Fork 49
/
application_spec.rb
93 lines (77 loc) · 3.22 KB
/
application_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# encoding: utf-8
#
require 'spec_helper'
describe Application do
describe "integration" do
it "should run ok" do
lambda {
class MinimalTestApplication < Application
books = index :books, Sources::DB.new('SELECT id, title FROM books', :file => 'app/db.yml')
books.define_category :title
full = Query::Full.new books
live = Query::Live.new books
route %r{^/books/full} => full
route %r{^/books/live} => live
end
Tokenizers::Index.default.tokenize 'some text'
Tokenizers::Query.default.tokenize 'some text'
}.should_not raise_error
end
it "should run ok" do
lambda {
# TODO Add all possible cases.
#
class TestApplication < Application
default_indexing removes_characters: /[^a-zA-Z0-9\s\/\-\"\&\.]/,
stopwords: /\b(and|the|of|it|in|for)\b/,
splits_text_on: /[\s\/\-\"\&\.]/,
removes_characters_after_splitting: /[\.]/
default_querying removes_characters: /[^a-zA-Z0-9äöü\s\/\-\,\&\"\~\*\:]/,
stopwords: /\b(and|the|of|it|in|for)\b/,
splits_text_on: /[\s\/\-\,\&]+/,
normalizes_words: [[/Deoxyribonucleic Acid/i, 'DNA']],
substitutes_characters_with: CharacterSubstituters::WestEuropean.new,
maximum_tokens: 5
books_index = index :books,
Sources::DB.new('SELECT id, title, author, isbn13 as isbn FROM books', :file => 'app/db.yml')
books_index.define_category :title,
similarity: Similarity::DoubleLevenshtone.new(3) # Up to three similar title word indexed.
books_index.define_category :author
books_index.define_category :isbn,
partial: Partial::None.new # Partially searching on an ISBN makes not much sense.
full = Query::Full.new books_index
live = Query::Live.new books_index
route %r{^/books/full} => full
route %r{^/books/live} => live
end
}.should_not raise_error
end
end
describe 'delegation' do
it "should delegate route" do
Application.routing.should_receive(:route).once.with :path => :query
Application.route :path => :query
end
end
describe 'routing' do
it 'should be there' do
lambda { Application.routing }.should_not raise_error
end
it "should return a new Routing instance" do
Application.routing.should be_kind_of(Routing)
end
it "should cache the instance" do
Application.routing.should == Application.routing
end
end
describe 'call' do
before(:each) do
@routes = stub :routes
Application.stub! :routing => @routes
end
it 'should delegate' do
@routes.should_receive(:call).once.with :env
Application.call :env
end
end
end