couchbase-jruby-client 0.1.2 → 0.1.3
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/couchbase-jruby-client.gemspec +1 -1
- data/lib/couchbase.rb +21 -15
- data/lib/couchbase/bucket.rb +39 -41
- data/lib/couchbase/operations/store.rb +1 -1
- data/lib/couchbase/version.rb +1 -1
- data/test/setup.rb +8 -145
- data/test/test_arithmetic.rb +53 -76
- data/test/test_async.rb +74 -102
- data/test/test_bucket.rb +71 -63
- data/test/test_cas.rb +9 -23
- data/test/test_couchbase.rb +5 -4
- data/test/test_delete.rb +41 -43
- data/test/test_design_docs.rb +8 -18
- data/test/test_errors.rb +9 -18
- data/test/test_format.rb +21 -31
- data/test/test_get.rb +107 -150
- data/test/test_stats.rb +9 -24
- data/test/test_store.rb +53 -62
- data/test/test_timer.rb +3 -12
- data/test/test_touch.rb +26 -33
- data/test/test_unlock.rb +45 -78
- data/test/test_utils.rb +2 -11
- data/test/test_version.rb +4 -14
- data/test/test_view.rb +4 -11
- metadata +5 -5
    
        data/test/test_get.rb
    CHANGED
    
    | @@ -19,155 +19,136 @@ require File.join(File.dirname(__FILE__), 'setup') | |
| 19 19 |  | 
| 20 20 | 
             
            class TestGet < 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_get
         | 
| 31 | 
            -
                 | 
| 32 | 
            -
                 | 
| 33 | 
            -
                val = connection.get(uniq_id)
         | 
| 23 | 
            +
                cb.set(uniq_id, "bar")
         | 
| 24 | 
            +
                val = cb.get(uniq_id)
         | 
| 34 25 | 
             
                assert_equal "bar", val
         | 
| 35 26 | 
             
              end
         | 
| 36 27 |  | 
| 37 28 | 
             
              def test_extended_get
         | 
| 38 | 
            -
                 | 
| 39 | 
            -
             | 
| 40 | 
            -
                orig_cas = connection.set(uniq_id, "bar")
         | 
| 41 | 
            -
                val, flags, cas = connection.get(uniq_id, :extended => true)
         | 
| 29 | 
            +
                orig_cas = cb.set(uniq_id, "bar")
         | 
| 30 | 
            +
                val, flags, cas = cb.get(uniq_id, :extended => true)
         | 
| 42 31 | 
             
                assert_equal "bar", val
         | 
| 43 32 | 
             
                #assert_equal 0x0, flags
         | 
| 44 33 | 
             
                assert_equal orig_cas, cas
         | 
| 45 34 |  | 
| 46 | 
            -
                orig_cas =  | 
| 47 | 
            -
                val, flags, cas =  | 
| 35 | 
            +
                orig_cas = cb.set(uniq_id, "bar", :flags => 0x1000)
         | 
| 36 | 
            +
                val, flags, cas = cb.get(uniq_id, :extended => true)
         | 
| 48 37 | 
             
                assert_equal "bar", val
         | 
| 49 38 | 
             
                #assert_equal 0x1000, flags
         | 
| 50 39 | 
             
                assert_equal orig_cas, cas
         | 
| 51 40 | 
             
              end
         | 
| 52 41 |  | 
| 53 42 | 
             
              def test_multi_get
         | 
| 54 | 
            -
                 | 
| 55 | 
            -
             | 
| 56 | 
            -
                connection.set(uniq_id(1), "foo1")
         | 
| 57 | 
            -
                connection.set(uniq_id(2), "foo2")
         | 
| 43 | 
            +
                cb.set(uniq_id(1), "foo1")
         | 
| 44 | 
            +
                cb.set(uniq_id(2), "foo2")
         | 
| 58 45 |  | 
| 59 | 
            -
                val1, val2 =  | 
| 46 | 
            +
                val1, val2 = cb.get(uniq_id(1), uniq_id(2))
         | 
| 60 47 | 
             
                assert_equal "foo1", val1
         | 
| 61 48 | 
             
                assert_equal "foo2", val2
         | 
| 62 49 | 
             
              end
         | 
| 63 50 |  | 
| 64 51 | 
             
              def test_multi_get_extended
         | 
