odba 1.1.8 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/test/test_storage.rb CHANGED
@@ -1,233 +1,241 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: utf-8
3
2
  # TestStorage -- odba -- 10.05.2004 -- hwyss@ywesee.com rwaltert@ywesee.com mwalder@ywesee.com
4
-
5
- $: << File.dirname(__FILE__)
6
- $: << File.expand_path('../lib/', File.dirname(__FILE__))
7
-
8
- require 'minitest/autorun'
9
- require 'flexmock/test_unit'
10
- require 'flexmock'
11
- require 'odba/storage'
3
+ require_relative "helper"
4
+ require "odba/storage"
12
5
 
13
6
  module ODBA
14
- class Storage
15
- public :restore_max_id
16
- attr_writer :next_id
17
- end
18
- class TestStorage < Minitest::Test
7
+ class Storage
8
+ public :restore_max_id
9
+ attr_writer :next_id
10
+ end
11
+
12
+ class TestStorage < Test::Unit::TestCase
19
13
  include FlexMock::TestCase
20
- def setup
21
- @storage = ODBA::Storage.instance
22
- @dbi = flexmock('DBI')
23
- @storage.dbi = @dbi
24
- end
14
+ def setup
15
+ @storage = ODBA::Storage.instance
16
+ @dbi = flexmock("DBI")
17
+ @storage.dbi = @dbi
18
+ end
19
+
25
20
  def teardown
26
21
  super
27
22
  end
28
- def test_bulk_restore
29
- dbi = flexmock("dbi")
30
- array = [1, 23, 4]
31
- @storage.dbi = dbi
32
- dbi.should_receive(:select_all).times(1).and_return { |query|
33
- refute_nil(query.index('IN (1,23,4)'))
34
- []
35
- }
36
- @storage.bulk_restore(array)
37
- end
38
- def test_delete_persistable
39
- dbi = flexmock("dbi")
40
- @storage.dbi = dbi
41
- expected1 = <<-SQL
23
+
24
+ def test_bulk_restore
25
+ dbi = flexmock("dbi")
26
+ array = [1, 23, 4]
27
+ @storage.dbi = dbi
28
+ dbi.should_receive(:select_all).times(1).and_return { |query|
29
+ refute_nil(query.index("IN (1,23,4)"))
30
+ []
31
+ }
32
+ @storage.bulk_restore(array)
33
+ end
34
+
35
+ def test_delete_persistable
36
+ dbi = flexmock("dbi")
37
+ @storage.dbi = dbi
38
+ expected1 = <<-SQL
42
39
  DELETE FROM object_connection WHERE origin_id = ?
43
- SQL
44
- dbi.should_receive(:do).once.with(expected1, 2).times(1).and_return do
45
- assert true
46
- end
47
- expected2 = <<-SQL
40
+ SQL
41
+ dbi.should_receive(:do).once.with(expected1, 2).times(1).and_return do
42
+ assert true
43
+ end
44
+ expected2 = <<-SQL
48
45
  DELETE FROM object_connection WHERE target_id = ?
49
- SQL
50
- dbi.should_receive(:do).once.with(expected2, 2).times(1).and_return do
51
- assert true
52
- end
53
- expected3 = <<-SQL
46
+ SQL
47
+ dbi.should_receive(:do).once.with(expected2, 2).times(1).and_return do
48
+ assert true
49
+ end
50
+ expected3 = <<-SQL
54
51
  DELETE FROM collection WHERE odba_id = ?
55
- SQL
56
- dbi.should_receive(:do).once.with(expected3, 2).times(1).and_return do
57
- assert true
58
- end
59
- expected4 = <<-SQL
52
+ SQL
53
+ dbi.should_receive(:do).once.with(expected3, 2).times(1).and_return do
54
+ assert true
55
+ end
56
+ expected4 = <<-SQL
60
57
  DELETE FROM object WHERE odba_id = ?
61
- SQL
62
- dbi.should_receive(:do).once.with(expected4, 2).times(1).and_return do
63
- assert true
64
- end
65
- @storage.delete_persistable(2)
66
- end
67
- def test_restore_prefetchable
68
- dbi = flexmock("dbi")
69
- rows = flexmock("row")
70
- @storage.dbi = dbi
71
- dbi.should_receive(:select_all).times(1).and_return{ |sql|
72
- assert_equal("\t\t\t\tSELECT odba_id, content FROM object WHERE prefetchable = true\n", sql)
73
- rows
74
- }
75
- @storage.restore_prefetchable
76
- end
77
- def test_bulk_restore_empty
78
- dbi = flexmock("dbi")
79
- array = []
80
- @storage.dbi = dbi
81
- @storage.bulk_restore(array)
82
- end
83
- def test_create_index
84
- dbi = flexmock('dbi')
85
- @storage.dbi = dbi
86
- sql = <<-SQL
58
+ SQL
59
+ dbi.should_receive(:do).once.with(expected4, 2).times(1).and_return do
60
+ assert true
61
+ end
62
+ @storage.delete_persistable(2)
63
+ end
64
+
65
+ def test_restore_prefetchable
66
+ dbi = flexmock("dbi")
67
+ rows = flexmock("row")
68
+ @storage.dbi = dbi
69
+ dbi.should_receive(:select_all).times(1).and_return { |sql|
70
+ assert_equal("\t\t\t\tSELECT odba_id, content FROM object WHERE prefetchable = true\n", sql)
71
+ rows
72
+ }
73
+ @storage.restore_prefetchable
74
+ end
75
+
76
+ def test_bulk_restore_empty
77
+ dbi = flexmock("dbi")
78
+ array = []
79
+ @storage.dbi = dbi
80
+ @storage.bulk_restore(array)
81
+ end
82
+
83
+ def test_create_index
84
+ dbi = flexmock("dbi")
85
+ @storage.dbi = dbi
86
+ sql = <<-SQL
87
87
  CREATE INDEX IF NOT EXISTS origin_id_index_name
88
88
  ON index_name(origin_id)
89
- SQL
90
- dbi.should_receive(:do).times(1).with(sql).and_return do
91
- assert true
92
- end
93
- sql = <<-SQL
89
+ SQL
90
+ dbi.should_receive(:do).times(1).with(sql).and_return do
91
+ assert true
92
+ end
93
+ sql = <<-SQL
94
94
  CREATE INDEX IF NOT EXISTS search_term_index_name
95
95
  ON index_name(search_term)
