odba 1.1.5 → 1.1.6
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.
- 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
|