| 65 52 | 
             
                skip 'Looking like Java client doesnt support multi_get_extended'
         | 
| 66 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 67 53 |  | 
| 68 | 
            -
                cas1 =  | 
| 69 | 
            -
                cas2 =  | 
| 54 | 
            +
                cas1 = cb.set(uniq_id(1), "foo1")
         | 
| 55 | 
            +
                cas2 = cb.set(uniq_id(2), "foo2")
         | 
| 70 56 |  | 
| 71 | 
            -
                results =  | 
| 57 | 
            +
                results = cb.get(uniq_id(1), uniq_id(2), :extended => true)
         | 
| 72 58 | 
             
                assert_equal ["foo1", nil, cas1], results[uniq_id(1)]
         | 
| 73 59 | 
             
                assert_equal ["foo2", nil, cas2], results[uniq_id(2)]
         | 
| 74 60 | 
             
              end
         | 
| 75 61 |  | 
| 76 62 | 
             
              def test_multi_get_and_touch
         | 
| 77 | 
            -
                 | 
| 78 | 
            -
                 | 
| 79 | 
            -
                connection.set(uniq_id(2), "foo2")
         | 
| 63 | 
            +
                cb.set(uniq_id(1), "foo1")
         | 
| 64 | 
            +
                cb.set(uniq_id(2), "foo2")
         | 
| 80 65 |  | 
| 81 | 
            -
                results =  | 
| 66 | 
            +
                results = cb.get(uniq_id(1) => 1, uniq_id(2) => 1)
         | 
| 82 67 | 
             
                assert results.is_a?(Hash)
         | 
| 83 68 | 
             
                assert_equal "foo1", results[uniq_id(1)]
         | 
| 84 69 | 
             
                assert_equal "foo2", results[uniq_id(2)]
         | 
| 85 70 | 
             
                sleep(2)
         | 
| 86 71 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 87 | 
            -
                   | 
| 72 | 
            +
                  cb.get(uniq_id(1), uniq_id(2))
         | 
| 88 73 | 
             
                end
         | 
| 89 | 
            -
                assert  | 
| 74 | 
            +
                assert cb.get(uniq_id(1), uniq_id(2), :quiet => true).compact.empty?
         | 
| 90 75 | 
             
              end
         | 
| 91 76 |  | 
| 92 77 | 
             
              def test_multi_get_and_touch_extended
         | 
| 93 | 
            -
                 | 
| 78 | 
            +
                cas1 = cb.set(uniq_id(1), "foo1")
         | 
| 79 | 
            +
                cas2 = cb.set(uniq_id(2), "foo2")
         | 
| 94 80 |  | 
| 95 | 
            -
                 | 
| 96 | 
            -
                cas2 = connection.set(uniq_id(2), "foo2")
         | 
| 97 | 
            -
             | 
| 98 | 
            -
                results = connection.get({uniq_id(1) => 1, uniq_id(2) => 1}, :extended => true)
         | 
| 81 | 
            +
                results = cb.get({uniq_id(1) => 1, uniq_id(2) => 1}, :extended => true)
         | 
| 99 82 | 
             
                assert_equal ["foo1", nil, cas1], results[uniq_id(1)]
         | 
| 100 83 | 
             
                assert_equal ["foo2", nil, cas2], results[uniq_id(2)]
         | 
| 101 84 | 
             
              end
         | 
| 102 85 |  | 
| 103 86 | 
             
              def test_multi_get_and_touch_with_single_key
         | 
| 104 | 
            -
                 | 
| 105 | 
            -
                connection.set(uniq_id, "foo1")
         | 
| 87 | 
            +
                cb.set(uniq_id, "foo1")
         | 
| 106 88 |  | 
| 107 | 
            -
                results =  | 
| 89 | 
            +
                results = cb.get(uniq_id => 1)
         | 
| 108 90 | 
             
                assert results.is_a?(Hash)
         | 
| 109 91 | 
             
                assert_equal "foo1", results[uniq_id]
         | 
| 110 92 | 
             
                sleep(2)
         | 
| 111 93 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 112 | 
            -
                   | 
| 94 | 
            +
                  cb.get(uniq_id)
         | 
| 113 95 | 
             
                end
         | 
| 114 96 | 
             
              end
         | 
| 115 97 |  | 
| 116 98 | 
             
              def test_missing_in_quiet_mode
         | 