96
- SQL
97
- dbi.should_receive(:do).times(1).with(sql).and_return do
98
- assert true
99
- end
100
- sql = " DROP TABLE IF EXISTS index_name;\n"
101
- dbi.should_receive(:do).once.with(sql)
102
- sql = " CREATE INDEX IF NOT EXISTS target_id_index_name\n ON index_name(target_id)\n"
103
- dbi.should_receive(:do).once.with(sql)
104
- sql = " CREATE TABLE IF NOT EXISTS index_name (\n origin_id INTEGER,\n search_term TEXT,\n target_id INTEGER\n ) WITH OIDS;\n"
105
- dbi.should_receive(:do).once.with(sql)
106
- @storage.create_index("index_name")
107
- end
108
- def test_next_id
109
- @storage.next_id = 1
110
- assert_equal(2, @storage.next_id)
111
- assert_equal(3, @storage.next_id)
112
- end
113
- def test_store__1
114
- dbi = flexmock("dbi")
115
- @storage.dbi = dbi
116
- dbi.should_receive(:select_one).times(1).and_return { |query, id|
117
- assert_equal('SELECT name FROM object WHERE odba_id = ?',
118
- query)
119
- assert_equal(1, id)
120
- nil
121
- }
122
- dbi.should_receive(:do).times(1).and_return { |query, id, dump, name, prefetch, klass|
123
- expected= <<-SQL
96
+ SQL
97
+ dbi.should_receive(:do).times(1).with(sql).and_return do
98
+ assert true
99
+ end
100
+ sql = " DROP TABLE IF EXISTS index_name;\n"
101
+ dbi.should_receive(:do).once.with(sql)
102
+ sql = " CREATE INDEX IF NOT EXISTS target_id_index_name\n ON index_name(target_id)\n"
103
+ dbi.should_receive(:do).once.with(sql)
104
+ sql = " CREATE TABLE IF NOT EXISTS index_name (\n origin_id INTEGER,\n search_term TEXT,\n target_id INTEGER\n ) ;\n"
105
+ dbi.should_receive(:do).once.with(sql)
106
+ @storage.create_index("index_name")
107
+ end
108
+
109
+ def test_next_id
110
+ @storage.next_id = 1
111
+ assert_equal(2, @storage.next_id)
112
+ assert_equal(3, @storage.next_id)
113
+ end
114
+
115
+ def test_store__1
116
+ dbi = flexmock("dbi")
117
+ @storage.dbi = dbi
118
+ dbi.should_receive(:select_one).times(1).and_return { |query, id|
119
+ assert_equal("SELECT name FROM object WHERE odba_id = ?",
120
+ query)
121
+ assert_equal(1, id)
122
+ nil
123
+ }
124
+ dbi.should_receive(:do).times(1).and_return { |query, id, dump, name, prefetch, klass|
125
+ expected = <<-SQL
124
126
  INSERT INTO object (odba_id, content, name, prefetchable, extent)
125
127
  VALUES (?, ?, ?, ?, ?)
126
- SQL
127
- assert_equal(expected, query)
128
- assert_equal(1, id)
129
- assert_equal("foodump", dump)
130
- assert_equal("foo", name)
131
- assert_equal(true, prefetch)
132
- assert_equal("FlexMock", klass)
133
- }
134
- @storage.store(1,"foodump", "foo", true, FlexMock)
135
- end
136
- def test_store__2
137
- dbi = flexmock("dbi")
138
- @storage.dbi = dbi
139
- dbi.should_receive(:select_one).times(1).and_return { |query, id|
140
- assert_equal('SELECT name FROM object WHERE odba_id = ?',
141
- query)
142
- assert_equal(1, id)
143
- ['name']
144
- }
145
- dbi.should_receive(:do).times(1).and_return { |query, dump, name, prefetch, klass, id|
146
- expected= <<-SQL
128
+ SQL
129
+ assert_equal(expected, query)
130
+ assert_equal(1, id)
131
+ assert_equal("foodump", dump)
132
+ assert_equal("foo", name)
133
+ assert_equal(true, prefetch)
134
+ assert_equal("FlexMock", klass)
135
+ }
136
+ @storage.store(1, "foodump", "foo", true, FlexMock)
137
+ end
138
+
139
+ def test_store__2
140
+ dbi = flexmock("dbi")
141
+ @storage.dbi = dbi
142
+ dbi.should_receive(:select_one).times(1).and_return { |query, id|
143
+ assert_equal("SELECT name FROM object WHERE odba_id = ?",
144
+ query)
145
+ assert_equal(1, id)
146
+ ["name"]
147
+ }
148
+ dbi.should_receive(:do).times(1).and_return { |query, dump, name, prefetch, klass, id|
149
+ expected = <<-SQL
147
150
  UPDATE object SET
148
151
  content = ?,
149
152
  name = ?,
150
153
  prefetchable = ?,
151
154
  extent = ?
152
155
  WHERE odba_id = ?
153
- SQL
154
- assert_equal(expected, query)
155
- assert_equal(1, id)
156
- assert_equal("foodump", dump)
157
- assert_equal("foo", name)
158
- assert_equal(true, prefetch)
159
- assert_equal("FlexMock", klass)
160
- }
161
- @storage.store(1,"foodump", "foo", true, FlexMock)
162
- end
163
- def test_store__3__name_only_set_in_db
164
- dbi = flexmock("dbi")
165
- @storage.dbi = dbi
166
- dbi.should_receive(:select_one).times(1).and_return { |query, id|
167
- assert_equal('SELECT name FROM object WHERE odba_id = ?',
168
- query)
169
- assert_equal(1, id)
170
- {'name' => 'name_in_db'}
171
- }
172
- dbi.should_receive(:do).times(1).and_return { |query, dump, name, prefetch, klass, id|
173
- expected= <<-SQL
156
+ SQL
157
+ assert_equal(expected, query)
158
+ assert_equal(1, id)
159
+ assert_equal("foodump", dump)
160
+ assert_equal("foo", name)
161
+ assert_equal(true, prefetch)
162
+ assert_equal("FlexMock", klass)
163
+ }
164
+ @storage.store(1, "foodump", "foo", true, FlexMock)
165
+ end
166
+
167
+ def test_store__3__name_only_set_in_db
168
+ dbi = flexmock("dbi")
169
+ @storage.dbi = dbi
170
+ dbi.should_receive(:select_one).times(1).and_return { |query, id|
171
+ assert_equal("SELECT name FROM object WHERE odba_id = ?",
172
+ query)
173
+ assert_equal(1, id)
174
+ {"name" => "name_in_db"}
175
+ }
176
+ dbi.should_receive(:do).times(1).and_return { |query, dump, name, prefetch, klass, id|
177
+ expected = <<-SQL
174
178
  UPDATE object SET
175
179
  content = ?,
176
180
  name = ?,
177
181
  prefetchable = ?,
178
182
  extent = ?
179
183
  WHERE odba_id = ?
180
- SQL
181
- assert_equal(expected, query)
182
- assert_equal(1, id)
183
- assert_equal("foodump", dump)
184
- assert_equal("name_in_db", name)
185
- assert_equal(true, prefetch)
186
- assert_equal("FlexMock", klass)
187
- }
188
- @storage.store(1,"foodump", nil, true, FlexMock)
189
- end
190
- def test_restore
191
- dbi = flexmock
192
- @storage.dbi = dbi
193
- dbi.should_receive(:select_one).times(1).and_return{ |arg, name| ['dump'] }
194
- assert_equal('dump', @storage.restore(1))
195
- end
196
- def test_restore_named
197
- dbi = flexmock
198
- @storage.dbi = dbi
199
- dbi.should_receive(:select_one).times(1).and_return{ |arg, name| ['dump'] }
200
- assert_equal('dump', @storage.restore_named('foo'))
201
- end
202
- def test_max_id
203
- dbi = flexmock
204
- row = flexmock
205
- @storage.dbi = dbi
206
- dbi.should_receive(:select_one).and_return{|var|
207
- row
208
- }
209
- # this test behaves differently, eg. run it with --seed 100 and --seed 34074
210
- # As I have not time to find a work-around for the Singleton used in Storage
211
- # I found a way to make test pass with both seeds
212
- row.should_receive(:first).and_return { 23 }
213
- result = [23,3].index(@storage.max_id)
214
- refute_nil(result)
215
- end
216
- def test_restore_max_id__nil
217
- dbi = flexmock
218
- row = flexmock
219
- @storage.dbi = dbi
220
- dbi.should_receive(:select_one).times(1).and_return{|var|
221
- row
222
- }
223
- row.should_receive(:first).times(1).and_return{ || }
224
- id = nil
225
- id = @storage.restore_max_id
226
- assert_equal(0, id)
227
- end
184
+ SQL
185
+ assert_equal(expected, query)
186
+ assert_equal(1, id)
187
+ assert_equal("foodump", dump)
188
+ assert_equal("name_in_db", name)
189
+ assert_equal(true, prefetch)
190
+ assert_equal("FlexMock", klass)
191
+ }
192
+ @storage.store(1, "foodump", nil, true, FlexMock)
193
+ end
194
+
195
+ def test_restore
196
+ dbi = flexmock
197
+ @storage.dbi = dbi
198
+ dbi.should_receive(:select_one).times(1).and_return { |arg, name| ["dump"] }
199
+ assert_equal("dump", @storage.restore(1))
200
+ end
201
+
202
+ def test_restore_named
203
+ dbi = flexmock
204
+ @storage.dbi = dbi
205
+ dbi.should_receive(:select_one).times(1).and_return { |arg, name| ["dump"] }
206
+ assert_equal("dump", @storage.restore_named("foo"))
207
+ end
208
+
209
+ def test_max_id
210
+ dbi = flexmock
211
+ row = flexmock
212
+ @storage.dbi = dbi
213
+ dbi.should_receive(:select_one).and_return { |var|
214
+ row
215
+ }
216
+ # this test behaves differently, eg. run it with --seed 100 and --seed 34074
217
+ # As I have not time to find a work-around for the Singleton used in Storage
218
+ # I found a way to make test pass with both seeds
219
+ row.should_receive(:first).and_return { 23 }
220
+ result = [23, 3].index(@storage.max_id)
221
+ refute_nil(result)
222
+ end
223
+
224
+ def test_restore_max_id__nil
225
+ dbi = flexmock
226
+ row = flexmock
227
+ @storage.dbi = dbi
228
+ dbi.should_receive(:select_one).times(1).and_return { |var|
229
+ row
230
+ }
231
+ row.should_receive(:first).times(1).and_return {}
232
+ id = @storage.restore_max_id
233
+ assert_equal(0, id)
234
+ end
235
+
228
236
  def test_retrieve
