odba 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +4 -0
- data/.travis.yml +25 -0
- data/Gemfile +17 -0
- data/History.txt +5 -0
- data/Manifest.txt +38 -0
- data/Rakefile +23 -23
- data/lib/odba.rb +0 -4
- data/lib/odba/cache.rb +1 -0
- data/lib/odba/cache_entry.rb +1 -0
- data/lib/odba/version.rb +5 -0
- data/odba.gemspec +29 -0
- data/test/suite.rb +4 -0
- data/test/test_array.rb +18 -11
- data/test/test_cache.rb +7 -9
- data/test/test_cache_entry.rb +5 -2
- data/test/test_connection_pool.rb +5 -5
- data/test/test_drbwrapper.rb +3 -3
- data/test/test_hash.rb +13 -10
- data/test/test_id_server.rb +7 -6
- data/test/test_index.rb +14 -11
- data/test/test_marshal.rb +6 -3
- data/test/test_persistable.rb +87 -155
- data/test/test_storage.rb +46 -27
- data/test/test_stub.rb +46 -102
- metadata +98 -50
- data/.gemtest +0 -0
data/test/test_hash.rb
CHANGED
@@ -7,13 +7,13 @@ $: << File.expand_path('../lib/', File.dirname(__FILE__))
|
|
7
7
|
require 'odba/persistable'
|
8
8
|
require 'odba/stub'
|
9
9
|
require 'odba/odba'
|
10
|
-
require '
|
10
|
+
require 'minitest/autorun'
|
11
11
|
require 'flexmock'
|
12
12
|
|
13
13
|
module ODBA
|
14
|
-
class TestHash < Test
|
14
|
+
class TestHash < Minitest::Test
|
15
15
|
include FlexMock::TestCase
|
16
|
-
class
|
16
|
+
class ODBAContainerInHash
|
17
17
|
include Persistable
|
18
18
|
attr_accessor :non_replaceable, :replaceable, :odba_id
|
19
19
|
end
|
@@ -32,11 +32,14 @@ module ODBA
|
|
32
32
|
ODBA.storage = flexmock("storage")
|
33
33
|
@hash.clear
|
34
34
|
end
|
35
|
+
def teardown
|
36
|
+
super
|
37
|
+
end
|
35
38
|
def test_odba_unsaved_neighbors_hash
|
36
|
-
repkey1 =
|
37
|
-
repkey2 =
|
38
|
-
repvalue1 =
|
39
|
-
repvalue2 =
|
39
|
+
repkey1 = ODBAContainerInHash.new
|
40
|
+
repkey2 = ODBAContainerInHash.new
|
41
|
+
repvalue1 = ODBAContainerInHash.new
|
42
|
+
repvalue2 = ODBAContainerInHash.new
|
40
43
|
@hash.store(repkey1, repvalue1)
|
41
44
|
@hash.store(repkey2, repvalue2)
|
42
45
|
result = @hash.odba_unsaved_neighbors(1)
|
@@ -104,11 +107,11 @@ module ODBA
|
|
104
107
|
assert_equal({:foo => 'bar', :trouble => 'not'}, @hash)
|
105
108
|
end
|
106
109
|
def test_odba_target_ids
|
107
|
-
o =
|
110
|
+
o = ODBAContainerInHash.new
|
108
111
|
o.odba_id = 1
|
109
|
-
p =
|
112
|
+
p = ODBAContainerInHash.new
|
110
113
|
p.odba_id = 2
|
111
|
-
q =
|
114
|
+
q = ODBAContainerInHash.new
|
112
115
|
q.odba_id = 3
|
113
116
|
@hash.store('foo', p)
|
114
117
|
@hash.store(p, 'bar')
|
data/test/test_id_server.rb
CHANGED
@@ -4,20 +4,24 @@
|
|
4
4
|
$: << File.dirname(__FILE__)
|
5
5
|
$: << File.expand_path('../lib', File.dirname(__FILE__))
|
6
6
|
|
7
|
-
require '
|
7
|
+
require 'minitest/autorun'
|
8
8
|
require 'flexmock'
|
9
9
|
require 'odba/id_server'
|
10
10
|
require 'odba/odba'
|
11
11
|
require 'odba/marshal'
|
12
12
|
|
13
13
|
module ODBA
|
14
|
-
class TestIdServer < Test
|
14
|
+
class TestIdServer < Minitest::Test
|
15
15
|
include FlexMock::TestCase
|
16
16
|
def setup
|
17
17
|
@cache = ODBA.cache = flexmock('cache')
|
18
18
|
@id_server = IdServer.new
|
19
19
|
@id_server.instance_variable_set('@odba_id', 1)
|
20
20
|
end
|
21
|
+
def teardown
|
22
|
+
@id_server = nil
|
23
|
+
super
|
24
|
+
end
|
21
25
|
def test_first
|
22
26
|
@cache.should_receive(:store).with(@id_server).times(3)
|
23
27
|
assert_equal(1, @id_server.next_id(:foo))
|
@@ -33,10 +37,7 @@ module ODBA
|
|
33
37
|
def test_dumpable
|
34
38
|
@cache.should_receive(:store).with(@id_server).times(1)
|
35
39
|
@id_server.next_id(:foo)
|
36
|
-
dump =
|
37
|
-
assert_nothing_raised {
|
38
|
-
dump = @id_server.odba_isolated_dump
|
39
|
-
}
|
40
|
+
dump = @id_server.odba_isolated_dump
|
40
41
|
assert_instance_of(ODBA::IdServer, ODBA.marshaller.load(dump))
|
41
42
|
end
|
42
43
|
end
|
data/test/test_index.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
$: << File.dirname(__FILE__)
|
5
5
|
$: << File.expand_path("../lib", File.dirname(__FILE__))
|
6
6
|
|
7
|
-
require '
|
7
|
+
require 'minitest/autorun'
|
8
8
|
require 'odba/index'
|
9
9
|
require 'odba/index_definition'
|
10
10
|
require 'odba/odba'
|
@@ -21,7 +21,7 @@ module ODBA
|
|
21
21
|
end
|
22
22
|
class TargetSubclass < Target
|
23
23
|
end
|
24
|
-
class TestIndexCommon < Test
|
24
|
+
class TestIndexCommon < Minitest::Test
|
25
25
|
include FlexMock::TestCase
|
26
26
|
def setup
|
27
27
|
@storage = flexmock('Storage')
|
@@ -34,6 +34,12 @@ module ODBA
|
|
34
34
|
df.resolve_search_term = :term
|
35
35
|
@index = IndexCommon.new(df, ODBA)
|
36
36
|
end
|
37
|
+
def teardown
|
38
|
+
@storage = nil
|
39
|
+
ODBA.storage = nil
|
40
|
+
load = File.expand_path(File.join(File.dirname(__FILE__), '../lib/odba/storage.rb'))
|
41
|
+
super
|
42
|
+
end
|
37
43
|
def test_delete
|
38
44
|
handle = flexmock('DB-Handle')
|
39
45
|
@storage.should_receive(:delete_index_element)\
|
@@ -166,15 +172,12 @@ module ODBA
|
|
166
172
|
def test_update__subclass
|
167
173
|
origin = OriginSubclass.new
|
168
174
|
target = TargetSubclass.new
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
assert_nothing_raised {
|
173
|
-
@index.update(target)
|
174
|
-
}
|
175
|
+
@storage.should_receive(:index_target_ids).and_return(3)
|
176
|
+
@index.update(origin)
|
177
|
+
@index.update(target)
|
175
178
|
end
|
176
179
|
end
|
177
|
-
class TestIndex < Test
|
180
|
+
class TestIndex < Minitest::Test
|
178
181
|
include FlexMock::TestCase
|
179
182
|
def setup
|
180
183
|
@storage = flexmock('Storage')
|
@@ -202,7 +205,7 @@ module ODBA
|
|
202
205
|
assert_equal(['resolved'], @index.search_terms(origin))
|
203
206
|
end
|
204
207
|
end
|
205
|
-
class TestConditionIndex < Test
|
208
|
+
class TestConditionIndex < Minitest::Test
|
206
209
|
include FlexMock::TestCase
|
207
210
|
def setup
|
208
211
|
@storage = flexmock('Storage')
|
@@ -299,7 +302,7 @@ module ODBA
|
|
299
302
|
@index.update_origin(origin1)
|
300
303
|
end
|
301
304
|
end
|
302
|
-
class TestFulltextIndex < Test
|
305
|
+
class TestFulltextIndex < Minitest::Test
|
303
306
|
include FlexMock::TestCase
|
304
307
|
def setup
|
305
308
|
@storage = flexmock('Storage')
|
data/test/test_marshal.rb
CHANGED
@@ -2,14 +2,17 @@
|
|
2
2
|
|
3
3
|
$: << File.expand_path('../lib', File.dirname(__FILE__))
|
4
4
|
|
5
|
-
require '
|
5
|
+
require 'minitest/autorun'
|
6
6
|
require 'odba/marshal'
|
7
7
|
|
8
8
|
module ODBA
|
9
|
-
class TestMarshal < Test
|
9
|
+
class TestMarshal < Minitest::Test
|
10
10
|
def setup
|
11
11
|
@foo = Array.new
|
12
12
|
end
|
13
|
+
def teardown
|
14
|
+
super
|
15
|
+
end
|
13
16
|
def test_dump
|
14
17
|
assert_equal("04085b00",ODBA::Marshal.dump(@foo))
|
15
18
|
end
|
@@ -17,7 +20,7 @@ module ODBA
|
|
17
20
|
assert_equal(@foo, ODBA::Marshal.load("04085b00"))
|
18
21
|
end
|
19
22
|
def test_load_18_in_19
|
20
|
-
if RUBY_VERSION >= '1.9'
|
23
|
+
if RUBY_VERSION >= '1.9' and false
|
21
24
|
require 'odba/18_19_loading_compatibility'
|
22
25
|
binary = "\004\bu:\tDate=\004\b[\bo:\rRational\a:\017@numeratori\003\205\353J:\021@denominatori\ai\000i\003\031\025#".unpack('H*').first
|
23
26
|
date = Marshal.load(binary)
|
data/test/test_persistable.rb
CHANGED
@@ -10,7 +10,7 @@ require 'odba/cache'
|
|
10
10
|
require 'odba/odba'
|
11
11
|
require 'odba/storage'
|
12
12
|
require 'odba/marshal'
|
13
|
-
require '
|
13
|
+
require 'minitest/autorun'
|
14
14
|
require 'flexmock'
|
15
15
|
require 'yaml'
|
16
16
|
|
@@ -20,14 +20,14 @@ module ODBA
|
|
20
20
|
attr_writer :odba_id
|
21
21
|
public :odba_replace_excluded!
|
22
22
|
end
|
23
|
-
class TestPersistable < Test
|
23
|
+
class TestPersistable < Minitest::Test
|
24
24
|
include FlexMock::TestCase
|
25
25
|
class ODBAExcluding
|
26
26
|
include ODBA::Persistable
|
27
27
|
ODBA_EXCLUDE_VARS = ["@excluded"]
|
28
28
|
attr_accessor :included, :excluded
|
29
29
|
end
|
30
|
-
class
|
30
|
+
class ODBAContainerInPersistable
|
31
31
|
include ODBA::Persistable
|
32
32
|
ODBA_SERIALIZABLE = ['@serializable']
|
33
33
|
attr_accessor :non_replaceable, :replaceable, :replaceable2,
|
@@ -43,43 +43,37 @@ module ODBA
|
|
43
43
|
#attr_accessor :origin
|
44
44
|
odba_index :name
|
45
45
|
odba_index :foo, :bar
|
46
|
-
odba_index :origin, :origin, :non_replaceable,
|
46
|
+
odba_index :origin, :origin, :non_replaceable, ODBAContainerInPersistable
|
47
47
|
odba_index :redirect, 'redirect.name'
|
48
48
|
end
|
49
49
|
def setup
|
50
50
|
ODBA.storage = flexmock("storage")
|
51
|
-
ODBA.marshaller = flexmock("
|
51
|
+
ODBA.marshaller = flexmock("marshaller_persistable")
|
52
52
|
ODBA.cache = flexmock("cache")
|
53
|
-
@odba =
|
53
|
+
@odba = ODBAContainerInPersistable.new
|
54
54
|
end
|
55
55
|
def teardown
|
56
|
-
ODBA.storage.
|
57
|
-
ODBA.marshaller.
|
58
|
-
ODBA.cache.
|
56
|
+
ODBA.storage.flexmock_verify
|
57
|
+
ODBA.marshaller.flexmock_verify
|
58
|
+
ODBA.cache.flexmock_verify
|
59
59
|
ODBA.storage = nil
|
60
60
|
ODBA.marshaller = nil
|
61
61
|
ODBA.cache = nil
|
62
|
+
super
|
62
63
|
end
|
63
64
|
def test_odba_id
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
ODBA.marshaller.mock_handle(:dump) { |obj|
|
68
|
-
"foo"
|
69
|
-
}
|
70
|
-
ODBA.storage.mock_handle(:store) { |id,obj|}
|
65
|
+
DBA.cache.should_receive(:next_id).with().and_return(2)
|
66
|
+
ODBA.marshaller.should_receive(:dump).and_return('foo')
|
67
|
+
ODBA.storage.should_receive(:store)
|
71
68
|
@odba.odba_take_snapshot(1)
|
72
69
|
assert_equal(2, @odba.odba_id)
|
73
|
-
ODBA.storage.
|
74
|
-
ODBA.marshaller.
|
70
|
+
ODBA.storage.flexmock_verify
|
71
|
+
ODBA.marshaller.flexmock_verify
|
75
72
|
end
|
76
73
|
def test_odba_delete
|
77
|
-
odba_container =
|
74
|
+
odba_container = ODBAContainerInPersistable.new
|
78
75
|
odba_container.odba_id = 2
|
79
|
-
|
80
|
-
ODBA.cache.mock_handle(:delete) { |object|
|
81
|
-
assert_equal(odba_container, object)
|
82
|
-
}
|
76
|
+
ODBA.cache.should_receive(:delete).with(odba_container)
|
83
77
|
odba_container.odba_delete
|
84
78
|
end
|
85
79
|
def test_odba_replace_excluded
|
@@ -101,37 +95,25 @@ module ODBA
|
|
101
95
|
assert_equal(@odba.replaceable, substitution)
|
102
96
|
end
|
103
97
|
def test_odba_take_snapshot
|
104
|
-
level1 =
|
105
|
-
level2 =
|
98
|
+
level1 = ODBAContainerInPersistable.new
|
99
|
+
level2 = ODBAContainerInPersistable.new
|
106
100
|
@odba.replaceable = level1
|
107
101
|
level1.replaceable = level2
|
108
|
-
|
109
|
-
ODBA.cache.mock_handle(:store) { |obj| 2}
|
110
|
-
ODBA.cache.mock_handle(:store) { |obj| 2}
|
111
|
-
|
112
|
-
ODBA.cache.mock_handle(:store) { |obj| 2}
|
113
|
-
|
102
|
+
ODBA.cache.should_receive(:store).with(FlexMock.any).times(3).and_return(2)
|
114
103
|
@odba.odba_take_snapshot
|
115
104
|
assert_equal(1, @odba.odba_snapshot_level)
|
116
105
|
assert_equal(1, level1.odba_snapshot_level)
|
117
106
|
assert_equal(1, level2.odba_snapshot_level)
|
118
|
-
ODBA.cache.
|
107
|
+
ODBA.cache.flexmock_verify
|
119
108
|
end
|
120
109
|
def test_odba_unsaved_neighbors
|
121
110
|
replaceable = flexmock
|
122
111
|
@odba.replaceable = replaceable
|
123
|
-
|
124
|
-
|
125
|
-
replaceable.mock_handle(:is_a?) { |arg| false }
|
126
|
-
=end
|
127
|
-
replaceable.mock_handle(:is_a?) { |arg|
|
128
|
-
assert_equal(Persistable, arg)
|
129
|
-
true
|
130
|
-
}
|
131
|
-
replaceable.mock_handle(:odba_unsaved?){ |level| true}
|
112
|
+
replaceable.should_receive(:is_a?).with(Persistable).and_return(true)
|
113
|
+
replaceable.should_receive(:odba_unsaved?).with(FlexMock.any).and_return(true)
|
132
114
|
result = @odba.odba_unsaved_neighbors(2)
|
133
115
|
assert_equal([replaceable], result)
|
134
|
-
replaceable.
|
116
|
+
replaceable.flexmock_verify
|
135
117
|
end
|
136
118
|
def test_odba_unsaved_neighbors_2
|
137
119
|
odba = ODBAExcluding.new
|
@@ -139,37 +121,22 @@ module ODBA
|
|
139
121
|
excluded = flexmock
|
140
122
|
odba.excluded = excluded
|
141
123
|
odba.included = included
|
142
|
-
|
143
|
-
|
144
|
-
assert_equal(Hash, klass)
|
145
|
-
false
|
146
|
-
}
|
147
|
-
included.mock_handle(:is_a?) { |klass|
|
148
|
-
assert_equal(Array, klass)
|
149
|
-
false
|
150
|
-
}
|
151
|
-
=end
|
152
|
-
included.mock_handle(:is_a?) { |klass|
|
153
|
-
assert_equal(ODBA::Persistable, klass)
|
154
|
-
true
|
155
|
-
}
|
156
|
-
included.mock_handle(:odba_unsaved?) { true }
|
124
|
+
included.should_receive(:is_a?).with(Persistable).and_return(true)
|
125
|
+
included.should_receive(:odba_unsaved?).with(FlexMock.any).and_return(true)
|
157
126
|
result = odba.odba_unsaved_neighbors(2)
|
158
127
|
assert_equal([included], result)
|
159
|
-
excluded.
|
160
|
-
included.
|
128
|
+
excluded.flexmock_verify
|
129
|
+
included.flexmock_verify
|
161
130
|
end
|
162
131
|
def test_extend_enumerable
|
163
132
|
hash = Hash.new
|
164
133
|
array = Array.new
|
165
|
-
#@odba.odba_extend_enumerable(hash)
|
166
|
-
#@odba.odba_extend_enumerable(array)
|
167
134
|
assert_equal(true, hash.is_a?(Persistable))
|
168
135
|
assert_equal(true, array.is_a?(Persistable))
|
169
136
|
end
|
170
137
|
def test_odba_stubize
|
171
|
-
replaceable =
|
172
|
-
non_rep =
|
138
|
+
replaceable = ODBAContainerInPersistable.new
|
139
|
+
non_rep = ODBAContainerInPersistable.new
|
173
140
|
non_rep.odba_id = 32
|
174
141
|
replaceable.odba_id = 24
|
175
142
|
@odba.replaceable = replaceable
|
@@ -177,10 +144,10 @@ module ODBA
|
|
177
144
|
@odba.odba_stubize(replaceable)
|
178
145
|
assert_equal(24, @odba.replaceable.odba_id)
|
179
146
|
assert_equal(true, @odba.replaceable.is_a?(Stub))
|
180
|
-
assert_equal(true, @odba.non_replaceable.is_a?(
|
147
|
+
assert_equal(true, @odba.non_replaceable.is_a?(ODBAContainerInPersistable))
|
181
148
|
end
|
182
149
|
def test_odba_replace_persistables
|
183
|
-
replaceable =
|
150
|
+
replaceable = ODBAContainerInPersistable.new
|
184
151
|
replaceable.odba_id = 12
|
185
152
|
non_replaceable = flexmock
|
186
153
|
@odba.non_replaceable = non_replaceable
|
@@ -189,32 +156,26 @@ module ODBA
|
|
189
156
|
.times(1).and_return(false)
|
190
157
|
non_replaceable.should_receive(:is_a?).with(Persistable)\
|
191
158
|
.times(1).and_return(false)
|
192
|
-
#ODBA.cache.mock_handle(:next_id){ 13 }
|
193
159
|
@odba.odba_replace_persistables
|
194
160
|
assert_instance_of(FlexMock, @odba.non_replaceable)
|
195
161
|
assert_equal(12, @odba.replaceable.odba_id)
|
196
162
|
assert_equal(true, @odba.replaceable.is_a?(Stub))
|
197
|
-
non_replaceable.
|
198
|
-
ODBA.cache.
|
163
|
+
non_replaceable.flexmock_verify
|
164
|
+
ODBA.cache.flexmock_verify
|
199
165
|
end
|
200
166
|
def test_odba_replace_persistables__stubised_serialisable
|
201
167
|
non_replaceable = flexmock
|
202
168
|
@odba.serializable = non_replaceable
|
203
|
-
|
204
|
-
|
205
|
-
true
|
206
|
-
}
|
207
|
-
non_replaceable.mock_handle(:odba_instance) {
|
208
|
-
'serialize this'
|
209
|
-
}
|
169
|
+
non_replaceable.should_receive(:is_a?).with(Stub).and_return(true)
|
170
|
+
non_replaceable.should_receive(:odba_instance).and_return('serialize this')
|
210
171
|
@odba.odba_replace_persistables
|
211
172
|
assert_equal('serialize this', @odba.serializable)
|
212
|
-
non_replaceable.
|
173
|
+
non_replaceable.flexmock_verify
|
213
174
|
end
|
214
175
|
def test_odba_store_unsaved
|
215
|
-
level1 =
|
216
|
-
level2 =
|
217
|
-
saved =
|
176
|
+
level1 = ODBAContainerInPersistable.new
|
177
|
+
level2 = ODBAContainerInPersistable.new
|
178
|
+
saved = ODBAContainerInPersistable.new
|
218
179
|
@odba.replaceable = level1
|
219
180
|
@odba.non_replaceable = saved
|
220
181
|
level1.replaceable = level2
|
@@ -228,8 +189,8 @@ module ODBA
|
|
228
189
|
@odba.odba_store_unsaved
|
229
190
|
end
|
230
191
|
def test_odba_store_unsaved_hash
|
231
|
-
level1 =
|
232
|
-
hash_element =
|
192
|
+
level1 = ODBAContainerInPersistable.new
|
193
|
+
hash_element = ODBAContainerInPersistable.new
|
233
194
|
hash = Hash.new
|
234
195
|
non_rep_hash = Hash.new
|
235
196
|
level1.replaceable = hash
|
@@ -253,21 +214,17 @@ module ODBA
|
|
253
214
|
@odba.replaceable = stub
|
254
215
|
@odba.replaceable2 = stub2
|
255
216
|
@odba.non_replaceable = 4
|
256
|
-
|
257
|
-
|
217
|
+
stub.should_receive(:is_a?).with_no_args.and_return(true)
|
218
|
+
stub.should_receive(:odba_dup).with_no_args.and_return(stub)
|
258
219
|
stub_container = nil
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
stub2.mock_handle(:is_a?) { true }
|
263
|
-
stub2.mock_handle(:odba_dup) { stub2 }
|
220
|
+
stub.should_receive(:odba_container=).with_no_args.and_return(stub_container)
|
221
|
+
stub2.should_receive(:is_a?).with_no_args.and_return(true)
|
222
|
+
stub2.should_receive(:odba_dup).with_no_args.and_return(stub2)
|
264
223
|
stub_container2 = nil
|
265
|
-
|
266
|
-
stub_container2 = obj
|
267
|
-
}
|
224
|
+
stub2.should_receive(:odba_container=).with_no_args.and_return(stub_container2)
|
268
225
|
odba_twin = @odba.odba_dup
|
269
|
-
odba_twin.replaceable.
|
270
|
-
odba_twin.replaceable2.
|
226
|
+
odba_twin.replaceable.flexmock_verify
|
227
|
+
odba_twin.replaceable2.flexmock_verify
|
271
228
|
assert_equal(odba_twin, stub_container)
|
272
229
|
assert_equal(odba_twin, stub_container2)
|
273
230
|
end
|
@@ -280,22 +237,20 @@ module ODBA
|
|
280
237
|
replaceable2 = flexmock("rep2")
|
281
238
|
@odba.replaceable = replaceable
|
282
239
|
@odba.replaceable2 = replaceable2
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
replaceable.mock_handle(:odba_id) { 12 }
|
287
|
-
replaceable2.mock_handle(:is_a?) { |arg| false }
|
240
|
+
replaceable.should_receive(:is_a?).with(ODBA::Persistable).and_return(true)
|
241
|
+
replaceable.should_receive(:odba_id).with_no_args.and_return(12)
|
242
|
+
replaceable2.should_receive(:is_a?).with(ODBA::Persistable).and_return(false)
|
288
243
|
expected = [12]
|
289
244
|
assert_equal(expected, @odba.odba_target_ids.sort)
|
290
|
-
replaceable.
|
291
|
-
replaceable2.
|
245
|
+
replaceable.flexmock_verify
|
246
|
+
replaceable2.flexmock_verify
|
292
247
|
end
|
293
248
|
def test_odba_isolated_dump
|
294
249
|
replaceable = flexmock("Replaceable")
|
295
250
|
replaceable2 = flexmock("Replaceable2")
|
296
251
|
@odba.replaceable = replaceable
|
297
252
|
@odba.replaceable2 = replaceable2
|
298
|
-
|
253
|
+
ODBA.cache.should_receive(:next_id).with_no_args.and_return(11)
|
299
254
|
|
300
255
|
### from odba_dup and odba_replace_persistables
|
301
256
|
replaceable2.should_receive(:is_a?).with(Stub)\
|
@@ -308,18 +263,15 @@ module ODBA
|
|
308
263
|
responses = [false, true]
|
309
264
|
replaceable.should_receive(:is_a?).with(Stub)\
|
310
265
|
.times(2).and_return { responses.shift }
|
311
|
-
|
266
|
+
replaceable.should_receive(:odba_clear_receiver).times(1)
|
312
267
|
replaceable.should_receive(:odba_container=).with(@odba.class).times(1)
|
313
|
-
|
314
|
-
assert(twin.replaceable2.is_a?(ODBA::Stub))
|
315
|
-
"TheDump"
|
316
|
-
}
|
268
|
+
ODBA.marshaller.should_receive(:dump).and_return{ |twin| assert(twin.replaceable2.is_a?(ODBA::Stub)); "TheDump" }
|
317
269
|
result = @odba.odba_isolated_dump
|
318
270
|
assert_equal(replaceable, @odba.replaceable)
|
319
271
|
assert_equal(replaceable2, @odba.replaceable2)
|
320
272
|
assert_equal("TheDump", result)
|
321
|
-
replaceable.
|
322
|
-
replaceable2.
|
273
|
+
replaceable.flexmock_verify
|
274
|
+
replaceable2.flexmock_verify
|
323
275
|
end
|
324
276
|
def test_odba_isolated_dump_2
|
325
277
|
tmp = ODBA.marshaller
|
@@ -327,7 +279,7 @@ module ODBA
|
|
327
279
|
odba = ODBAExcluding.new
|
328
280
|
odba.excluded = "foo"
|
329
281
|
odba.included = "baz"
|
330
|
-
|
282
|
+
ODBA.cache.should_receive(:next_id).and_return(1)
|
331
283
|
dump, hash = odba.odba_isolated_dump
|
332
284
|
obj = ODBA.marshaller.load(dump)
|
333
285
|
assert_equal(nil, obj.excluded)
|
@@ -336,22 +288,19 @@ module ODBA
|
|
336
288
|
end
|
337
289
|
def test_odba_id
|
338
290
|
@odba.odba_id = nil
|
339
|
-
|
291
|
+
ODBA.cache.should_receive(:next_id).and_return(1)
|
340
292
|
assert_equal(1, @odba.odba_id)
|
341
|
-
ODBA.storage.
|
293
|
+
ODBA.storage.flexmock_verify
|
342
294
|
end
|
343
295
|
def test_odba_dump_has_id
|
344
296
|
@odba.odba_id = nil
|
345
|
-
|
346
|
-
|
347
|
-
assert_equal(1, obj.odba_id)
|
348
|
-
}
|
297
|
+
ODBA.cache.should_receive(:store).with(FlexMock.any)
|
298
|
+
ODBA.cache.should_receive(:next_id).with(1).and_return(1)
|
349
299
|
@odba.odba_store
|
350
300
|
end
|
351
301
|
def test_odba_store_error_raised
|
352
302
|
@odba.odba_name = "foo"
|
353
|
-
|
354
|
-
ODBA.cache.mock_handle(:store) { |dump|
|
303
|
+
ODBA.cache.should_receive(:store).with(FlexMock.any).and_return { |dump|
|
355
304
|
raise DBI::ProgrammingError
|
356
305
|
}
|
357
306
|
assert_raises(DBI::ProgrammingError) {
|
@@ -361,38 +310,31 @@ module ODBA
|
|
361
310
|
end
|
362
311
|
def test_odba_store_no_error_raised
|
363
312
|
@odba.odba_name = "foo"
|
364
|
-
|
365
|
-
ODBA.cache.mock_handle(:store) { |obj|
|
366
|
-
assert_equal(@odba, obj)
|
367
|
-
}
|
313
|
+
ODBA.cache.should_receive(:store).with(@odba)
|
368
314
|
@odba.odba_store('bar')
|
369
315
|
assert_equal("bar", @odba.odba_name)
|
370
316
|
end
|
371
317
|
def test_inspect_with_stub_in_array
|
372
|
-
|
373
|
-
|
374
|
-
content =
|
318
|
+
ODBA.cache.should_receive(:next_id).with_no_args.and_return(12)
|
319
|
+
ODBA.cache.should_receive(:next_id).with_no_args.and_return(13)
|
320
|
+
content = ODBAContainerInPersistable.new
|
375
321
|
@odba.instance_variable_set('@contents', [content])
|
376
322
|
twin = @odba.odba_isolated_twin
|
377
|
-
|
378
|
-
ODBA.storage.
|
323
|
+
refute_nil(/@contents=#<ODBA::Stub:/.match(twin.inspect))
|
324
|
+
ODBA.storage.flexmock_verify
|
379
325
|
end
|
380
326
|
def test_to_yaml
|
381
327
|
yaml = ''
|
382
|
-
|
383
|
-
yaml = @odba.to_yaml
|
384
|
-
}
|
328
|
+
yaml = @odba.to_yaml
|
385
329
|
loaded = YAML.load(yaml)
|
386
|
-
assert_instance_of(
|
330
|
+
assert_instance_of(ODBAContainerInPersistable, loaded)
|
387
331
|
end
|
388
332
|
def test_extend
|
389
|
-
|
333
|
+
ODBA.cache.should_receive(:store).with('foo')
|
390
334
|
str = 'foo'
|
391
335
|
str.extend(Persistable)
|
392
|
-
|
393
|
-
|
394
|
-
}
|
395
|
-
ODBA.cache.mock_verify
|
336
|
+
str.odba_store
|
337
|
+
ODBA.cache.flexmock_verify
|
396
338
|
end
|
397
339
|
def test_odba_index__simple
|
398
340
|
stub = IndexedStub.new
|
@@ -533,19 +475,13 @@ module ODBA
|
|
533
475
|
def test_odba_extent
|
534
476
|
stub = IndexedStub.new
|
535
477
|
assert_respond_to(IndexedStub, :odba_extent)
|
536
|
-
ODBA.cache.
|
537
|
-
assert_equal(IndexedStub, klass)
|
538
|
-
[]
|
539
|
-
}
|
478
|
+
ODBA.cache.should_receive(:extent).with(IndexedStub).and_return([])
|
540
479
|
assert_equal([], IndexedStub.odba_extent)
|
541
480
|
end
|
542
481
|
def test_odba_extent__with_block
|
543
482
|
stub = IndexedStub.new
|
544
483
|
assert_respond_to(IndexedStub, :odba_extent)
|
545
|
-
ODBA.cache.
|
546
|
-
assert_equal(IndexedStub, klass)
|
547
|
-
['foo']
|
548
|
-
}
|
484
|
+
ODBA.cache.should_receive(:extent).with(IndexedStub).and_return(['foo'])
|
549
485
|
IndexedStub.odba_extent { |obj|
|
550
486
|
assert_equal('foo', obj)
|
551
487
|
}
|
@@ -585,7 +521,7 @@ module ODBA
|
|
585
521
|
end
|
586
522
|
def test_odba_notify_observers
|
587
523
|
obs = flexmock('Observer')
|
588
|
-
@odba.odba_id =
|
524
|
+
@odba.odba_id = 218
|
589
525
|
@odba.instance_variable_set('@odba_observers', [obs])
|
590
526
|
obs.should_receive(:odba_update).with(:key, 'foo', 'bar')\
|
591
527
|
.and_return { assert(true) }
|
@@ -600,25 +536,21 @@ module ODBA
|
|
600
536
|
assert(p.is_a?(ODBA::Persistable))
|
601
537
|
stub2 = p.instance_variable_get('@stub')
|
602
538
|
assert(stub2.is_a?(ODBA::Stub))
|
603
|
-
|
539
|
+
refute_equal(stub.object_id, stub2.object_id)
|
604
540
|
assert_equal(15, stub2.odba_id)
|
605
541
|
end
|
606
542
|
def test_odba_isolated_stub
|
607
|
-
@odba.odba_id =
|
543
|
+
@odba.odba_id = 214
|
608
544
|
stub = @odba.odba_isolated_stub
|
609
545
|
assert(stub.is_a?(ODBA::Stub))
|
610
|
-
assert(stub.is_a?(
|
611
|
-
assert_equal(
|
612
|
-
assert_equal(
|
613
|
-
ODBA.cache.
|
614
|
-
assert_equal(14, id)
|
615
|
-
assert_equal(nil, clr)
|
616
|
-
@odba
|
617
|
-
}
|
546
|
+
assert(stub.is_a?(ODBAContainerInPersistable))
|
547
|
+
assert_equal(214, stub.odba_id)
|
548
|
+
assert_equal(ODBAContainerInPersistable, stub.class)
|
549
|
+
ODBA.cache.should_receive(:fetch).with(214, nil).times(1).and_return(@odba)
|
618
550
|
assert_equal(@odba, stub.odba_instance)
|
619
551
|
end
|
620
552
|
def test_odba_collection
|
621
|
-
o =
|
553
|
+
o = ODBAContainerInPersistable.new
|
622
554
|
assert_equal([], o.odba_collection)
|
623
555
|
end
|
624
556
|
end
|