| 117 | 
            -
                 | 
| 118 | 
            -
                cas1 =  | 
| 119 | 
            -
                cas2 =  | 
| 99 | 
            +
                cb.quiet = true
         | 
| 100 | 
            +
                cas1 = cb.set(uniq_id(1), "foo1")
         | 
| 101 | 
            +
                cas2 = cb.set(uniq_id(2), "foo2")
         | 
| 120 102 |  | 
| 121 | 
            -
                val =  | 
| 103 | 
            +
                val = cb.get(uniq_id(:missing))
         | 
| 122 104 | 
             
                refute(val)
         | 
| 123 | 
            -
                val =  | 
| 105 | 
            +
                val = cb.get(uniq_id(:missing), :extended => true)
         | 
| 124 106 | 
             
                refute(val)
         | 
| 125 107 |  | 
| 126 | 
            -
                val1, missing, val2  =  | 
| 108 | 
            +
                val1, missing, val2  = cb.get(uniq_id(1), uniq_id(:missing), uniq_id(2))
         | 
| 127 109 | 
             
                assert_equal "foo1", val1
         | 
| 128 110 | 
             
                refute missing
         | 
| 129 111 | 
             
                assert_equal "foo2", val2
         | 
| 130 112 |  | 
| 131 113 | 
             
                # TODO: multi get with cas
         | 
| 132 | 
            -
                # results =  | 
| 114 | 
            +
                # results = cb.get(uniq_id(1), uniq_id(:missing), uniq_id(2), :extended => true)
         | 
| 133 115 | 
             
                # assert_equal ["foo1", nil, cas1], results[uniq_id(1)]
         | 
| 134 116 | 
             
                # refute results[uniq_id(:missing)]
         | 
| 135 117 | 
             
                # assert_equal ["foo2", nil, cas2], results[uniq_id(2)]
         | 
| 118 | 
            +
              ensure
         | 
| 119 | 
            +
                cb.quiet = false
         | 
| 136 120 | 
             
              end
         | 
| 137 121 |  | 
| 138 122 | 
             
              def test_it_allows_temporary_quiet_flag
         | 
| 139 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port, :quiet => false)
         | 
| 140 123 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 141 | 
            -
                   | 
| 124 | 
            +
                  cb.get(uniq_id(:missing))
         | 
| 142 125 | 
             
                end
         | 
| 143 | 
            -
                refute  | 
| 126 | 
            +
                refute cb.get(uniq_id(:missing), :quiet => true)
         | 
| 144 127 | 
             
              end
         | 
| 145 128 |  | 
| 146 129 | 
             
              def test_missing_in_verbose_mode
         | 
| 147 | 
            -
                 | 
| 148 | 
            -
                 | 
| 149 | 
            -
                connection.set(uniq_id(2), "foo2")
         | 
| 130 | 
            +
                cb.set(uniq_id(1), "foo1")
         | 
| 131 | 
            +
                cb.set(uniq_id(2), "foo2")
         | 
| 150 132 |  | 
| 151 133 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 152 | 
            -
                   | 
| 134 | 
            +
                  cb.get(uniq_id(:missing))
         | 
| 153 135 | 
             
                end
         | 
| 154 136 |  | 
| 155 137 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 156 | 
            -
                   | 
| 138 | 
            +
                  cb.get(uniq_id(:missing), :extended => true)
         | 
| 157 139 | 
             
                end
         | 
| 158 140 |  | 
| 159 141 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 160 | 
            -
                   | 
| 142 | 
            +
                  cb.get(uniq_id(1), uniq_id(:missing), uniq_id(2))
         | 
| 161 143 | 
             
                end
         | 
| 162 144 |  | 
| 163 145 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 164 | 
            -
                   | 
| 146 | 
            +
                  cb.get(uniq_id(1), uniq_id(:missing), uniq_id(2), :extended => true)
         | 
| 165 147 | 
             
                end
         | 
| 166 148 | 
             
              end
         | 
| 167 149 |  | 
| 168 150 | 
             
              def test_asynchronous_get
         | 
| 169 | 
            -
                 | 
| 170 | 
            -
                cas = connection.set(uniq_id, "foo")
         | 
| 151 | 
            +
                cas = cb.set(uniq_id, "foo")
         | 
| 171 152 | 
             
                res = []
         | 