229
237
  dbi = flexmock("dbi")
230
- sth = flexmock
238
+ flexmock
231
239
  @storage.dbi = dbi
232
240
  sql = <<-SQL
233
241
  SELECT target_id, COUNT(target_id) AS relevance
@@ -235,13 +243,14 @@ module ODBA
235
243
  WHERE search_term LIKE ?
236
244
  GROUP BY target_id
237
245
  SQL
238
- dbi.should_receive(:select_all).with(sql, 'foo%')\
246
+ dbi.should_receive(:select_all).with(sql, "foo%")
239
247
  .and_return { assert(true) }
240
- @storage.retrieve_from_index("index","foo")
248
+ @storage.retrieve_from_index("index", "foo")
241
249
  end
250
+
242
251
  def test_retrieve_exact
243
252
  dbi = flexmock("dbi")
244
- sth = flexmock
253
+ flexmock
245
254
  @storage.dbi = dbi
246
255
  sql = <<-SQL
247
256
  SELECT target_id, COUNT(target_id) AS relevance
@@ -249,13 +258,14 @@ module ODBA
249
258
  WHERE search_term LIKE ?
250
259
  GROUP BY target_id
251
260
  SQL
252
- dbi.should_receive(:select_all).with(sql, 'foo')\
261
+ dbi.should_receive(:select_all).with(sql, "foo")
253
262
  .and_return { assert(true) }
254
- @storage.retrieve_from_index("index","foo", true)
263
+ @storage.retrieve_from_index("index", "foo", true)
255
264
  end
265
+
256
266
  def test_retrieve_one
257
267
  dbi = flexmock("dbi")
258
- sth = flexmock
268
+ flexmock
259
269
  @storage.dbi = dbi
260
270
  sql = <<-SQL << " LIMIT 1"
261
271
  SELECT target_id, COUNT(target_id) AS relevance
@@ -263,33 +273,35 @@ module ODBA
263
273
  WHERE search_term LIKE ?
264
274
  GROUP BY target_id
265
275
  SQL
266
- dbi.should_receive(:select_all).with(sql, 'foo%')\
276
+ dbi.should_receive(:select_all).with(sql, "foo%")
267
277
  .and_return { assert(true) }
268
- @storage.retrieve_from_index("index","foo", false, 1)
278
+ @storage.retrieve_from_index("index", "foo", false, 1)
269
279
  end
270
- def test_update_index
271
- dbi = flexmock("dbi")
272
- rows = [3]
273
- @storage.dbi = dbi
274
280
 
275
- #insert query
276
- dbi.should_receive(:do).times(1).and_return{ |sql, id, term, target_id|
277
- refute_nil(sql.index("INSERT INTO"))
278
- }
281
+ def test_update_index
282
+ dbi = flexmock("dbi")
283
+ @storage.dbi = dbi
284
+
285
+ # insert query
286
+ dbi.should_receive(:do).times(1).and_return { |sql, id, term, target_id|
287
+ refute_nil(sql.index("INSERT INTO"))
288
+ }
289
+
290
+ @storage.update_index("foo", 2, "baz", 3)
291
+ end
279
292
 
280
- @storage.update_index("foo", 2,"baz", 3)
281
- end
282
293
  def test_update_index__without_target_id
283
- sql = <<-'SQL'
294
+ sql = <<-SQL
284
295
  UPDATE index SET search_term=?
285
296
  WHERE origin_id=?
286
297
  SQL
287
- handle = flexmock('StatementHandle')
288
- @dbi.should_receive(:do).once.with(sql, 'term', 2).times(1).and_return do
298
+ flexmock("StatementHandle")
299
+ @dbi.should_receive(:do).once.with(sql, "term", 2).times(1).and_return do
289
300
  assert true
290
301
  end
291
302
  @storage.update_index("index", 2, "term", nil)
292
303
  end
304
+
293
305
  def test_delete_index_origin
294
306
  dbi = flexmock("dbi")
295
307
  @storage.dbi = dbi
