odba 1.1.5 → 1.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Gemfile +1 -7
- data/History.txt +4 -0
- data/lib/odba/version.rb +1 -1
- data/odba.gemspec +6 -4
- data/test/suite.rb +0 -0
- data/test/test_array.rb +1 -0
- data/test/test_cache.rb +1 -0
- data/test/test_cache_entry.rb +1 -0
- data/test/test_connection_pool.rb +1 -0
- data/test/test_drbwrapper.rb +2 -1
- data/test/test_hash.rb +3 -2
- data/test/test_id_server.rb +1 -0
- data/test/test_index.rb +8 -8
- data/test/test_marshal.rb +2 -0
- data/test/test_persistable.rb +3 -2
- data/test/test_storage.rb +70 -123
- data/test/test_stub.rb +2 -1
- metadata +63 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 8eeea954899332aa488838e1af1f1aff8d9b4a228efb1a83fbe7d800518d4fb7
|
4
|
+
data.tar.gz: 3ff0033e77a3737f63279be8f55045495268372a86c9c24a59ffbf60df46252f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f2141814522c6e0f7e01b71cc4a826abfb5172a6abfb423d871033d804aeea63db8febecfa3252c08591af4e77bcb0efc3eabfad8f85dd88b1b2e704fa50ff3
|
7
|
+
data.tar.gz: 1e9a12681a46bc3fa6154350af97f7abd8bc065d1ffa4ede3af8419209139433b21e5d5b3afb844599758b015f77d1b86abbd96d1913e209f2979e198be0fd60
|
data/Gemfile
CHANGED
@@ -2,16 +2,10 @@ source "https://rubygems.org"
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
group 'test' do
|
6
|
-
gem 'flexmock', "~> 1.3.0"
|
7
|
-
gem 'test-unit'
|
8
|
-
gem 'minitest'
|
9
|
-
end
|
10
|
-
|
11
5
|
group 'debugger' do
|
12
6
|
gem 'pry'
|
13
7
|
gem 'pry-nav'
|
14
8
|
gem 'pry-rescue'
|
15
9
|
gem 'pry-stack_explorer'
|
16
10
|
gem 'pry-doc'
|
17
|
-
end
|
11
|
+
end
|
data/History.txt
CHANGED
data/lib/odba/version.rb
CHANGED
data/odba.gemspec
CHANGED
@@ -16,13 +16,15 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
17
|
spec.require_paths = ["lib"]
|
18
18
|
|
19
|
-
spec.add_dependency 'ydbi', '>=0.5.
|
20
|
-
spec.add_dependency 'ydbd-pg','>=0.5.
|
19
|
+
spec.add_dependency 'ydbi', '>=0.5.6'
|
20
|
+
spec.add_dependency 'ydbd-pg','>=0.5.6'
|
21
21
|
|
22
22
|
spec.add_development_dependency "bundler"
|
23
23
|
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency "rspec"
|
24
25
|
spec.add_development_dependency "flexmock"
|
26
|
+
spec.add_development_dependency "minitest"
|
27
|
+
spec.add_development_dependency "test-unit"
|
28
|
+
spec.add_development_dependency "debug_inspector"
|
25
29
|
spec.add_development_dependency "simplecov", '>= 0.14.1'
|
26
|
-
spec.add_development_dependency "minitest" if /^1\./.match(RUBY_VERSION)
|
27
30
|
end
|
28
|
-
|
data/test/suite.rb
CHANGED
File without changes
|
data/test/test_array.rb
CHANGED
data/test/test_cache.rb
CHANGED
data/test/test_cache_entry.rb
CHANGED
data/test/test_drbwrapper.rb
CHANGED
data/test/test_hash.rb
CHANGED
@@ -4,11 +4,12 @@
|
|
4
4
|
$: << File.dirname(__FILE__)
|
5
5
|
$: << File.expand_path('../lib/', File.dirname(__FILE__))
|
6
6
|
|
7
|
+
require 'minitest/autorun'
|
8
|
+
require 'flexmock/test_unit'
|
9
|
+
require 'flexmock'
|
7
10
|
require 'odba/persistable'
|
8
11
|
require 'odba/stub'
|
9
12
|
require 'odba/odba'
|
10
|
-
require 'minitest/autorun'
|
11
|
-
require 'flexmock'
|
12
13
|
|
13
14
|
module ODBA
|
14
15
|
class TestHash < Minitest::Test
|
data/test/test_id_server.rb
CHANGED
data/test/test_index.rb
CHANGED
@@ -5,10 +5,11 @@ $: << File.dirname(__FILE__)
|
|
5
5
|
$: << File.expand_path("../lib", File.dirname(__FILE__))
|
6
6
|
|
7
7
|
require 'minitest/autorun'
|
8
|
+
require 'flexmock/test_unit'
|
9
|
+
require 'flexmock'
|
8
10
|
require 'odba/index'
|
9
11
|
require 'odba/index_definition'
|
10
12
|
require 'odba/odba'
|
11
|
-
require 'flexmock'
|
12
13
|
|
13
14
|
module ODBA
|
14
15
|
class Origin
|
@@ -310,7 +311,6 @@ module ODBA
|
|
310
311
|
ODBA.storage = @storage
|
311
312
|
df = IndexDefinition.new
|
312
313
|
df.index_name = 'index'
|
313
|
-
df.dictionary = 'german'
|
314
314
|
df.origin_klass = :Origin
|
315
315
|
df.target_klass = :Target
|
316
316
|
df.resolve_origin = :origin
|
@@ -320,12 +320,12 @@ module ODBA
|
|
320
320
|
def test_fetch_ids
|
321
321
|
rows = [[1,3], [2,2], [3,1]]
|
322
322
|
@storage.should_receive(:retrieve_from_fulltext_index)\
|
323
|
-
.with('index', 'search-term',
|
323
|
+
.with('index', 'search-term', false).and_return rows
|
324
324
|
assert_equal([1,2,3], @index.fetch_ids('search-term'))
|
325
325
|
end
|
326
326
|
def test_do_update_index
|
327
327
|
@storage.should_receive(:update_fulltext_index)\
|
328
|
-
.with('index', 3, 'some full text', 4
|
328
|
+
.with('index', 3, 'some full text', 4)
|
329
329
|
@index.do_update_index(3, 'some full text', 4)
|
330
330
|
end
|
331
331
|
def test_update_target
|
@@ -334,9 +334,9 @@ module ODBA
|
|
334
334
|
@storage.should_receive(:fulltext_index_delete)\
|
335
335
|
.with('index', 4, 'target_id')
|
336
336
|
@storage.should_receive(:update_fulltext_index)\
|
337
|
-
.with('index', 1, 'fulltext term', 4
|
337
|
+
.with('index', 1, 'fulltext term', 4)
|
338
338
|
@storage.should_receive(:update_fulltext_index)\
|
339
|
-
.with('index', 2, 'fulltext term', 4
|
339
|
+
.with('index', 2, 'fulltext term', 4)
|
340
340
|
target = Target.new
|
341
341
|
target.odba_id = 4
|
342
342
|
origin1 = Origin.new
|
@@ -356,9 +356,9 @@ module ODBA
|
|
356
356
|
@storage.should_receive(:fulltext_index_delete)\
|
357
357
|
.times(1).with('index', 1, 'origin_id')
|
358
358
|
@storage.should_receive(:update_fulltext_index)\
|
359
|
-
.times(1).with('index', 1, 'fulltext term', 4
|
359
|
+
.times(1).with('index', 1, 'fulltext term', 4)
|
360
360
|
@storage.should_receive(:update_fulltext_index)\
|
361
|
-
.times(1).with('index', 1, 'fulltext term', 5
|
361
|
+
.times(1).with('index', 1, 'fulltext term', 5)
|
362
362
|
target = Target.new
|
363
363
|
target.odba_id = 4
|
364
364
|
origin1 = Origin.new
|
data/test/test_marshal.rb
CHANGED
data/test/test_persistable.rb
CHANGED
@@ -4,14 +4,15 @@
|
|
4
4
|
$: << File.dirname(__FILE__)
|
5
5
|
$: << File.expand_path('../lib/', File.dirname(__FILE__))
|
6
6
|
|
7
|
+
require 'minitest/autorun'
|
8
|
+
require 'flexmock/test_unit'
|
9
|
+
require 'flexmock'
|
7
10
|
require 'odba/persistable'
|
8
11
|
require 'odba/stub'
|
9
12
|
require 'odba/cache'
|
10
13
|
require 'odba/odba'
|
11
14
|
require 'odba/storage'
|
12
15
|
require 'odba/marshal'
|
13
|
-
require 'minitest/autorun'
|
14
|
-
require 'flexmock'
|
15
16
|
require 'yaml'
|
16
17
|
|
17
18
|
module ODBA
|
data/test/test_storage.rb
CHANGED
@@ -5,9 +5,10 @@
|
|
5
5
|
$: << File.dirname(__FILE__)
|
6
6
|
$: << File.expand_path('../lib/', File.dirname(__FILE__))
|
7
7
|
|
8
|
-
require 'odba/storage'
|
9
8
|
require 'minitest/autorun'
|
9
|
+
require 'flexmock/test_unit'
|
10
10
|
require 'flexmock'
|
11
|
+
require 'odba/storage'
|
11
12
|
|
12
13
|
module ODBA
|
13
14
|
class Storage
|
@@ -40,25 +41,25 @@ module ODBA
|
|
40
41
|
expected1 = <<-SQL
|
41
42
|
DELETE FROM object_connection WHERE origin_id = ?
|
42
43
|
SQL
|
43
|
-
dbi.should_receive(:do).with(expected1, 2).times(1).and_return do
|
44
|
+
dbi.should_receive(:do).once.with(expected1, 2).times(1).and_return do
|
44
45
|
assert true
|
45
46
|
end
|
46
47
|
expected2 = <<-SQL
|
47
48
|
DELETE FROM object_connection WHERE target_id = ?
|
48
49
|
SQL
|
49
|
-
dbi.should_receive(:do).with(expected2, 2).times(1).and_return do
|
50
|
+
dbi.should_receive(:do).once.with(expected2, 2).times(1).and_return do
|
50
51
|
assert true
|
51
52
|
end
|
52
53
|
expected3 = <<-SQL
|
53
54
|
DELETE FROM collection WHERE odba_id = ?
|
54
55
|
SQL
|
55
|
-
dbi.should_receive(:do).with(expected3, 2).times(1).and_return do
|
56
|
+
dbi.should_receive(:do).once.with(expected3, 2).times(1).and_return do
|
56
57
|
assert true
|
57
58
|
end
|
58
59
|
expected4 = <<-SQL
|
59
60
|
DELETE FROM object WHERE odba_id = ?
|
60
61
|
SQL
|
61
|
-
dbi.should_receive(:do).with(expected4, 2).times(1).and_return do
|
62
|
+
dbi.should_receive(:do).once.with(expected4, 2).times(1).and_return do
|
62
63
|
assert true
|
63
64
|
end
|
64
65
|
@storage.delete_persistable(2)
|
@@ -83,36 +84,25 @@ module ODBA
|
|
83
84
|
dbi = flexmock('dbi')
|
84
85
|
@storage.dbi = dbi
|
85
86
|
sql = <<-SQL
|
86
|
-
CREATE
|
87
|
-
origin_id INTEGER,
|
88
|
-
search_term TEXT,
|
89
|
-
target_id INTEGER
|
90
|
-
);
|
91
|
-
SQL
|
92
|
-
dbi.should_receive(:do).times(1).with(sql).and_return do
|
93
|
-
assert true
|
94
|
-
end
|
95
|
-
sql = <<-SQL
|
96
|
-
CREATE INDEX origin_id_index_name
|
87
|
+
CREATE INDEX IF NOT EXISTS origin_id_index_name
|
97
88
|
ON index_name(origin_id)
|
98
89
|
SQL
|
99
90
|
dbi.should_receive(:do).times(1).with(sql).and_return do
|
100
91
|
assert true
|
101
92
|
end
|
102
93
|
sql = <<-SQL
|
103
|
-
CREATE INDEX search_term_index_name
|
94
|
+
CREATE INDEX IF NOT EXISTS search_term_index_name
|
104
95
|
ON index_name(search_term)
|
105
96
|
SQL
|
106
97
|
dbi.should_receive(:do).times(1).with(sql).and_return do
|
107
98
|
assert true
|
108
99
|
end
|
109
|
-
sql =
|
110
|
-
|
111
|
-
ON index_name(target_id)
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
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)
|
116
106
|
@storage.create_index("index_name")
|
117
107
|
end
|
118
108
|
def test_next_id
|
@@ -295,7 +285,7 @@ module ODBA
|
|
295
285
|
WHERE origin_id=?
|
296
286
|
SQL
|
297
287
|
handle = flexmock('StatementHandle')
|
298
|
-
@dbi.should_receive(:do).with(sql, 'term', 2).times(1).and_return do
|
288
|
+
@dbi.should_receive(:do).once.with(sql, 'term', 2).times(1).and_return do
|
299
289
|
assert true
|
300
290
|
end
|
301
291
|
@storage.update_index("index", 2, "term", nil)
|
@@ -334,7 +324,7 @@ module ODBA
|
|
334
324
|
AND search_term = ?
|
335
325
|
AND target_id = ?
|
336
326
|
SQL
|
337
|
-
dbi.should_receive(:do).with(sql, 6, 'search-term', 5).times(1).and_return do
|
327
|
+
dbi.should_receive(:do).once.with(sql, 6, 'search-term', 5).times(1).and_return do
|
338
328
|
assert true
|
339
329
|
end
|
340
330
|
@storage.index_delete_target("foo_index", 6, 'search-term', 5)
|
@@ -342,8 +332,8 @@ module ODBA
|
|
342
332
|
def test_drop_index
|
343
333
|
dbi = flexmock("dbi")
|
344
334
|
@storage.dbi = dbi
|
345
|
-
sql = "DROP TABLE foo_index"
|
346
|
-
dbi.should_receive(:do).with(sql).and_return do
|
335
|
+
sql = "DROP TABLE IF EXISTS foo_index"
|
336
|
+
dbi.should_receive(:do).once.with(sql).and_return do
|
347
337
|
assert true
|
348
338
|
end
|
349
339
|
@storage.drop_index("foo_index")
|
@@ -393,7 +383,7 @@ module ODBA
|
|
393
383
|
DELETE FROM object_connection
|
394
384
|
WHERE origin_id = ? AND target_id IN (7,9)
|
395
385
|
SQL
|
396
|
-
dbi.should_receive(:do).with(sql, 123).and_return {
|
386
|
+
dbi.should_receive(:do).once.with(sql, 123).and_return {
|
397
387
|
assert(true)
|
398
388
|
}
|
399
389
|
sql = <<-SQL
|
@@ -428,73 +418,53 @@ module ODBA
|
|
428
418
|
[:bar, 'Date'],
|
429
419
|
]
|
430
420
|
sql = <<-'SQL'
|
431
|
-
CREATE TABLE conditions (
|
421
|
+
CREATE TABLE IF NOT EXISTS conditions (
|
432
422
|
origin_id INTEGER,
|
433
423
|
foo Integer,
|
434
424
|
bar Date,
|
435
425
|
target_id INTEGER
|
436
426
|
);
|
437
427
|
SQL
|
438
|
-
@dbi.should_receive(:do).with(sql).and_return do
|
428
|
+
@dbi.should_receive(:do).once.with(sql).and_return do
|
439
429
|
assert true
|
440
430
|
end
|
441
431
|
sql = <<-'SQL'
|
442
|
-
CREATE INDEX origin_id_conditions ON conditions(origin_id);
|
432
|
+
CREATE INDEX IF NOT EXISTS origin_id_conditions ON conditions(origin_id);
|
443
433
|
SQL
|
444
|
-
@dbi.should_receive(:do).with(sql).and_return do
|
434
|
+
@dbi.should_receive(:do).once.with(sql).and_return do
|
445
435
|
assert true
|
446
436
|
end
|
447
437
|
sql = <<-'SQL'
|
448
|
-
CREATE INDEX foo_conditions ON conditions(foo);
|
438
|
+
CREATE INDEX IF NOT EXISTS foo_conditions ON conditions(foo);
|
449
439
|
SQL
|
450
|
-
@dbi.should_receive(:do).with(sql).and_return do
|
440
|
+
@dbi.should_receive(:do).once.with(sql).and_return do
|
451
441
|
assert true
|
452
442
|
end
|
453
443
|
sql = <<-'SQL'
|
454
|
-
CREATE INDEX bar_conditions ON conditions(bar);
|
444
|
+
CREATE INDEX IF NOT EXISTS bar_conditions ON conditions(bar);
|
455
445
|
SQL
|
456
|
-
@dbi.should_receive(:do).with(sql).and_return do
|
446
|
+
@dbi.should_receive(:do).once.with(sql).and_return do
|
457
447
|
assert true
|
458
448
|
end
|
459
449
|
sql = <<-'SQL'
|
460
|
-
CREATE INDEX target_id_conditions ON conditions(target_id);
|
450
|
+
CREATE INDEX IF NOT EXISTS target_id_conditions ON conditions(target_id);
|
461
451
|
SQL
|
462
|
-
@dbi.should_receive(:do).with(sql).and_return do
|
452
|
+
@dbi.should_receive(:do).once.with(sql).and_return do
|
463
453
|
assert true
|
464
454
|
end
|
465
455
|
@storage.create_condition_index('conditions', definition)
|
466
456
|
end
|
467
457
|
def test_create_fulltext_index
|
468
|
-
sql = <<-'SQL'
|
469
|
-
CREATE TABLE fulltext (
|
470
|
-
origin_id INTEGER,
|
471
|
-
search_term tsvector,
|
472
|
-
target_id INTEGER
|
473
|
-
);
|
474
|
-
SQL
|
475
458
|
statement = flexmock('StatementHandle')
|
476
|
-
@dbi.should_receive(:do).with(
|
477
|
-
|
478
|
-
|
479
|
-
sql =
|
480
|
-
|
481
|
-
|
482
|
-
@dbi.should_receive(:do).with(sql).and_return
|
483
|
-
|
484
|
-
|
485
|
-
sql = <<-'SQL'
|
486
|
-
CREATE INDEX search_term_fulltext
|
487
|
-
ON fulltext USING gist(search_term);
|
488
|
-
SQL
|
489
|
-
@dbi.should_receive(:do).with(sql).and_return do
|
490
|
-
assert true
|
491
|
-
end
|
492
|
-
sql = <<-'SQL'
|
493
|
-
CREATE INDEX target_id_fulltext ON fulltext(target_id);
|
494
|
-
SQL
|
495
|
-
@dbi.should_receive(:do).with(sql).and_return do
|
496
|
-
assert true
|
497
|
-
end
|
459
|
+
@dbi.should_receive(:do).once.with("DROP TABLE IF EXISTS fulltext;\n")
|
460
|
+
sql = "CREATE INDEX IF NOT EXISTS origin_id_fulltext ON fulltext(origin_id);\n"
|
461
|
+
@dbi.should_receive(:do).once.with(sql).and_return
|
462
|
+
sql = "CREATE INDEX IF NOT EXISTS target_id_fulltext ON fulltext(target_id);\n"
|
463
|
+
@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"
|
465
|
+
@dbi.should_receive(:do).once.with(sql).and_return
|
466
|
+
sql = "CREATE INDEX IF NOT EXISTS search_term_fulltext\nON fulltext USING gist(search_term);\n"
|
467
|
+
@dbi.should_receive(:do).once.with(sql).and_return
|
498
468
|
@storage.create_fulltext_index('fulltext')
|
499
469
|
end
|
500
470
|
def test_extent_ids
|
@@ -523,7 +493,7 @@ CREATE INDEX target_id_fulltext ON fulltext(target_id);
|
|
523
493
|
WHERE odba_id = ? AND key = ?
|
524
494
|
SQL
|
525
495
|
statement = flexmock('StatementHandle')
|
526
|
-
@dbi.should_receive(:do).with(sql, 34, 'key_dump').and_return do
|
496
|
+
@dbi.should_receive(:do).once.with(sql, 34, 'key_dump').and_return do
|
527
497
|
assert true
|
528
498
|
end
|
529
499
|
@storage.collection_remove(34, "key_dump")
|
@@ -534,7 +504,7 @@ CREATE INDEX target_id_fulltext ON fulltext(target_id);
|
|
534
504
|
VALUES (?, ?, ?)
|
535
505
|
SQL
|
536
506
|
statement = flexmock('StatementHandle')
|
537
|
-
@dbi.should_receive(:do).with(sql, 34, 'key_dump', 'dump').and_return do
|
507
|
+
@dbi.should_receive(:do).once.with(sql, 34, 'key_dump', 'dump').and_return do
|
538
508
|
assert true
|
539
509
|
end
|
540
510
|
@storage.collection_store(34, "key_dump", 'dump')
|
@@ -606,13 +576,13 @@ CREATE INDEX target_id_fulltext ON fulltext(target_id);
|
|
606
576
|
tables = %w{object_connection collection}
|
607
577
|
@dbi.should_receive(:tables).and_return(tables)
|
608
578
|
sql = <<-'SQL'
|
609
|
-
CREATE TABLE object (
|
579
|
+
CREATE TABLE IF NOT EXISTS object (
|
610
580
|
odba_id INTEGER NOT NULL, content TEXT,
|
611
581
|
name TEXT, prefetchable BOOLEAN, extent TEXT,
|
612
582
|
PRIMARY KEY(odba_id), UNIQUE(name)
|
613
583
|
);
|
614
|
-
CREATE INDEX prefetchable_index ON object(prefetchable);
|
615
|
-
CREATE INDEX extent_index ON object(extent);
|
584
|
+
CREATE INDEX IF NOT EXISTS prefetchable_index ON object(prefetchable);
|
585
|
+
CREATE INDEX IF NOT EXISTS extent_index ON object(extent);
|
616
586
|
SQL
|
617
587
|
@dbi.should_receive(:execute).with(sql).and_return {
|
618
588
|
assert(true) }
|
@@ -625,11 +595,11 @@ CREATE INDEX extent_index ON object(extent);
|
|
625
595
|
tables = %w{object collection}
|
626
596
|
@dbi.should_receive(:tables).and_return(tables)
|
627
597
|
sql = <<-'SQL'
|
628
|
-
CREATE TABLE object_connection (
|
598
|
+
CREATE TABLE IF NOT EXISTS object_connection (
|
629
599
|
origin_id integer, target_id integer,
|
630
600
|
PRIMARY KEY(origin_id, target_id)
|
631
601
|
);
|
632
|
-
CREATE INDEX target_id_index ON object_connection(target_id);
|
602
|
+
CREATE INDEX IF NOT EXISTS target_id_index ON object_connection(target_id);
|
633
603
|
SQL
|
634
604
|
@dbi.should_receive(:execute).with(sql).and_return {
|
635
605
|
assert(true) }
|
@@ -642,7 +612,7 @@ CREATE INDEX target_id_index ON object_connection(target_id);
|
|
642
612
|
tables = %w{object object_connection}
|
643
613
|
@dbi.should_receive(:tables).and_return(tables)
|
644
614
|
sql = <<-'SQL'
|
645
|
-
CREATE TABLE collection (
|
615
|
+
CREATE TABLE IF NOT EXISTS collection (
|
646
616
|
odba_id integer NOT NULL, key text, value text,
|
647
617
|
PRIMARY KEY(odba_id, key)
|
648
618
|
);
|
@@ -657,24 +627,13 @@ CREATE TABLE collection (
|
|
657
627
|
def test_setup__extent
|
658
628
|
tables = %w{object object_connection collection}
|
659
629
|
@dbi.should_receive(:tables).and_return(tables)
|
660
|
-
sql = "CREATE TABLE
|
661
|
-
@dbi.should_receive(:do).with(sql).and_return(true)
|
662
|
-
sql
|
663
|
-
@dbi.should_receive(:do).with(sql).and_return(true)
|
664
|
-
sql = "CREATE
|
665
|
-
@dbi.should_receive(:do).with(sql).and_return(true)
|
666
|
-
|
667
|
-
@dbi.should_receive(:do).with(sql).and_return(true)
|
668
|
-
sql = "CREATE INDEX target_id_index ON object_connection(target_id);\n"
|
669
|
-
@dbi.should_receive(:do).with(sql).and_return(true)
|
670
|
-
sql = "CREATE TABLE collection (\n odba_id integer NOT NULL, key text, value text,\n PRIMARY KEY(odba_id, key)\n);\n"
|
671
|
-
@dbi.should_receive(:do).with(sql).and_return(true)
|
672
|
-
sql = <<-'SQL'
|
673
|
-
ALTER TABLE object ADD COLUMN extent TEXT;
|
674
|
-
CREATE INDEX extent_index ON object(extent);
|
675
|
-
SQL
|
676
|
-
@dbi.should_receive(:do).with(sql).and_return {
|
677
|
-
assert(true) }
|
630
|
+
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
|
+
@dbi.should_receive(:do).once.with(sql).and_return(true)
|
632
|
+
sql = "CREATE INDEX IF NOT EXISTS target_id_index ON object_connection(target_id);\n"
|
633
|
+
@dbi.should_receive(:do).once.with(sql).and_return(true)
|
634
|
+
sql = "CREATE TABLE IF NOT EXISTS collection (\n odba_id integer NOT NULL, key text, value text,\n PRIMARY KEY(odba_id, key)\n);\n"
|
635
|
+
@dbi.should_receive(:do).once.with(sql).and_return(true)
|
636
|
+
@dbi.should_receive(:do).once.with("ALTER TABLE object ADD COLUMN extent TEXT;\nCREATE INDEX IF NOT EXISTS extent_index ON object(extent);\n")
|
678
637
|
@dbi.should_receive(:columns).and_return([])
|
679
638
|
@storage.setup
|
680
639
|
end
|
@@ -684,7 +643,7 @@ CREATE INDEX extent_index ON object(extent);
|
|
684
643
|
INSERT INTO index (origin_id, target_id, foo, bar)
|
685
644
|
VALUES (?, ?, ?, ?)
|
686
645
|
SQL
|
687
|
-
@dbi.should_receive(:do).with(sql, 12, 15, 14, 'blur').times(1).and_return {
|
646
|
+
@dbi.should_receive(:do).once.with(sql, 12, 15, 14, 'blur').times(1).and_return {
|
688
647
|
assert(true)
|
689
648
|
}
|
690
649
|
terms = [
|
@@ -699,7 +658,7 @@ VALUES (?, ?, ?, ?)
|
|
699
658
|
UPDATE index SET foo=?, bar=?
|
700
659
|
WHERE origin_id = ?
|
701
660
|
SQL
|
702
|
-
@dbi.should_receive(:do).with(sql, 14, 'blur', 12).times(1).and_return {
|
661
|
+
@dbi.should_receive(:do).once.with(sql, 14, 'blur', 12).times(1).and_return {
|
703
662
|
assert(true)
|
704
663
|
}
|
705
664
|
terms = [
|
@@ -710,29 +669,17 @@ WHERE origin_id = ?
|
|
710
669
|
end
|
711
670
|
def test_update_fulltext_index__with_target_id
|
712
671
|
handle = flexmock('StatementHandle')
|
713
|
-
sql =
|
714
|
-
|
715
|
-
|
716
|
-
SQL
|
717
|
-
@dbi.should_receive(:do).with(sql, 12, "german", "some text",
|
718
|
-
15).and_return {
|
719
|
-
assert(true)
|
720
|
-
}
|
721
|
-
@storage.update_fulltext_index('index', 12, "some text", 15,
|
722
|
-
'german')
|
672
|
+
sql = "INSERT INTO index (origin_id, search_term, target_id)\nVALUES (?, to_tsvector(?), ?)\n"
|
673
|
+
@dbi.should_receive(:do).once.with(sql, "12", "some text", 15)
|
674
|
+
@storage.update_fulltext_index('index', 12, "some text", 15)
|
723
675
|
end
|
724
676
|
def test_update_fulltext_index__without_target_id
|
725
677
|
handle = flexmock('StatementHandle')
|
726
|
-
sql =
|
727
|
-
|
728
|
-
WHERE origin_id=?
|
729
|
-
SQL
|
730
|
-
@dbi.should_receive(:do).with(sql, "german", "some text",
|
731
|
-
12).and_return {
|
678
|
+
sql = "UPDATE index SET search_term=to_tsvector(?)\nWHERE origin_id=?\n"
|
679
|
+
@dbi.should_receive(:do).once.with(sql, "some text", 12).and_return {
|
732
680
|
assert(true)
|
733
681
|
}
|
734
|
-
@storage.update_fulltext_index('index', 12, "some text", nil
|
735
|
-
'german')
|
682
|
+
@storage.update_fulltext_index('index', 12, "some text", nil)
|
736
683
|
end
|
737
684
|
def test_condition_index_delete
|
738
685
|
sql = <<-SQL
|
@@ -740,10 +687,10 @@ DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?
|
|
740
687
|
SQL
|
741
688
|
if /^1\.8/.match(RUBY_VERSION)
|
742
689
|
sql = "DELETE FROM index WHERE origin_id = ? AND c2 = ? AND c1 = ?"
|
743
|
-
@dbi.should_receive(:do).with(sql.chomp, 3, 7, 'f').times(1).and_return(true)
|
690
|
+
@dbi.should_receive(:do).once.with(sql.chomp, 3, 7, 'f').times(1).and_return(true)
|
744
691
|
else
|
745
692
|
sql = "DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?"
|
746
|
-
@dbi.should_receive(:do).with(sql.chomp, 3, 'f', 7).times(1).and_return(true)
|
693
|
+
@dbi.should_receive(:do).once.with(sql.chomp, 3, 'f', 7).times(1).and_return(true)
|
747
694
|
end
|
748
695
|
handle = flexmock('DBHandle')
|
749
696
|
@storage.condition_index_delete('index', 3, {'c1' => 'f','c2' => 7})
|
@@ -752,10 +699,10 @@ DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?
|
|
752
699
|
handle = flexmock('DBHandle')
|
753
700
|
if /^1\.8/.match(RUBY_VERSION)
|
754
701
|
sql = "DELETE FROM index WHERE origin_id = ? AND c2 = ? AND c1 = ? AND target_id = ?"
|
755
|
-
@dbi.should_receive(:do).with(sql.chomp, 3, 7, 'f', 4).times(1).and_return(true)
|
702
|
+
@dbi.should_receive(:do).once.with(sql.chomp, 3, 7, 'f', 4).times(1).and_return(true)
|
756
703
|
else
|
757
704
|
sql = "DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ? AND target_id = ?"
|
758
|
-
@dbi.should_receive(:do).with(sql.chomp, 3, 'f', 7, 4).times(1).and_return(true)
|
705
|
+
@dbi.should_receive(:do).once.with(sql.chomp, 3, 'f', 7, 4).times(1).and_return(true)
|
759
706
|
end
|
760
707
|
@storage.condition_index_delete('index', 3, {'c1' => 'f','c2' => 7}, 4)
|
761
708
|
end
|
@@ -781,7 +728,7 @@ DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?
|
|
781
728
|
end
|
782
729
|
def test_ensure_target_id_index
|
783
730
|
sql = <<-SQL
|
784
|
-
CREATE INDEX target_id_index
|
731
|
+
CREATE INDEX IF NOT EXISTS target_id_index
|
785
732
|
ON index(target_id)
|
786
733
|
SQL
|
787
734
|
@dbi.should_receive(:execute).with(sql).and_return {
|
@@ -793,7 +740,7 @@ DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?
|
|
793
740
|
DELETE FROM index
|
794
741
|
WHERE origin_id = ?
|
795
742
|
SQL
|
796
|
-
@dbi.should_receive(:do).with(sql, 4)\
|
743
|
+
@dbi.should_receive(:do).once.with(sql, 4)\
|
797
744
|
.times(1).and_return { assert(true) }
|
798
745
|
@storage.fulltext_index_delete('index', 4, 'origin_id')
|
799
746
|
end
|
@@ -802,7 +749,7 @@ DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?
|
|
802
749
|
DELETE FROM index
|
803
750
|
WHERE target_id = ?
|
804
751
|
SQL
|
805
|
-
@dbi.should_receive(:do).with(sql, 4)\
|
752
|
+
@dbi.should_receive(:do).once.with(sql, 4)\
|
806
753
|
.times(1).and_return { assert(true) }
|
807
754
|
@storage.fulltext_index_delete('index', 4, 'target_id')
|
808
755
|
end
|
@@ -828,7 +775,7 @@ DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?
|
|
828
775
|
end
|
829
776
|
def test_delete_index_element__origin
|
830
777
|
handle = flexmock('DB-Handle')
|
831
|
-
@dbi.should_receive(:do).with(<<-SQL, 15).times(1).and_return {
|
778
|
+
@dbi.should_receive(:do).once.with(<<-SQL, 15).times(1).and_return {
|
832
779
|
DELETE FROM index WHERE origin_id = ?
|
833
780
|
SQL
|
834
781
|
assert(true)
|
@@ -837,7 +784,7 @@ DELETE FROM index WHERE origin_id = ? AND c1 = ? AND c2 = ?
|
|
837
784
|
end
|
838
785
|
def test_delete_index_element__target
|
839
786
|
handle = flexmock('DB-Handle')
|
840
|
-
@dbi.should_receive(:do).with(<<-SQL, 15).times(1).and_return {
|
787
|
+
@dbi.should_receive(:do).once.with(<<-SQL, 15).times(1).and_return {
|
841
788
|
DELETE FROM index WHERE target_id = ?
|
842
789
|
SQL
|
843
790
|
assert(true)
|
data/test/test_stub.rb
CHANGED
@@ -5,10 +5,11 @@
|
|
5
5
|
$: << File.expand_path('../lib/', File.dirname(__FILE__))
|
6
6
|
$: << File.dirname(__FILE__)
|
7
7
|
require 'minitest/autorun'
|
8
|
+
require 'flexmock/test_unit'
|
9
|
+
require 'flexmock'
|
8
10
|
require 'odba/stub'
|
9
11
|
require 'odba/persistable'
|
10
12
|
require 'odba/odba'
|
11
|
-
require 'flexmock'
|
12
13
|
require 'yaml'
|
13
14
|
|
14
15
|
module ODBA
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: odba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masaomi Hatakeyama, Zeno R.R. Davatz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ydbi
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.5.
|
19
|
+
version: 0.5.6
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.5.
|
26
|
+
version: 0.5.6
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: ydbd-pg
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.5.
|
33
|
+
version: 0.5.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.5.
|
40
|
+
version: 0.5.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: flexmock
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +94,48 @@ dependencies:
|
|
80
94
|
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: test-unit
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: debug_inspector
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
83
139
|
- !ruby/object:Gem::Dependency
|
84
140
|
name: simplecov
|
85
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -165,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
221
|
version: '0'
|
166
222
|
requirements: []
|
167
223
|
rubyforge_project:
|
168
|
-
rubygems_version: 2.
|
224
|
+
rubygems_version: 2.7.3
|
169
225
|
signing_key:
|
170
226
|
specification_version: 4
|
171
227
|
summary: Ruby Software for ODDB.org Memory Management
|