| 172 153 |  | 
| 173 154 | 
             
                suite = lambda do |conn|
         | 
| @@ -188,21 +169,20 @@ class TestGet < MiniTest::Test | |
| 188 169 | 
             
                  end
         | 
| 189 170 | 
             
                end
         | 
| 190 171 |  | 
| 191 | 
            -
                 | 
| 172 | 
            +
                cb.run(&suite)
         | 
| 192 173 | 
             
                checks.call
         | 
| 193 174 |  | 
| 194 | 
            -
                 | 
| 175 | 
            +
                cb.run{ suite.call(cb) }
         | 
| 195 176 | 
             
                checks.call
         | 
| 196 177 | 
             
              end
         | 
| 197 178 |  | 
| 198 179 | 
             
              def test_asynchronous_multi_get
         | 
| 199 180 | 
             
                skip
         | 
| 200 | 
            -
                 | 
| 201 | 
            -
                 | 
| 202 | 
            -
                connection.set(uniq_id(2), "bar")
         | 
| 181 | 
            +
                cb.set(uniq_id(1), "foo")
         | 
| 182 | 
            +
                cb.set(uniq_id(2), "bar")
         | 
| 203 183 |  | 
| 204 184 | 
             
                res = {}
         | 
| 205 | 
            -
                 | 
| 185 | 
            +
                cb.run do |conn|
         | 
| 206 186 | 
             
                  conn.get(uniq_id(1), uniq_id(2)) {|ret| res[ret.key] = ret.value}
         | 
| 207 187 | 
             
                end
         | 
| 208 188 |  | 
| @@ -214,8 +194,7 @@ class TestGet < MiniTest::Test | |
| 214 194 |  | 
| 215 195 | 
             
              def test_asynchronous_get_missing
         | 
| 216 196 | 
             
                skip
         | 
| 217 | 
            -
                 | 
| 218 | 
            -
                connection.set(uniq_id, "foo")
         | 
| 197 | 
            +
                cb.set(uniq_id, "foo")
         | 
| 219 198 | 
             
                res = {}
         | 
| 220 199 | 
             
                missing = []
         | 
| 221 200 |  | 
| @@ -239,14 +218,14 @@ class TestGet < MiniTest::Test | |
| 239 218 | 
             
                  conn.get(uniq_id, uniq_id(:missing2), &get_handler)
         | 
| 240 219 | 
             
                end
         | 
| 241 220 |  | 
| 242 | 
            -
                 | 
| 221 | 
            +
                cb.run(&suite)
         | 
| 243 222 | 
             
                refute res.has_key?(uniq_id(:missing1))
         | 
| 244 223 | 
             
                refute res.has_key?(uniq_id(:missing2))
         | 
| 245 224 | 
             
                assert_equal [uniq_id(:missing1), uniq_id(:missing2)], missing.sort
         | 
| 246 225 | 
             
                assert_equal "foo", res[uniq_id]
         | 
| 247 226 |  | 
| 248 | 
            -
                 | 
| 249 | 
            -
                 | 
| 227 | 
            +
                cb.quiet = true
         | 
| 228 | 
            +
                cb.run(&suite)
         | 
| 250 229 | 
             
                assert_equal "foo", res[uniq_id]
         | 
| 251 230 | 
             
                assert res.has_key?(uniq_id(:missing1)) # handler was called with nil
         | 
| 252 231 | 
             
                refute res[uniq_id(:missing1)]
         | 
| @@ -256,16 +235,14 @@ class TestGet < MiniTest::Test | |
| 256 235 | 
             
              end
         | 
| 257 236 |  | 
| 258 237 | 
             
              def test_get_using_brackets
         | 
| 259 | 
            -
                 | 
| 260 | 
            -
             | 
| 261 | 
            -
                orig_cas = connection.set(uniq_id, "foo", :flags => 0x1100)
         | 
| 238 | 
            +
                orig_cas = cb.set(uniq_id, "foo", :flags => 0x1100)
         | 
| 262 239 |  | 
| 263 | 
            -
                val =  | 
| 240 | 
            +
                val = cb[uniq_id]
         | 
| 264 241 | 
             
                assert_equal "foo", val
         | 
| 265 242 |  | 
| 266 243 | 
             
                if RUBY_VERSION =~ /^1\.9/
         | 
| 267 244 | 
             
                  eval <<-EOC
         | 