@@ -301,250 +313,267 @@ module ODBA
301
313
  dbi.should_receive(:do).and_return { |sql, id, term|
302
314
  assert_equal(expected, sql)
303
315
  assert_equal(2, id)
304
- assert_equal('search-term', term)
316
+ assert_equal("search-term", term)
305
317
  }
306
- @storage.index_delete_origin("foo", 2, 'search-term')
307
- end
308
- def test_retrieve_connected_objects
309
- dbi = flexmock("dbi")
310
- @storage.dbi = dbi
311
- dbi.should_receive(:select_all).and_return{|sql, target_id|
312
- refute_nil(sql.index('SELECT origin_id FROM object_connection'))
313
- assert_equal(target_id, 1)
314
- }
315
- @storage.retrieve_connected_objects(1)
316
- end
317
- def test_index_delete_target
318
- dbi = flexmock("dbi")
319
- sth = flexmock("sth")
320
- @storage.dbi = dbi
321
- sql = <<-SQL
318
+ @storage.index_delete_origin("foo", 2, "search-term")
319
+ end
320
+
321
+ def test_retrieve_connected_objects
322
+ dbi = flexmock("dbi")
323
+ @storage.dbi = dbi
324
+ dbi.should_receive(:select_all).and_return { |sql, target_id|
325
+ refute_nil(sql.index("SELECT origin_id FROM object_connection"))
326
+ assert_equal(target_id, 1)
327
+ }
328
+ @storage.retrieve_connected_objects(1)
329
+ end
330
+
331
+ def test_index_delete_target
332
+ dbi = flexmock("dbi")
333
+ flexmock("sth")
334
+ @storage.dbi = dbi
335
+ sql = <<-SQL
322
336
  DELETE FROM foo_index
323
337
  WHERE origin_id = ?
324
338
  AND search_term = ?
325
339
  AND target_id = ?
326
- SQL
327
- dbi.should_receive(:do).once.with(sql, 6, 'search-term', 5).times(1).and_return do
328
- assert true
329
- end
330
- @storage.index_delete_target("foo_index", 6, 'search-term', 5)
331
- end
332
- def test_drop_index
333
- dbi = flexmock("dbi")
334
- @storage.dbi = dbi
335
- sql = "DROP TABLE IF EXISTS foo_index"
336
- dbi.should_receive(:do).once.with(sql).and_return do
337
- assert true
338
- end
339
- @storage.drop_index("foo_index")
340
- end
341
- def test_retrieve_from_fulltext_index
342
- dbi = flexmock("dbi")
343
- @storage.dbi = dbi
344
- dbi.should_receive(:select_all).and_return { |sql, d1, t1, d2, t2|
345
- assert_equal('\(+\)-cloprostenolum&natricum', t1)
346
- []
347
- }
348
- @storage.retrieve_from_fulltext_index('index_name',
349
- '(+)-cloprostenolum natricum', 'default_german')
350
- end
351
- def test_retrieve_from_fulltext_index__2
352
- dbi = flexmock("dbi")
353
- @storage.dbi = dbi
354
- dbi.should_receive(:select_all).and_return { |sql, d1, t1, d2, t2|
355
- assert_equal('phenylbutazonum&calcicum&\(2\:1\)', t1)
356
- []
357
- }
358
- @storage.retrieve_from_fulltext_index('index_name',
359
- 'phenylbutazonum&calcicum&(2:1)', 'default_german')
360
- end
361
- def test_retrieve_from_fulltext_index__umlaut
362
- dbi = flexmock("dbi")
363
- @storage.dbi = dbi
364
- dbi.should_receive(:select_all).and_return { |sql, d1, t1, d2, t2|
365
- assert_equal('dràgées&ähnlïch&kömprüssèn&ëtç', t1)
366
- []
367
- }
368
- @storage.retrieve_from_fulltext_index('index_name',
369
- 'dràgées ähnlïch kömprüssèn ëtç', 'default_german')
370
- end
371
- def test_ensure_object_connections
372
- dbi = flexmock("dbi")
373
- @storage.dbi = dbi
374
- sql = <<-SQL
340
+ SQL
341
+ dbi.should_receive(:do).once.with(sql, 6, "search-term", 5).times(1).and_return do
342
+ assert true
343
+ end
344
+ @storage.index_delete_target("foo_index", 6, "search-term", 5)
345
+ end
346
+
347
+ def test_drop_index
348
+ dbi = flexmock("dbi")
349
+ @storage.dbi = dbi
350
+ sql = "DROP TABLE IF EXISTS foo_index"
351
+ dbi.should_receive(:do).once.with(sql).and_return do
352
+ assert true
353
+ end
354
+ @storage.drop_index("foo_index")
355
+ end
356
+
357
+ def test_retrieve_from_fulltext_index
358
+ dbi = flexmock("dbi")
359
+ @storage.dbi = dbi
360
+ dbi.should_receive(:select_all).and_return { |sql, d1, t1, d2, t2|
361
+ assert_equal('\(+\)-cloprostenolum&natricum', t1)
362
+ []
363
+ }
364
+ @storage.retrieve_from_fulltext_index("index_name",
365
+ "(+)-cloprostenolum natricum", "default_german")
366
+ end
367
+
368
+ def test_retrieve_from_fulltext_index__2
369
+ dbi = flexmock("dbi")
370
+ @storage.dbi = dbi
371
+ dbi.should_receive(:select_all).and_return { |sql, d1, t1, d2, t2|
372
+ assert_equal('phenylbutazonum&calcicum&\(2\:1\)', t1)
373
+ []
374
+ }
375
+ @storage.retrieve_from_fulltext_index("index_name",
376
+ "phenylbutazonum&calcicum&(2:1)", "default_german")
377
+ end
378
+
379
+ def test_retrieve_from_fulltext_index__umlaut
380
+ dbi = flexmock("dbi")
381
+ @storage.dbi = dbi
382
+ dbi.should_receive(:select_all).and_return { |sql, d1, t1, d2, t2|
383
+ assert_equal("dràgées&ähnlïch&kömprüssèn&ëtç", t1)
384
+ []
385
+ }
386
+ @storage.retrieve_from_fulltext_index("index_name",
387
+ "dràgées ähnlïch kömprüssèn ëtç", "default_german")
388
+ end
389
+
390
+ def test_ensure_object_connections
391
+ dbi = flexmock("dbi")
392
+ @storage.dbi = dbi
393
+ sql = <<-SQL
375
394
  SELECT target_id FROM object_connection
376
395
  WHERE origin_id = ?
377
- SQL
378
- dbi.should_receive(:select_all).with(sql, 123).and_return {
379
- assert(true)
380
- [[1], [3], [5], [7], [9]]
381
- }
382
- sql = <<-SQL
396
+ SQL
397
+ dbi.should_receive(:select_all).with(sql, 123).and_return {
398
+ assert(true)
399
+ [[1], [3], [5], [7], [9]]
400
+ }
401
+ sql = <<-SQL
383
402
  DELETE FROM object_connection
384
403
  WHERE origin_id = ? AND target_id IN (7,9)
