couchbase-jruby-client 0.1.0-java → 0.1.5-java
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 +4 -4
- data/.jrubyrc +722 -0
- data/.ruby-version +1 -1
- data/README.md +12 -90
- data/couchbase-jruby-client.gemspec +6 -6
- data/lib/couchbase/async.rb +18 -0
- data/lib/couchbase/bucket.rb +90 -180
- data/lib/couchbase/constants.rb +17 -0
- data/lib/couchbase/design_doc.rb +83 -0
- data/lib/couchbase/error.rb +31 -0
- data/lib/couchbase/operations/arithmetic.rb +17 -0
- data/lib/couchbase/operations/delete.rb +17 -0
- data/lib/couchbase/operations/design_docs.rb +99 -0
- data/lib/couchbase/operations/get.rb +73 -67
- data/lib/couchbase/operations/stats.rb +28 -1
- data/lib/couchbase/operations/store.rb +114 -97
- data/lib/couchbase/operations/touch.rb +49 -19
- data/lib/couchbase/operations/unlock.rb +209 -0
- data/lib/couchbase/operations/utils.rb +22 -10
- data/lib/couchbase/operations.rb +21 -0
- data/lib/couchbase/query.rb +92 -0
- data/lib/couchbase/result.rb +18 -1
- data/lib/couchbase/transcoder.rb +36 -42
- data/lib/couchbase/version.rb +18 -1
- data/lib/couchbase/view.rb +30 -172
- data/lib/couchbase/view_row.rb +38 -98
- data/lib/couchbase.rb +74 -72
- data/test/profile/.jrubyrc +722 -0
- data/test/profile/Gemfile +5 -5
- data/test/profile/benchmark.rb +106 -124
- data/test/profile/profile.rb +59 -0
- data/test/setup.rb +10 -145
- data/test/test_arithmetic.rb +54 -77
- data/test/test_async.rb +74 -102
- data/test/test_bucket.rb +74 -60
- data/test/test_cas.rb +10 -23
- data/test/test_couchbase.rb +11 -3
- data/test/test_delete.rb +41 -43
- data/test/test_design_docs.rb +62 -0
- data/test/test_errors.rb +9 -18
- data/test/test_format.rb +21 -31
- data/test/test_get.rb +107 -151
- data/test/test_query.rb +23 -0
- data/test/test_stats.rb +9 -24
- data/test/test_store.rb +52 -65
- data/test/test_timer.rb +4 -12
- data/test/test_touch.rb +26 -33
- data/test/test_unlock.rb +47 -78
- data/test/test_utils.rb +2 -11
- data/test/test_version.rb +5 -14
- data/test/test_view.rb +87 -0
- metadata +27 -14
- data/lib/couchbase/jruby/couchbase_client.rb +0 -22
- data/lib/couchbase/jruby/future.rb +0 -8
data/test/test_arithmetic.rb
CHANGED
@@ -19,159 +19,136 @@ require File.join(File.dirname(__FILE__), 'setup')
|
|
19
19
|
|
20
20
|
class TestArithmetic < MiniTest::Test
|
21
21
|
|
22
|
-
def setup
|
23
|
-
@mock = start_mock
|
24
|
-
end
|
25
|
-
|
26
|
-
def teardown
|
27
|
-
stop_mock(@mock)
|
28
|
-
end
|
29
|
-
|
30
22
|
def test_trivial_incr_decr
|
31
|
-
|
32
|
-
|
33
|
-
connection.set(uniq_id, 1)
|
34
|
-
val = connection.incr(uniq_id)
|
23
|
+
cb.set(uniq_id, 1)
|
24
|
+
val = cb.incr(uniq_id)
|
35
25
|
assert_equal 2, val
|
36
|
-
val =
|
26
|
+
val = cb.get(uniq_id)
|
37
27
|
assert_equal 2, val
|
38
28
|
|
39
|
-
|
40
|
-
val =
|
29
|
+
cb.set(uniq_id, 7)
|
30
|
+
val = cb.decr(uniq_id)
|
41
31
|
assert_equal 6, val
|
42
|
-
val =
|
32
|
+
val = cb.get(uniq_id)
|
43
33
|
assert_equal 6, val
|
44
34
|
end
|
45
35
|
|
46
36
|
def test_it_fails_to_incr_decr_missing_key
|
47
|
-
connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
|
48
|
-
|
49
37
|
assert_raises(Couchbase::Error::NotFound) do
|
50
|
-
|
38
|
+
cb.incr(uniq_id(:missing))
|
51
39
|
end
|
52
40
|
assert_raises(Couchbase::Error::NotFound) do
|
53
|
-
|
41
|
+
cb.decr(uniq_id(:missing))
|
54
42
|
end
|
55
43
|
end
|
56
44
|
|
57
45
|
def test_it_allows_to_make_increments_less_verbose_by_forcing_create_by_default
|
58
|
-
|
59
|
-
:default_arithmetic_init => true)
|
46
|
+
cb.default_arithmetic_init = true
|
60
47
|
assert_raises(Couchbase::Error::NotFound) do
|
61
|
-
|
48
|
+
cb.get(uniq_id)
|
62
49
|
end
|
63
|
-
assert_equal 0,
|
64
|
-
assert_equal 0,
|
50
|
+
assert_equal 0, cb.incr(uniq_id), "return value"
|
51
|
+
assert_equal 0, cb.get(uniq_id), "via get command"
|
52
|
+
ensure
|
53
|
+
cb.default_arithmetic_init = 0
|
65
54
|
end
|
66
55
|
|
67
56
|
def test_it_allows_to_setup_initial_value_during_connection
|
68
|
-
|
69
|
-
:default_arithmetic_init => 10)
|
57
|
+
cb.default_arithmetic_init = 10
|
70
58
|
assert_raises(Couchbase::Error::NotFound) do
|
71
|
-
|
59
|
+
cb.get(uniq_id)
|
72
60
|
end
|
73
61
|
|
74
|
-
assert_equal 10,
|
75
|
-
assert_equal 10,
|
62
|
+
assert_equal 10, cb.incr(uniq_id), "return value"
|
63
|
+
assert_equal 10, cb.get(uniq_id), "via get command"
|
64
|
+
ensure
|
65
|
+
cb.default_arithmetic_init = 0
|
76
66
|
end
|
77
67
|
|
78
68
|
def test_it_allows_to_change_default_initial_value_after_connection
|
79
|
-
|
80
|
-
|
81
|
-
assert_equal 0, connection.default_arithmetic_init
|
69
|
+
assert_equal 0, cb.default_arithmetic_init
|
82
70
|
assert_raises(Couchbase::Error::NotFound) do
|
83
|
-
|
71
|
+
cb.incr(uniq_id)
|
84
72
|
end
|
85
73
|
|
86
|
-
|
87
|
-
assert_equal 10,
|
74
|
+
cb.default_arithmetic_init = 10
|
75
|
+
assert_equal 10, cb.default_arithmetic_init
|
88
76
|
assert_raises(Couchbase::Error::NotFound) do
|
89
|
-
|
77
|
+
cb.get(uniq_id)
|
90
78
|
end
|
91
|
-
assert_equal 10,
|
92
|
-
assert_equal 10,
|
79
|
+
assert_equal 10, cb.incr(uniq_id), "return value"
|
80
|
+
assert_equal 10, cb.get(uniq_id), "via get command"
|
81
|
+
ensure
|
82
|
+
cb.default_arithmetic_init = 0
|
93
83
|
end
|
94
84
|
|
95
85
|
def test_it_creates_missing_key_when_initial_value_specified
|
96
|
-
|
97
|
-
|
98
|
-
val = connection.incr(uniq_id(:missing), :initial => 5)
|
86
|
+
val = cb.incr(uniq_id(:missing), :initial => 5)
|
99
87
|
assert_equal 5, val
|
100
|
-
val =
|
88
|
+
val = cb.incr(uniq_id(:missing), :initial => 5)
|
101
89
|
assert_equal 6, val
|
102
|
-
val =
|
90
|
+
val = cb.get(uniq_id(:missing))
|
103
91
|
assert_equal 6, val
|
104
92
|
end
|
105
93
|
|
106
94
|
def test_it_uses_zero_as_default_value_for_missing_keys
|
107
|
-
|
108
|
-
|
109
|
-
val = connection.incr(uniq_id(:missing), :create => true)
|
95
|
+
val = cb.incr(uniq_id(:missing), :create => true)
|
110
96
|
assert_equal 0, val
|
111
|
-
val =
|
97
|
+
val = cb.incr(uniq_id(:missing), :create => true)
|
112
98
|
assert_equal 1, val
|
113
|
-
val =
|
99
|
+
val = cb.get(uniq_id(:missing))
|
114
100
|
assert_equal 1, val
|
115
101
|
end
|
116
102
|
|
117
103
|
def test_it_allows_custom_ttl
|
118
|
-
|
119
|
-
|
120
|
-
val = connection.incr(uniq_id(:missing), :create => true, :ttl => 1)
|
104
|
+
val = cb.incr(uniq_id(:missing), :create => true, :ttl => 1)
|
121
105
|
assert_equal 0, val
|
122
|
-
val =
|
106
|
+
val = cb.incr(uniq_id(:missing), :create => true)
|
123
107
|
assert_equal 1, val
|
124
108
|
sleep(2)
|
125
109
|
assert_raises(Couchbase::Error::NotFound) do
|
126
|
-
|
110
|
+
cb.get(uniq_id(:missing))
|
127
111
|
end
|
128
112
|
end
|
129
113
|
|
130
114
|
def test_decrement_with_absolute_ttl
|
131
|
-
connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
|
132
115
|
# absolute TTL: one second from now
|
133
116
|
exp = Time.now.to_i + 1
|
134
|
-
val =
|
117
|
+
val = cb.decr(uniq_id, 12, :initial => 0, :ttl => exp)
|
135
118
|
assert_equal 0, val
|
136
|
-
assert_equal 0,
|
137
|
-
sleep(
|
119
|
+
assert_equal 0, cb.get(uniq_id)
|
120
|
+
sleep(3)
|
138
121
|
assert_raises(Couchbase::Error::NotFound) do
|
139
|
-
|
122
|
+
cb.get(uniq_id)
|
140
123
|
end
|
141
124
|
end
|
142
125
|
|
143
126
|
def test_it_allows_custom_delta
|
144
|
-
|
145
|
-
|
146
|
-
connection.set(uniq_id, 12)
|
147
|
-
val = connection.incr(uniq_id, 10)
|
127
|
+
cb.set(uniq_id, 12)
|
128
|
+
val = cb.incr(uniq_id, 10)
|
148
129
|
assert_equal 22, val
|
149
130
|
end
|
150
131
|
|
151
132
|
def test_it_allows_to_specify_delta_in_options
|
152
|
-
|
153
|
-
|
154
|
-
connection.set(uniq_id, 12)
|
133
|
+
cb.set(uniq_id, 12)
|
155
134
|
options = {:delta => 10}
|
156
|
-
val =
|
135
|
+
val = cb.incr(uniq_id, options)
|
157
136
|
assert_equal 22, val
|
158
137
|
end
|
159
138
|
|
160
139
|
def test_multi_incr
|
161
|
-
|
162
|
-
connection.set(uniq_id(:foo) => 1, uniq_id(:bar) => 1)
|
140
|
+
cb.set(uniq_id(:foo) => 1, uniq_id(:bar) => 1)
|
163
141
|
|
164
|
-
assert_equal [2, 2],
|
165
|
-
assert_equal [12, 12],
|
166
|
-
assert_equal [14, 15],
|
142
|
+
assert_equal [2, 2], cb.incr(uniq_id(:foo), uniq_id(:bar)).values.sort
|
143
|
+
assert_equal [12, 12], cb.incr(uniq_id(:foo), uniq_id(:bar), :delta => 10).values.sort
|
144
|
+
assert_equal [14, 15], cb.incr(uniq_id(:foo) => 2, uniq_id(:bar) => 3).values.sort
|
167
145
|
end
|
168
146
|
|
169
147
|
def test_multi_decr
|
170
|
-
|
171
|
-
connection.set(uniq_id(:foo) => 14, uniq_id(:bar) => 15)
|
148
|
+
cb.set(uniq_id(:foo) => 14, uniq_id(:bar) => 15)
|
172
149
|
|
173
|
-
assert_equal [12, 12],
|
174
|
-
assert_equal [2, 2],
|
175
|
-
assert_equal [1, 1],
|
150
|
+
assert_equal [12, 12], cb.decr(uniq_id(:foo) => 2, uniq_id(:bar) => 3).values.sort
|
151
|
+
assert_equal [2, 2], cb.decr(uniq_id(:foo), uniq_id(:bar), :delta => 10).values.sort
|
152
|
+
assert_equal [1, 1], cb.decr(uniq_id(:foo), uniq_id(:bar)).values.sort
|
176
153
|
end
|
177
154
|
end
|
data/test/test_async.rb
CHANGED
@@ -19,14 +19,6 @@ require File.join(File.dirname(__FILE__), 'setup')
|
|
19
19
|
|
20
20
|
class TestAsync < MiniTest::Test
|
21
21
|
|
22
|
-
def setup
|
23
|
-
@mock = start_mock
|
24
|
-
end
|
25
|
-
|
26
|
-
def teardown
|
27
|
-
stop_mock(@mock)
|
28
|
-
end
|
29
|
-
|
30
22
|
def test_result_object_provides_enough_info
|
31
23
|
obj = Couchbase::Result.new
|
32
24
|
assert obj.respond_to?(:success?)
|
@@ -38,33 +30,29 @@ class TestAsync < MiniTest::Test
|
|
38
30
|
end
|
39
31
|
|
40
32
|
def test_it_requires_block_for_running_loop
|
41
|
-
|
42
|
-
refute connection.async?
|
33
|
+
refute cb.async?
|
43
34
|
assert_raises(LocalJumpError) do
|
44
|
-
|
35
|
+
cb.run
|
45
36
|
end
|
46
|
-
|
37
|
+
cb.run do |conn|
|
47
38
|
assert conn.async?
|
48
39
|
end
|
49
40
|
end
|
50
41
|
|
51
42
|
def test_it_resets_async_flag_when_raising_exception_from_callback
|
52
|
-
connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
|
53
|
-
|
54
43
|
assert_raises(RuntimeError) do
|
55
|
-
|
44
|
+
cb.run do |conn|
|
56
45
|
conn.set(uniq_id, "foo") { raise }
|
57
46
|
end
|
58
47
|
end
|
59
|
-
refute
|
48
|
+
refute cb.async?
|
60
49
|
end
|
61
50
|
|
62
51
|
def test_nested_async_get_set
|
63
|
-
|
64
|
-
|
65
|
-
connection.set(uniq_id(:hit), 0)
|
52
|
+
cb.set(uniq_id, {"bar" => 1})
|
53
|
+
cb.set(uniq_id(:hit), 0)
|
66
54
|
|
67
|
-
|
55
|
+
cb.run do |conn|
|
68
56
|
conn.get(uniq_id) do
|
69
57
|
conn.get(uniq_id(:hit)) do |res|
|
70
58
|
conn.set(uniq_id(:hit), res.value + 1)
|
@@ -72,15 +60,14 @@ class TestAsync < MiniTest::Test
|
|
72
60
|
end
|
73
61
|
end
|
74
62
|
|
75
|
-
val =
|
63
|
+
val = cb.get(uniq_id(:hit))
|
76
64
|
assert_equal 1, val
|
77
65
|
end
|
78
66
|
|
79
67
|
def test_nested_async_set_get
|
80
|
-
connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
|
81
68
|
val = nil
|
82
69
|
|
83
|
-
|
70
|
+
cb.run do |conn|
|
84
71
|
conn.set(uniq_id, "foo") do
|
85
72
|
conn.get(uniq_id) do |res|
|
86
73
|
val = res.value
|
@@ -92,12 +79,11 @@ class TestAsync < MiniTest::Test
|
|
92
79
|
end
|
93
80
|
|
94
81
|
def test_nested_async_touch_get
|
95
|
-
|
96
|
-
connection.set(uniq_id, "foo")
|
82
|
+
cb.set(uniq_id, "foo")
|
97
83
|
success = false
|
98
84
|
val = nil
|
99
85
|
|
100
|
-
|
86
|
+
cb.run do |conn|
|
101
87
|
conn.touch(uniq_id, :ttl => 1) do |res1|
|
102
88
|
success = res1.success?
|
103
89
|
conn.get(uniq_id) do |res2|
|
@@ -110,17 +96,16 @@ class TestAsync < MiniTest::Test
|
|
110
96
|
assert_equal "foo", val
|
111
97
|
sleep(2)
|
112
98
|
assert_raises(Couchbase::Error::NotFound) do
|
113
|
-
|
99
|
+
cb.get(uniq_id)
|
114
100
|
end
|
115
101
|
end
|
116
102
|
|
117
103
|
def test_nested_async_delete_get
|
118
|
-
|
119
|
-
cas = connection.set(uniq_id, "foo")
|
104
|
+
cas = cb.set(uniq_id, "foo")
|
120
105
|
success = false
|
121
106
|
val = :unknown
|
122
107
|
|
123
|
-
|
108
|
+
cb.run do |conn|
|
124
109
|
conn.delete(uniq_id, :cas => cas) do |res1|
|
125
110
|
success = res1.success?
|
126
111
|
conn.get(uniq_id, :quiet => true) do |res2|
|
@@ -135,10 +120,9 @@ class TestAsync < MiniTest::Test
|
|
135
120
|
|
136
121
|
def test_nested_async_stats_set
|
137
122
|
skip
|
138
|
-
connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
|
139
123
|
stats = {}
|
140
124
|
|
141
|
-
|
125
|
+
cb.run do |conn|
|
142
126
|
conn.stats do |res1|
|
143
127
|
id = uniq_id(res1.node, res1.key)
|
144
128
|
stats[id] = false
|
@@ -155,41 +139,35 @@ class TestAsync < MiniTest::Test
|
|
155
139
|
|
156
140
|
def test_nested_async_flush_set
|
157
141
|
skip
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
res[id] =
|
168
|
-
conn.set(id, true) do |res2|
|
169
|
-
res[id] = res2.cas
|
170
|
-
end
|
142
|
+
cas = cb.set(uniq_id, "foo")
|
143
|
+
res = {}
|
144
|
+
|
145
|
+
cb.run do |conn|
|
146
|
+
conn.flush do |res1|
|
147
|
+
assert res1.success?, "Expected: successful status code.\nActual: #{res1.error.inspect}"
|
148
|
+
id = uniq_id(res1.node)
|
149
|
+
res[id] = false
|
150
|
+
conn.set(id, true) do |res2|
|
151
|
+
res[id] = res2.cas
|
171
152
|
end
|
172
153
|
end
|
154
|
+
end
|
173
155
|
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
end
|
181
|
-
else
|
182
|
-
skip("REST FLUSH isn't implemented in CouchbaseMock.jar yet")
|
156
|
+
assert_raises(Couchbase::Error::NotFound) do
|
157
|
+
cb.get(uniq_id)
|
158
|
+
end
|
159
|
+
res.keys.each do |key|
|
160
|
+
assert res[key].is_a?(Numeric)
|
161
|
+
assert cb.get(key)
|
183
162
|
end
|
184
163
|
end
|
185
164
|
|
186
165
|
def test_nested_async_incr_get
|
187
166
|
skip
|
188
|
-
|
189
|
-
cas = connection.set(uniq_id, 1)
|
167
|
+
cas = cb.set(uniq_id, 1)
|
190
168
|
val = nil
|
191
169
|
|
192
|
-
|
170
|
+
cb.run do |conn|
|
193
171
|
conn.incr(uniq_id) do
|
194
172
|
conn.get(uniq_id) do |res|
|
195
173
|
val = res.value
|
@@ -201,28 +179,26 @@ class TestAsync < MiniTest::Test
|
|
201
179
|
end
|
202
180
|
|
203
181
|
def test_it_doesnt_accept_callbacks_in_synchronous_mode
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
assert_raises(ArgumentError) {
|
208
|
-
assert_raises(ArgumentError) {
|
209
|
-
assert_raises(ArgumentError) {
|
210
|
-
assert_raises(ArgumentError) {
|
211
|
-
assert_raises(ArgumentError) {
|
212
|
-
assert_raises(ArgumentError) {
|
213
|
-
assert_raises(ArgumentError) {
|
214
|
-
assert_raises(ArgumentError) {
|
215
|
-
assert_raises(ArgumentError) {
|
216
|
-
assert_raises(ArgumentError) {
|
217
|
-
assert_raises(ArgumentError) {
|
218
|
-
assert_raises(ArgumentError) { connection.stats {} }
|
182
|
+
refute cb.async?
|
183
|
+
|
184
|
+
assert_raises(ArgumentError) { cb.add(uniq_id, "foo") {} }
|
185
|
+
assert_raises(ArgumentError) { cb.set(uniq_id, "foo") {} }
|
186
|
+
assert_raises(ArgumentError) { cb.replace(uniq_id, "foo") {} }
|
187
|
+
assert_raises(ArgumentError) { cb.get(uniq_id) {} }
|
188
|
+
assert_raises(ArgumentError) { cb.touch(uniq_id) {} }
|
189
|
+
assert_raises(ArgumentError) { cb.incr(uniq_id) {} }
|
190
|
+
assert_raises(ArgumentError) { cb.decr(uniq_id) {} }
|
191
|
+
assert_raises(ArgumentError) { cb.delete(uniq_id) {} }
|
192
|
+
assert_raises(ArgumentError) { cb.append(uniq_id, "bar") {} }
|
193
|
+
assert_raises(ArgumentError) { cb.prepend(uniq_id, "bar") {} }
|
194
|
+
assert_raises(ArgumentError) { cb.flush {} }
|
195
|
+
assert_raises(ArgumentError) { cb.stats {} }
|
219
196
|
end
|
220
197
|
|
221
198
|
def test_it_disallow_nested_run
|
222
|
-
connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
|
223
199
|
assert_raises(Couchbase::Error::Invalid) do
|
224
|
-
|
225
|
-
|
200
|
+
cb.run do
|
201
|
+
cb.run do
|
226
202
|
end
|
227
203
|
end
|
228
204
|
end
|
@@ -230,12 +206,11 @@ class TestAsync < MiniTest::Test
|
|
230
206
|
|
231
207
|
def test_it_extends_timeout_in_async_mode_if_needed
|
232
208
|
skip
|
233
|
-
|
234
|
-
connection.set(uniq_id, "foo")
|
209
|
+
cb.set(uniq_id, "foo")
|
235
210
|
|
236
|
-
|
237
|
-
|
238
|
-
|
211
|
+
cb.timeout = 100_000 # 100_000 us
|
212
|
+
cb.run do
|
213
|
+
cb.get(uniq_id) do |ret|
|
239
214
|
assert ret.success?
|
240
215
|
assert_equal "foo", ret.value
|
241
216
|
end
|
@@ -245,11 +220,9 @@ class TestAsync < MiniTest::Test
|
|
245
220
|
|
246
221
|
def test_send_threshold
|
247
222
|
skip
|
248
|
-
connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
|
249
|
-
|
250
223
|
sent = false
|
251
|
-
|
252
|
-
|
224
|
+
cb.run(:send_threshold => 100) do # 100 bytes
|
225
|
+
cb.set(uniq_id, "foo" * 100) {|r| sent = true}
|
253
226
|
assert sent
|
254
227
|
end
|
255
228
|
end
|
@@ -257,27 +230,26 @@ class TestAsync < MiniTest::Test
|
|
257
230
|
def test_asynchronous_connection
|
258
231
|
skip
|
259
232
|
connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port, :async => true)
|
260
|
-
refute
|
261
|
-
|
233
|
+
refute cb.connected?, "new asynchronous connection must be disconnected"
|
234
|
+
cb.on_connect do |res|
|
262
235
|
assert res.success?, "on_connect called with error #{res.error.inspect}"
|
263
236
|
assert_same connection, res.bucket
|
264
237
|
end
|
265
|
-
|
266
|
-
assert
|
238
|
+
cb.run {}
|
239
|
+
assert cb.connected?, "it should be connected after first run"
|
267
240
|
end
|
268
241
|
|
269
242
|
def test_it_calls_callback_immediately_if_connected_sync
|
270
243
|
skip
|
271
|
-
|
272
|
-
assert connection.connected?, "connection wasn't established in sync mode"
|
244
|
+
assert cb.connected?, "connection wasn't established in sync mode"
|
273
245
|
called = false
|
274
|
-
|
246
|
+
cb.on_connect do |res|
|
275
247
|
assert res.success?, "on_connect called with error #{res.error.inspect}"
|
276
248
|
called = true
|
277
249
|
end
|
278
250
|
assert called, "the callback hasn't been called on set"
|
279
251
|
called = false
|
280
|
-
|
252
|
+
cb.on_connect do |res|
|
281
253
|
assert res.success?, "on_connect called with error #{res.error.inspect}"
|
282
254
|
called = true
|
283
255
|
end
|
@@ -287,20 +259,20 @@ class TestAsync < MiniTest::Test
|
|
287
259
|
def test_it_calls_callback_immediately_if_connected_async
|
288
260
|
skip
|
289
261
|
connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port, :async => true)
|
290
|
-
refute
|
262
|
+
refute cb.connected?, "new asynchronous connection must be disconnected"
|
291
263
|
called = false
|
292
|
-
|
293
|
-
assert
|
294
|
-
|
295
|
-
|
264
|
+
cb.run {}
|
265
|
+
assert cb.connected?, "the connection must be established"
|
266
|
+
cb.run do
|
267
|
+
cb.on_connect do |res|
|
296
268
|
assert res.success?, "on_connect called with error #{res.error.inspect}"
|
297
269
|
called = true
|
298
270
|
end
|
299
271
|
end
|
300
272
|
assert called, "the callback hasn't been called on set"
|
301
273
|
called = false
|
302
|
-
|
303
|
-
|
274
|
+
cb.run do
|
275
|
+
cb.on_connect do |res|
|
304
276
|
assert res.success?, "on_connect called with error #{res.error.inspect}"
|
305
277
|
called = true
|
306
278
|
end
|
@@ -311,12 +283,12 @@ class TestAsync < MiniTest::Test
|
|
311
283
|
def test_it_returns_error_if_user_start_work_on_disconnected_instance_outside_on_connect_callback
|
312
284
|
skip
|
313
285
|
connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port, :async => true)
|
314
|
-
refute
|
286
|
+
refute cb.connected?, "new asynchronous connection must be disconnected"
|
315
287
|
error = nil
|
316
|
-
|
288
|
+
cb.on_error do |ex|
|
317
289
|
error = ex
|
318
290
|
end
|
319
|
-
|
291
|
+
cb.run do |c|
|
320
292
|
c.set("foo", "bar")
|
321
293
|
end
|
322
294
|
assert_instance_of(Couchbase::Error::Connect, error)
|