| 268 | 
            -
                  val, flags, cas =  | 
| 245 | 
            +
                  val, flags, cas = cb[uniq_id, :extended => true]
         | 
| 269 246 | 
             
                  assert_equal "foo", val
         | 
| 270 247 | 
             
                  #assert_equal 0x1100, flags
         | 
| 271 248 | 
             
                  assert_equal orig_cas, cas
         | 
| @@ -275,16 +252,15 @@ class TestGet < MiniTest::Test | |
| 275 252 |  | 
| 276 253 | 
             
              def test_it_allows_to_store_nil
         | 
| 277 254 | 
             
                skip "TODO: figure out nil storage"
         | 
| 278 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 279 255 |  | 
| 280 | 
            -
                orig_cas =  | 
| 256 | 
            +
                orig_cas = cb.set(uniq_id, nil)
         | 
| 281 257 | 
             
                assert orig_cas.is_a?(Numeric)
         | 
| 282 258 |  | 
| 283 | 
            -
                refute  | 
| 259 | 
            +
                refute cb.get(uniq_id)
         | 
| 284 260 | 
             
                # doesn't raise NotFound exception
         | 
| 285 | 
            -
                refute  | 
| 261 | 
            +
                refute cb.get(uniq_id, :quiet => false)
         | 
| 286 262 | 
             
                # returns CAS
         | 
| 287 | 
            -
                value, flags, cas =  | 
| 263 | 
            +
                value, flags, cas = cb.get(uniq_id, :extended => true)
         | 
| 288 264 | 
             
                refute value
         | 
| 289 265 | 
             
                #assert_equal 0x00, flags
         | 
| 290 266 | 
             
                assert_equal orig_cas, cas
         | 
| @@ -292,125 +268,106 @@ class TestGet < MiniTest::Test | |
| 292 268 |  | 
| 293 269 | 
             
              def test_zero_length_string_is_not_nil
         | 
| 294 270 | 
             
                skip("zero length string")
         | 
| 295 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 296 271 |  | 
| 297 | 
            -
                 | 
| 298 | 
            -
                assert_equal "",  | 
| 272 | 
            +
                cb.set(uniq_id, "", :format => :document)
         | 
| 273 | 
            +
                assert_equal "", cb.get(uniq_id)
         | 
| 299 274 |  | 
| 300 | 
            -
                 | 
| 301 | 
            -
                assert_equal "",  | 
| 275 | 
            +
                cb.set(uniq_id, "", :format => :plain)
         | 
| 276 | 
            +
                assert_equal "", cb.get(uniq_id)
         | 
| 302 277 |  | 
| 303 | 
            -
                 | 
| 304 | 
            -
                assert_equal "",  | 
| 278 | 
            +
                cb.set(uniq_id, "", :format => :marshal)
         | 
| 279 | 
            +
                assert_equal "", cb.get(uniq_id)
         | 
| 305 280 |  | 
| 306 | 
            -
                 | 
| 307 | 
            -
                assert_equal nil,  | 
| 281 | 
            +
                cb.set(uniq_id, nil, :format => :document)
         | 
| 282 | 
            +
                assert_equal nil, cb.get(uniq_id, :quiet => false)
         | 
| 308 283 |  | 
| 309 284 | 
             
                assert_raises Couchbase::Error::ValueFormat do
         | 
| 310 | 
            -
                   | 
| 285 | 
            +
                  cb.set(uniq_id, nil, :format => :plain)
         | 
| 311 286 | 
             
                end
         | 
| 312 287 |  | 
| 313 | 
            -
                 | 
| 314 | 
            -
                assert_equal nil,  | 
| 288 | 
            +
                cb.set(uniq_id, nil, :format => :marshal)
         | 
| 289 | 
            +
                assert_equal nil, cb.get(uniq_id, :quiet => false)
         | 
| 315 290 | 
             
              end
         | 
| 316 291 |  | 
| 317 292 | 
             
              def test_format_forcing
         | 
| 318 293 | 
             
                skip("format forcing")
         | 
| 319 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 320 294 |  | 
| 321 | 
            -
                 | 
| 322 | 
            -
                value, flags, _ =  | 
| 295 | 
            +
                cb.set(uniq_id, '{"foo":"bar"}', :format => :plain)
         | 
| 296 | 
            +
                value, flags, _ = cb.get(uniq_id, :extended => true)
         | 