385
- SQL
386
- dbi.should_receive(:do).once.with(sql, 123).and_return {
387
- assert(true)
388
- }
389
- sql = <<-SQL
404
+ SQL
405
+ dbi.should_receive(:do).once.with(sql, 123).and_return {
406
+ assert(true)
407
+ }
408
+ sql = <<-SQL
390
409
  INSERT INTO object_connection (origin_id, target_id)
391
410
  VALUES (?, ?)
392
- SQL
393
- sth = flexmock('sth')
394
- dbi.should_receive(:prepare).with(sql).and_return(sth)
395
- sth.should_receive(:execute).with(123, 2).times(1).and_return {
396
- assert(true)
397
- }
398
- sth.should_receive(:execute).with(123, 4).times(1).and_return {
399
- assert(true)
400
- }
401
- sth.should_receive(:execute).with(123, 6).times(1).and_return {
402
- assert(true)
411
+ SQL
412
+ sth = flexmock("sth")
413
+ dbi.should_receive(:prepare).with(sql).and_return(sth)
414
+ sth.should_receive(:execute).with(123, 2).times(1).and_return {
415
+ assert(true)
416
+ }
417
+ sth.should_receive(:execute).with(123, 4).times(1).and_return {
418
+ assert(true)
419
+ }
420
+ sth.should_receive(:execute).with(123, 6).times(1).and_return {
421
+ assert(true)
422
+ }
423
+ sth.should_receive(:finish).times(1)
424
+ @storage.ensure_object_connections(123, [1, 2, 2, 3, 4, 4, 5, 6, 6])
425
+ end
426
+
427
+ def test_transaction_returns_blockval_even_if_dbi_does_not
428
+ @dbi.should_receive(:transaction).and_return { |block|
429
+ block.call({})
430
+ false
403
431
  }
404
- sth.should_receive(:finish).times(1)
405
- @storage.ensure_object_connections(123, [1,2,2,3,4,4,5,6,6])
406
- end
407
- def test_transaction_returns_blockval_even_if_dbi_does_not
408
- @dbi.should_receive(:transaction).and_return { |block|
409
- block.call({})
410
- false
411
- }
412
- res = @storage.transaction { "foo" }
413
- assert_equal("foo", res)
414
- end
432
+ res = @storage.transaction { "foo" }
433
+ assert_equal("foo", res)
434
+ end
435
+
415
436
  def test_create_condition_index
416
437
  definition = [
417
- [:foo, 'Integer'],
418
- [:bar, 'Date'],
438
+ [:foo, "Integer"],
439
+ [:bar, "Date"]
419
440
  ]
420
- sql = <<-'SQL'
421
- CREATE TABLE IF NOT EXISTS conditions (
422
- origin_id INTEGER,
423
- foo Integer,
424
- bar Date,
425
- target_id INTEGER
426
- );
441
+ sql = <<~SQL
442
+ CREATE TABLE IF NOT EXISTS conditions (
443
+ origin_id INTEGER,
444
+ foo Integer,
445
+ bar Date,
446
+ target_id INTEGER
447
+ );
427
448
  SQL
428
449
  @dbi.should_receive(:do).once.with(sql).and_return do
429
450
  assert true
430
451
  end
431
- sql = <<-'SQL'
432
- CREATE INDEX IF NOT EXISTS origin_id_conditions ON conditions(origin_id);
452
+ sql = <<~SQL
453
+ CREATE INDEX IF NOT EXISTS origin_id_conditions ON conditions(origin_id);
433
454
  SQL
434
455
  @dbi.should_receive(:do).once.with(sql).and_return do
435
456
  assert true
436
457
  end
437
- sql = <<-'SQL'
438
- CREATE INDEX IF NOT EXISTS foo_conditions ON conditions(foo);
458
+ sql = <<~SQL
459
+ CREATE INDEX IF NOT EXISTS foo_conditions ON conditions(foo);
439
460
  SQL
440
461
  @dbi.should_receive(:do).once.with(sql).and_return do
441
462
  assert true
442
463
  end
443
- sql = <<-'SQL'
444
- CREATE INDEX IF NOT EXISTS bar_conditions ON conditions(bar);
464
+ sql = <<~SQL
465
+ CREATE INDEX IF NOT EXISTS bar_conditions ON conditions(bar);
445
466
  SQL
446
467
  @dbi.should_receive(:do).once.with(sql).and_return do
447
468
  assert true
448
469
  end
449
- sql = <<-'SQL'
450
- CREATE INDEX IF NOT EXISTS target_id_conditions ON conditions(target_id);
470
+ sql = <<~SQL
471
+ CREATE INDEX IF NOT EXISTS target_id_conditions ON conditions(target_id);
451
472
  SQL
452
473
  @dbi.should_receive(:do).once.with(sql).and_return do
453
474
  assert true
454
475
  end
455
- @storage.create_condition_index('conditions', definition)
476
+ @storage.create_condition_index("conditions", definition)
456
477
  end
478
+
457
479
  def test_create_fulltext_index
458
- statement = flexmock('StatementHandle')
480
+ flexmock("StatementHandle")
459
481
  @dbi.should_receive(:do).once.with("DROP TABLE IF EXISTS fulltext;\n")
460
482
  sql = "CREATE INDEX IF NOT EXISTS origin_id_fulltext ON fulltext(origin_id);\n"
461
483
  @dbi.should_receive(:do).once.with(sql).and_return
462
484
  sql = "CREATE INDEX IF NOT EXISTS target_id_fulltext ON fulltext(target_id);\n"
463
485
  @dbi.should_receive(:do).once.with(sql).and_return
464
- sql = "CREATE TABLE IF NOT EXISTS fulltext (\n origin_id INTEGER,\n search_term tsvector,\n target_id INTEGER\n) WITH OIDS ;\n"
486
+ sql = "CREATE TABLE IF NOT EXISTS fulltext (\n origin_id INTEGER,\n search_term tsvector,\n target_id INTEGER\n) ;\n"
465
487
  @dbi.should_receive(:do).once.with(sql).and_return
466
488
  sql = "CREATE INDEX IF NOT EXISTS search_term_fulltext\nON fulltext USING gist(search_term);\n"
467
489
  @dbi.should_receive(:do).once.with(sql).and_return
468
- @storage.create_fulltext_index('fulltext')
490
+ @storage.create_fulltext_index("fulltext")
469
491
  end
492
+
470
493
  def test_extent_ids
471
- sql = <<-'SQL'
494
+ sql = <<-SQL
472
495
  SELECT odba_id FROM object WHERE extent = ?
473
496
  SQL
474
- @dbi.should_receive(:select_all).with(sql, 'Object').and_return {
497
+ @dbi.should_receive(:select_all).with(sql, "Object").and_return {
475
498
  [[1], [2], [3], [4], [5]]
476
499
  }
477
- expected = [1,2,3,4,5]
500
+ expected = [1, 2, 3, 4, 5]
478
501
  assert_equal(expected, @storage.extent_ids(Object))
479
502
  end
503
+
480
504
  def test_collection_fetch
481
- sql = <<-'SQL'
505
+ sql = <<-SQL
482
506
  SELECT value FROM collection
483
507
  WHERE odba_id = ? AND key = ?
484
508
  SQL
485
- @dbi.should_receive(:select_one).with(sql, 34, 'key_dump').and_return {
509
+ @dbi.should_receive(:select_one).with(sql, 34, "key_dump").and_return {
486
510
  ["dump"]
487
511
  }
488
512
  assert_equal("dump", @storage.collection_fetch(34, "key_dump"))
489
513
  end
514
+
490
515
  def test_collection_remove
491
- sql = <<-'SQL'
516
+ sql = <<-SQL
492
517
  DELETE FROM collection
493
518
  WHERE odba_id = ? AND key = ?
494
519
  SQL
495
- statement = flexmock('StatementHandle')
496
- @dbi.should_receive(:do).once.with(sql, 34, 'key_dump').and_return do
520
+ flexmock("StatementHandle")
521
+ @dbi.should_receive(:do).once.with(sql, 34, "key_dump").and_return do
497
522
  assert true
498
523
  end
499
524
  @storage.collection_remove(34, "key_dump")
500
525
  end
526
+
501
527
  def test_collection_store
502
- sql = <<-'SQL'
528
+ sql = <<-SQL
503
529
  INSERT INTO collection (odba_id, key, value)
504
530
  VALUES (?, ?, ?)
505
531
  SQL
506
- statement = flexmock('StatementHandle')
507
- @dbi.should_receive(:do).once.with(sql, 34, 'key_dump', 'dump').and_return do
532
+ flexmock("StatementHandle")
533
+ @dbi.should_receive(:do).once.with(sql, 34, "key_dump", "dump").and_return do
508
534
  assert true
509
535
  end
510
- @storage.collection_store(34, "key_dump", 'dump')
536
+ @storage.collection_store(34, "key_dump", "dump")
511
537
  end
538
+
512
539
  def test_index_fetch_keys
513
- sql = <<-'SQL'
540
+ sql = <<-SQL
514
541
  SELECT DISTINCT search_term AS key
515
542
  FROM index
516
543
  ORDER BY key
517
544
  SQL
518
- @dbi.should_receive(:select_all).with(sql).and_return {
519
- [['key1'], ['key2'], ['key3']]
545
+ @dbi.should_receive(:select_all).with(sql).and_return {
546
+ [["key1"], ["key2"], ["key3"]]
520
547
  }
521
- assert_equal(%w{key1 key2 key3},
522
- @storage.index_fetch_keys('index'))
523
- sql = <<-'SQL'
548
+ assert_equal(%w[key1 key2 key3],
549
+ @storage.index_fetch_keys("index"))
550
+ sql = <<-SQL
524
551
  SELECT DISTINCT substr(search_term, 1, 2) AS key
525
552
  FROM index
526
553
  ORDER BY key
527
554
  SQL
528
- @dbi.should_receive(:select_all).with(sql).and_return {
529
- [['k1'], ['k2'], ['k3']]
555
+ @dbi.should_receive(:select_all).with(sql).and_return {
556
+ [["k1"], ["k2"], ["k3"]]
530
557
  }
531
- assert_equal(%w{k1 k2 k3},
532
- @storage.index_fetch_keys('index', 2))
558
+ assert_equal(%w[k1 k2 k3],
559
+ @storage.index_fetch_keys("index", 2))
533
560
  end
561
+
534
562
  def test_index_target_ids
535
- sql = <<-'SQL'
563
+ sql = <<-SQL
536
564
  SELECT DISTINCT target_id, search_term
537
565
  FROM index
538
566
  WHERE origin_id=?
539
567
  SQL
540
- @dbi.should_receive(:select_all).with(sql, 5).and_return {
541
- [[1, 'search-term'], [2, 'search-term'], [3, 'search-term']]
568
+ @dbi.should_receive(:select_all).with(sql, 5).and_return {
569
+ [[1, "search-term"], [2, "search-term"], [3, "search-term"]]
542
570
  }
543
- expected = [[1, 'search-term'], [2, 'search-term'], [3, 'search-term']]
544
- assert_equal(expected, @storage.index_target_ids('index', 5))
571
+ expected = [[1, "search-term"], [2, "search-term"], [3, "search-term"]]
572
+ assert_equal(expected, @storage.index_target_ids("index", 5))
545
573
  end
574
+
546
575
  def test_retrieve_from_condition_index
547
- sql = <<-'SQL'
576
+ sql = <<-SQL
548
577
  SELECT target_id, COUNT(target_id) AS relevance
549
578
  FROM index
550
579
  WHERE TRUE
@@ -554,78 +583,85 @@ CREATE INDEX IF NOT EXISTS target_id_conditions ON conditions(target_id);
554
583
  AND cond4 > ?
555
584
  GROUP BY target_id
556
585
  SQL
557
- @dbi.should_receive(:select_all)\
558
- .with(sql, 'foo', 'bar%', '5').and_return {
586
+ @dbi.should_receive(:select_all)
587
+ .with(sql, "foo", "bar%", "5").and_return {
559
588
  assert(true)
560
589
  }
561
590
  conds = [
562
- ['cond1', 'foo'],
563
- ['cond2', nil],
564
- ['cond3', {'condition' => 'LIKE', 'value' => 'bar'}],
565
- ['cond4', {'condition' => '>', 'value' => 5}],
591
+ ["cond1", "foo"],
592
+ ["cond2", nil],
593
+ ["cond3", {"condition" => "LIKE", "value" => "bar"}],
594
+ ["cond4", {"condition" => ">", "value" => 5}]
566
595
  ]
567
- @storage.retrieve_from_condition_index('index', conds)
568
- sql << ' LIMIT 1'
569
- @dbi.should_receive(:select_all)\
570
- .with(sql, 'foo', 'bar%', 5).and_return {
596
+ @storage.retrieve_from_condition_index("index", conds)
597
+ sql << " LIMIT 1"
598
+ @dbi.should_receive(:select_all)
599
+ .with(sql, "foo", "bar%", 5).and_return {
571
600
  assert(true)
572
601
  }
573
- @storage.retrieve_from_condition_index('index', conds, 1)
602
+ @storage.retrieve_from_condition_index("index", conds, 1)
574
603
  end
604
+
575
605
  def test_setup__object
576
- tables = %w{object_connection collection}
606
+ tables = %w[object_connection collection]
577
607
  @dbi.should_receive(:tables).and_return(tables)
578
- sql = <<-'SQL'
579
- CREATE TABLE IF NOT EXISTS object (
580
- odba_id INTEGER NOT NULL, content TEXT,
581
- name TEXT, prefetchable BOOLEAN, extent TEXT,
582
- PRIMARY KEY(odba_id), UNIQUE(name)
583
- );
584
- CREATE INDEX IF NOT EXISTS prefetchable_index ON object(prefetchable);
585
- CREATE INDEX IF NOT EXISTS extent_index ON object(extent);
608
+ sql = <<~SQL
609
+ CREATE TABLE IF NOT EXISTS object (
610
+ odba_id INTEGER NOT NULL, content TEXT,
611
+ name TEXT, prefetchable BOOLEAN, extent TEXT,
612
+ PRIMARY KEY(odba_id), UNIQUE(name)
613
+ );
614
+ CREATE INDEX IF NOT EXISTS prefetchable_index ON object(prefetchable);
615
+ CREATE INDEX IF NOT EXISTS extent_index ON object(extent);
586
616
  SQL
587
617
  @dbi.should_receive(:execute).with(sql).and_return {
588
- assert(true) }
589
- col = flexmock('Column')
590
- col.should_receive(:name).and_return('extent')
618
+ assert(true)
619
+ }
620
+ col = flexmock("Column")
621
+ col.should_receive(:name).and_return("extent")
591
622
  @dbi.should_receive(:columns).and_return([col])
592
623
  @storage.setup
593
624
  end
625
+
594
626
  def test_setup__object_connection
595
- tables = %w{object collection}
627
+ tables = %w[object collection]
596
628
  @dbi.should_receive(:tables).and_return(tables)
597
- sql = <<-'SQL'
598
- CREATE TABLE IF NOT EXISTS object_connection (
599
- origin_id integer, target_id integer,
600
- PRIMARY KEY(origin_id, target_id)
601
- );
602
- CREATE INDEX IF NOT EXISTS target_id_index ON object_connection(target_id);
629
+ sql = <<~SQL
630
+ CREATE TABLE IF NOT EXISTS object_connection (
631
+ origin_id integer, target_id integer,
632
+ PRIMARY KEY(origin_id, target_id)
633
+ );
634
+ CREATE INDEX IF NOT EXISTS target_id_index ON object_connection(target_id);
603
635
  SQL
604
636
  @dbi.should_receive(:execute).with(sql).and_return {
605
- assert(true) }
606
- col = flexmock('Column')
607
- col.should_receive(:name).and_return('extent')
637
+ assert(true)
638
+ }
639
+ col = flexmock("Column")
640
+ col.should_receive(:name).and_return("extent")
608
641
  @dbi.should_receive(:columns).and_return([col])
609
642
  @storage.setup
610
643
  end
644
+
611
645
  def test_setup__collection
612
- tables = %w{object object_connection}
646
+ tables = %w[object object_connection]
613
647
  @dbi.should_receive(:tables).and_return(tables)
614
- sql = <<-'SQL'
615
- CREATE TABLE IF NOT EXISTS collection (
616
- odba_id integer NOT NULL, key text, value text,
617
- PRIMARY KEY(odba_id, key)
618
- );
648
+ sql = <<~SQL
649
+ CREATE TABLE IF NOT EXISTS collection (
650
+ odba_id integer NOT NULL, key text, value text,
651
+ PRIMARY KEY(odba_id, key)
652
+ );
619
653
  SQL
620
654
  @dbi.should_receive(:execute).with(sql).and_return {
621
- assert(true) }
622
- col = flexmock('Column')
623
- col.should_receive(:name).and_return('extent')
655
+ assert(true)
656
+ }
657
+ col = flexmock("Column")
658
+ col.should_receive(:name).and_return("extent")
624
659
  @dbi.should_receive(:columns).and_return([col])
625
660
  @storage.setup
626
661
  end
662
+
627
663
  def test_setup__extent
628
- tables = %w{object object_connection collection}
664
+ tables = %w[object object_connection collection]
629
665
  @dbi.should_receive(:tables).and_return(tables)
630
666
  sql = "CREATE TABLE IF NOT EXISTS object_connection (\n origin_id integer, target_id integer,\n PRIMARY KEY(origin_id, target_id)\n);\n"
631
667
  @dbi.should_receive(:do).once.with(sql).and_return(true)
@@ -637,159 +673,162 @@ CREATE TABLE IF NOT EXISTS collection (
637
673
  @dbi.should_receive(:columns).and_return([])
638
674
  @storage.setup
639
675
  end
676
+
640
677
  def test_update_condition_index__with_target_id
641
- handle = flexmock('StatementHandle')
642
- sql = <<-'SQL'
643
- INSERT INTO index (origin_id, target_id, foo, bar)
644
- VALUES (?, ?, ?, ?)
678
+ flexmock("StatementHandle")
679
+ sql = <<~SQL
680
+ INSERT INTO index (origin_id, target_id, foo, bar)
681
+ VALUES (?, ?, ?, ?)
645
682
  SQL
646
- @dbi.should_receive(:do).once.with(sql, 12, 15, 14, 'blur').times(1).and_return {
683
+ @dbi.should_receive(:do).once.with(sql, 12, 15, 14, "blur").times(1).and_return {
647
684
  assert(true)
648
685
  }
649
686
  terms = [
650
- ['foo', 14],
651
- ['bar', 'blur'],
687
+ ["foo", 14],
688
+ ["bar", "blur"]
652
689
  ]
653
- @storage.update_condition_index('index', 12, terms, 15)
690
+ @storage.update_condition_index("index", 12, terms, 15)
654
691
  end
692
+
655
693
  def test_update_condition_index__without_target_id
656
- handle = flexmock('StatementHandle')
657
- sql = <<-'SQL'
658
- UPDATE index SET foo=?, bar=?
659
- WHERE origin_id = ?
694
+ flexmock("StatementHandle")
695
+ sql = <<~SQL
696
+ UPDATE index SET foo=?, bar=?
697
+ WHERE origin_id = ?
660
698
  SQL
661
- @dbi.should_receive(:do).once.with(sql, 14, 'blur', 12).times(1).and_return {
699
+ @dbi.should_receive(:do).once.with(sql, 14, "blur", 12).times(1).and_return {
662
700
  assert(true)
663
701
  }
664
702
  terms = [
665
- ['foo', 14],
666
- ['bar', 'blur'],
703
+ ["foo", 14],
704
+ ["bar", "blur"]
667
705
  ]
668
- @storage.update_condition_index('index', 12, terms, nil)
706
+ @storage.update_condition_index("index", 12, terms, nil)
669
707
  end
708
+
670
709
  def test_update_fulltext_index__with_target_id
671
- handle = flexmock('StatementHandle')
710
+ flexmock("StatementHandle")
672
711
  sql = "INSERT INTO index (origin_id, search_term, target_id)\nVALUES (?, to_tsvector(?), ?)\n"
673
712
  @dbi.should_receive(:do).once.with(sql, "12", "some text", 15)
674
- @storage.update_fulltext_index('index', 12, "some text", 15)
713
+ @storage.update_fulltext_index("index", 12, "some text", 15)
675
714
  end
715
+
676
716
  def test_update_fulltext_index__without_target_id
677
- handle = flexmock('StatementHandle')
717
+ flexmock("StatementHandle")
678
718
  sql = "UPDATE index SET search_term=to_tsvector(?)\nWHERE origin_id=?\n"
679
719
  @dbi.should_receive(:do).once.with(sql, "some text", 12).and_return {
680
720
  assert(true)
681
721
  }
682
- @storage.update_fulltext_index('index', 12, "some text", nil)
722
+ @storage.update_fulltext_index("index", 12, "some text", nil)
683
723
  end
724
+
684
725
  def test_condition_index_delete
685
- sql = <<-SQL
686
- DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?
687
- SQL
688
- if /^1\.8/.match(RUBY_VERSION)
689
- sql = "DELETE FROM index WHERE origin_id = ? AND c2 = ? AND c1 = ?"
690
- @dbi.should_receive(:do).once.with(sql.chomp, 3, 7, 'f').times(1).and_return(true)
691
- else
692
- sql = "DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?"
693
- @dbi.should_receive(:do).once.with(sql.chomp, 3, 'f', 7).times(1).and_return(true)
694
- end
695
- handle = flexmock('DBHandle')
696
- @storage.condition_index_delete('index', 3, {'c1' => 'f','c2' => 7})
726
+ sql = "DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?"
727
+ @dbi.should_receive(:do).once.with(sql.chomp, 3, "f", 7).times(1).and_return(true)
728
+ flexmock("DBHandle")
729
+ @storage.condition_index_delete("index", 3, {"c1" => "f", "c2" => 7})
697
730
  end
731
+
698
732
  def test_condition_index_delete__with_target_id
699
- handle = flexmock('DBHandle')
700
- if /^1\.8/.match(RUBY_VERSION)
701
- sql = "DELETE FROM index WHERE origin_id = ? AND c2 = ? AND c1 = ? AND target_id = ?"
702
- @dbi.should_receive(:do).once.with(sql.chomp, 3, 7, 'f', 4).times(1).and_return(true)
703
- else
704
- sql = "DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ? AND target_id = ?"
705
- @dbi.should_receive(:do).once.with(sql.chomp, 3, 'f', 7, 4).times(1).and_return(true)
706
- end
707
- @storage.condition_index_delete('index', 3, {'c1' => 'f','c2' => 7}, 4)
733
+ flexmock("DBHandle")
734
+ sql = "DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ? AND target_id = ?"
735
+ @dbi.should_receive(:do).once.with(sql.chomp, 3, "f", 7, 4).times(1).and_return(true)
736
+ @storage.condition_index_delete("index", 3, {"c1" => "f", "c2" => 7}, 4)
708
737
  end
738
+
709
739
  def test_condition_index_ids__origin_id
710
740
  sql = <<-SQL
711
741
  SELECT DISTINCT *
712
742
  FROM index
713
743
  WHERE origin_id=?
714
744
  SQL
715
- @dbi.should_receive(:select_all).with(sql, 5)\
745
+ @dbi.should_receive(:select_all).with(sql, 5)
716
746
  .times(1).and_return { assert(true) }
717
- @storage.condition_index_ids('index', 5, 'origin_id')
747
+ @storage.condition_index_ids("index", 5, "origin_id")
718
748
  end
749
+
719
750
  def test_condition_index_ids__target_id
720
751
  sql = <<-SQL
721
752
  SELECT DISTINCT *
722
753
  FROM index
723
754
  WHERE target_id=?
724
755
  SQL
725
- @dbi.should_receive(:select_all).with(sql, 5)\
756
+ @dbi.should_receive(:select_all).with(sql, 5)
726
757
  .times(1).and_return { assert(true) }
727
- @storage.condition_index_ids('index', 5, 'target_id')
758
+ @storage.condition_index_ids("index", 5, "target_id")
728
759
  end
760
+
729
761
  def test_ensure_target_id_index
730
762
  sql = <<-SQL
731
763
  CREATE INDEX IF NOT EXISTS target_id_index
732
764
  ON index(target_id)
733
765
  SQL
734
- @dbi.should_receive(:execute).with(sql).and_return {
735
- raise DBI::Error }
736
- @storage.ensure_target_id_index('index')
766
+ @dbi.should_receive(:execute).with(sql).and_return {
767
+ raise DBI::Error
768
+ }
769
+ @storage.ensure_target_id_index("index")
737
770
  end
771
+
738
772
  def test_fulltext_index_delete__origin
739
773
  sql = <<-SQL
740
774
  DELETE FROM index
741
775
  WHERE origin_id = ?
742
776
  SQL
743
- @dbi.should_receive(:do).once.with(sql, 4)\
777
+ @dbi.should_receive(:do).once.with(sql, 4)
744
778
  .times(1).and_return { assert(true) }
745
- @storage.fulltext_index_delete('index', 4, 'origin_id')
779
+ @storage.fulltext_index_delete("index", 4, "origin_id")
746
780
  end
781
+
747
782
  def test_fulltext_index_delete__target
748
783
  sql = <<-SQL
749
784
  DELETE FROM index
750
785
  WHERE target_id = ?
751
786
  SQL
752
- @dbi.should_receive(:do).once.with(sql, 4)\
787
+ @dbi.should_receive(:do).once.with(sql, 4)
753
788
  .times(1).and_return { assert(true) }
754
- @storage.fulltext_index_delete('index', 4, 'target_id')
789
+ @storage.fulltext_index_delete("index", 4, "target_id")
755
790
  end
791
+
756
792
  def test_fulltext_index_target_ids
757
793
  sql = <<-SQL
758
794
  SELECT DISTINCT target_id
759
795
  FROM index
760
796
  WHERE origin_id=?
761
797
  SQL
762
- @dbi.should_receive(:select_all).with(sql, 4)\
798
+ @dbi.should_receive(:select_all).with(sql, 4)
763
799
  .times(1).and_return { assert(true) }
764
- @storage.fulltext_index_target_ids('index', 4)
800
+ @storage.fulltext_index_target_ids("index", 4)
765
801
  end
802
+
766
803
  def test_index_origin_ids
767
804
  sql = <<-SQL
768
805
  SELECT DISTINCT origin_id, search_term
769
806
  FROM index
770
807
  WHERE target_id=?
771
808
  SQL
772
- @dbi.should_receive(:select_all).with(sql, 4)\
809
+ @dbi.should_receive(:select_all).with(sql, 4)
773
810
  .times(1).and_return { assert(true) }
774
- @storage.index_origin_ids('index', 4)
811
+ @storage.index_origin_ids("index", 4)
775
812
  end
813
+
776
814
  def test_delete_index_element__origin
777
- handle = flexmock('DB-Handle')
815
+ flexmock("DB-Handle")
778
816
  @dbi.should_receive(:do).once.with(<<-SQL, 15).times(1).and_return {
779
817
  DELETE FROM index WHERE origin_id = ?
780
818
  SQL
781
819
  assert(true)
782
820
  }
783
- @storage.delete_index_element('index', 15, 'origin_id')
821
+ @storage.delete_index_element("index", 15, "origin_id")
784
822
  end
823
+
785
824
  def test_delete_index_element__target
786
- handle = flexmock('DB-Handle')
825
+ flexmock("DB-Handle")
787
826
  @dbi.should_receive(:do).once.with(<<-SQL, 15).times(1).and_return {
788
827
  DELETE FROM index WHERE target_id = ?
789
828
  SQL
790
829
  assert(true)
791
830
  }
792
- @storage.delete_index_element('index', 15, 'target_id')
831
+ @storage.delete_index_element("index", 15, "target_id")
793
832
  end
794
- end
833
+ end
795
834
  end