| 323 297 | 
             
                assert_equal '{"foo":"bar"}', value
         | 
| 324 298 | 
             
                assert_equal 0x02, flags
         | 
| 325 299 |  | 
| 326 | 
            -
                value, flags, _ =  | 
| 300 | 
            +
                value, flags, _ = cb.get(uniq_id, :extended => true, :format => :document)
         | 
| 327 301 | 
             
                expected = {"foo" => "bar"}
         | 
| 328 302 | 
             
                assert_equal expected, value
         | 
| 329 303 | 
             
                assert_equal 0x02, flags
         | 
| 330 304 |  | 
| 331 | 
            -
                 | 
| 305 | 
            +
                cb.prepend(uniq_id, "NOT-A-JSON")
         | 
| 332 306 | 
             
                assert_raises Couchbase::Error::ValueFormat do
         | 
| 333 | 
            -
                   | 
| 307 | 
            +
                  cb.get(uniq_id, :format => :document)
         | 
| 334 308 | 
             
                end
         | 
| 335 309 | 
             
              end
         | 
| 336 310 |  | 
| 337 311 | 
             
              # http://www.couchbase.com/issues/browse/RCBC-31
         | 
| 338 312 | 
             
              def test_consistent_behaviour_for_arrays
         | 
| 339 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 340 313 |  | 
| 341 | 
            -
                cas =  | 
| 342 | 
            -
                 | 
| 314 | 
            +
                cas = cb.set(uniq_id("foo"), "foo")
         | 
| 315 | 
            +
                cb.set(uniq_id("bar"), "bar")
         | 
| 343 316 |  | 
| 344 | 
            -
                assert_equal "foo",  | 
| 345 | 
            -
                assert_equal ["foo"],  | 
| 346 | 
            -
                assert_equal ["foo", "bar"],  | 
| 347 | 
            -
                assert_equal ["foo", "bar"],  | 
| 317 | 
            +
                assert_equal "foo", cb.get(uniq_id("foo"))
         | 
| 318 | 
            +
                assert_equal ["foo"], cb.get([uniq_id("foo")])
         | 
| 319 | 
            +
                assert_equal ["foo", "bar"], cb.get([uniq_id("foo"), uniq_id("bar")])
         | 
| 320 | 
            +
                assert_equal ["foo", "bar"], cb.get(uniq_id("foo"), uniq_id("bar"))
         | 
| 348 321 | 
             
                # expected = {uniq_id("foo") => ["foo", nil, cas]}
         | 
| 349 | 
            -
                # assert_equal expected,  | 
| 322 | 
            +
                # assert_equal expected, cb.get([uniq_id("foo")], :extended => true)
         | 
| 350 323 | 
             
                assert_raises TypeError do
         | 
| 351 | 
            -
                   | 
| 324 | 
            +
                  cb.get([uniq_id("foo"), uniq_id("bar")], [uniq_id("foo")])
         | 
| 352 325 | 
             
                end
         | 
| 353 326 | 
             
              end
         | 
| 354 327 |  | 
| 355 328 | 
             
              def test_get_with_lock_trivial
         | 
| 356 | 
            -
                 | 
| 357 | 
            -
                  connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 358 | 
            -
                  connection.set(uniq_id, "foo")
         | 
| 329 | 
            +
                cb.set(uniq_id, "foo")
         | 
| 359 330 |  | 
| 360 | 
            -
             | 
| 361 | 
            -
             | 
| 362 | 
            -
             | 
| 363 | 
            -
                  end
         | 
| 364 | 
            -
                  sleep(2)
         | 
| 365 | 
            -
                  connection.set(uniq_id, "bar")
         | 
| 366 | 
            -
                else
         | 
| 367 | 
            -
                  skip("implement GETL in CouchbaseMock.jar")
         | 
| 331 | 
            +
                assert_equal "foo", cb.get(uniq_id, :lock => 1)
         | 
| 332 | 
            +
                assert_raises Couchbase::Error::KeyExists do
         | 
| 333 | 
            +
                  cb.set(uniq_id, "bar")
         | 
| 368 334 | 
             
                end
         | 
| 335 | 
            +
                sleep(2)
         | 
| 336 | 
            +
                cb.set(uniq_id, "bar")
         | 
| 369 337 | 
             
              end
         | 
| 370 338 |  | 
| 371 339 | 
             
              def test_multi_get_with_lock
         | 
| 372 340 | 
             
                skip("multi_get_with_lock")
         | 
| 373 | 
            -
                 | 
| 374 | 
            -
             | 
| 375 | 
            -
             | 
| 376 | 
            -
             | 
| 377 | 
            -
                   | 
| 378 | 
            -
             | 
| 379 | 
            -
             | 
| 380 | 
            -
                   | 
| 381 | 
            -
                  assert_raises Couchbase::Error::KeyExists do
         | 
| 382 | 
            -
                    connection.set(uniq_id(2), "bar")
         | 
| 383 | 
            -
                  end
         | 
| 384 | 
            -
                else
         | 
| 385 | 
            -
                  skip("implement GETL in CouchbaseMock.jar")
         | 
| 341 | 
            +
                cb.set(uniq_id(1), "foo1")
         | 
| 342 | 
            +
                cb.set(uniq_id(2), "foo2")
         | 
| 343 | 
            +
                assert_equal ["foo1", "foo2"], cb.get([uniq_id(1), uniq_id(2)], :lock => 1)
         | 
| 344 | 
            +
                assert_raises Couchbase::Error::KeyExists do
         | 
| 345 | 
            +
                  cb.set(uniq_id(1), "bar")
         | 
| 346 | 
            +
                end
         | 
| 347 | 
            +
                assert_raises Couchbase::Error::KeyExists do
         | 
| 348 | 
            +
                  cb.set(uniq_id(2), "bar")
         | 
| 386 349 | 
             
                end
         | 
| 387 350 | 
             
              end
         | 
| 388 351 |  | 
| 389 352 | 
             
              def test_multi_get_with_custom_locks
         | 
| 390 353 | 
             
                skip("multi_get_with_custom_locks")
         | 
| 391 | 
            -
                 | 
| 392 | 
            -
             | 
| 393 | 
            -
             | 
| 394 | 
            -
             | 
| 395 | 
            -
             | 
| 396 | 
            -
                   | 
| 397 | 
            -
             | 
| 398 | 
            -
             | 
| 399 | 
            -
                   | 
| 400 | 
            -
                  assert_raises Couchbase::Error::KeyExists do
         | 
| 401 | 
            -
                    connection.set(uniq_id(2), "foo")
         | 
| 402 | 
            -
                  end
         | 
| 403 | 
            -
                else
         | 
| 404 | 
            -
                  skip("implement GETL in CouchbaseMock.jar")
         | 
| 354 | 
            +
                cb.set(uniq_id(1), "foo1")
         | 
| 355 | 
            +
                cb.set(uniq_id(2), "foo2")
         | 
| 356 | 
            +
                expected = {uniq_id(1) => "foo1", uniq_id(2) => "foo2"}
         | 
| 357 | 
            +
                assert_equal expected, cb.get({uniq_id(1) => 1, uniq_id(2) => 2}, :lock => true)
         | 
| 358 | 
            +
                assert_raises Couchbase::Error::KeyExists do
         | 
| 359 | 
            +
                  cb.set(uniq_id(1), "foo")
         | 
| 360 | 
            +
                end
         | 
| 361 | 
            +
                assert_raises Couchbase::Error::KeyExists do
         | 
| 362 | 
            +
                  cb.set(uniq_id(2), "foo")
         | 
| 405 363 | 
             
                end
         | 
| 406 364 | 
             
              end
         | 
| 407 365 |  | 
| 408 366 | 
             
              def test_multi_get_result_hash_assembling
         | 
| 409 | 
            -
                 | 
| 410 | 
            -
                 | 
| 411 | 
            -
                connection.set(uniq_id(2), "bar")
         | 
| 367 | 
            +
                cb.set(uniq_id(1), "foo")
         | 
| 368 | 
            +
                cb.set(uniq_id(2), "bar")
         | 
| 412 369 |  | 
| 413 370 | 
             
                expected = {uniq_id(1) => "foo", uniq_id(2) => "bar"}
         | 
| 414 | 
            -
                assert_equal expected,  | 
| 371 | 
            +
                assert_equal expected, cb.get(uniq_id(1), uniq_id(2), :assemble_hash => true)
         | 
| 415 372 | 
             
              end
         | 
| 416 373 | 
             
            end
         |