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_stats.rb
    CHANGED
    
    | @@ -19,39 +19,24 @@ require File.join(File.dirname(__FILE__), 'setup') | |
| 19 19 |  | 
| 20 20 | 
             
            class TestStats < MiniTest::Test
         | 
| 21 21 |  | 
| 22 | 
            -
              def setup
         | 
| 23 | 
            -
                @mock = start_mock(:num_nodes => 4)
         | 
| 24 | 
            -
              end
         | 
| 25 | 
            -
             | 
| 26 | 
            -
              def teardown
         | 
| 27 | 
            -
                stop_mock(@mock)
         | 
| 28 | 
            -
              end
         | 
| 29 | 
            -
             | 
| 30 22 | 
             
              def test_trivial_stats_without_argument
         | 
| 31 | 
            -
                 | 
| 32 | 
            -
                stats = connection.stats
         | 
| 23 | 
            +
                stats = cb.stats
         | 
| 33 24 | 
             
                assert stats.is_a?(Hash)
         | 
| 34 25 | 
             
                assert stats.has_key?("pid")
         | 
| 35 26 | 
             
                key, info = stats.first
         | 
| 36 27 | 
             
                assert key.is_a?(String)
         | 
| 37 28 | 
             
                assert info.is_a?(Hash)
         | 
| 38 | 
            -
                assert_equal  | 
| 29 | 
            +
                assert_equal 1, info.size
         | 
| 39 30 | 
             
              end
         | 
| 40 31 |  | 
| 41 32 | 
             
              def test_stats_with_argument
         | 
| 42 | 
            -
                 | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
                  assert info.is_a?(Hash)
         | 
| 50 | 
            -
                  assert_equal @mock.num_nodes, info.size
         | 
| 51 | 
            -
                else
         | 
| 52 | 
            -
                  # FIXME
         | 
| 53 | 
            -
                  skip("make CouchbaseMock.jar STATS more real-life")
         | 
| 54 | 
            -
                end
         | 
| 33 | 
            +
                stats = cb.stats("memory")
         | 
| 34 | 
            +
                assert stats.is_a?(Hash)
         | 
| 35 | 
            +
                assert stats.has_key?("mem_used")
         | 
| 36 | 
            +
                key, info = stats.first
         | 
| 37 | 
            +
                assert key.is_a?(String)
         | 
| 38 | 
            +
                assert info.is_a?(Hash)
         | 
| 39 | 
            +
                assert_equal 1, info.size
         | 
| 55 40 | 
             
              end
         | 
| 56 41 |  | 
| 57 42 | 
             
            end
         | 
    
        data/test/test_store.rb
    CHANGED
    
    | @@ -19,98 +19,84 @@ require File.join(File.dirname(__FILE__), 'setup') | |
| 19 19 |  | 
| 20 20 | 
             
            class TestStore < 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_set
         | 
| 31 | 
            -
                 | 
| 32 | 
            -
                cas = connection.set(uniq_id, "bar")
         | 
| 23 | 
            +
                cas = cb.set(uniq_id, "bar")
         | 
| 33 24 | 
             
                assert(cas > 0)
         | 
| 34 25 | 
             
              end
         | 
| 35 26 |  | 
| 36 27 | 
             
              def test_set_with_cas
         | 
| 37 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 38 28 |  | 
| 39 | 
            -
                cas1 =  | 
| 29 | 
            +
                cas1 = cb.set(uniq_id, "bar1")
         | 
| 40 30 | 
             
                assert cas1 > 0
         | 
| 41 31 |  | 
| 42 32 | 
             
                assert_raises(Couchbase::Error::KeyExists) do
         | 
| 43 | 
            -
                   | 
| 33 | 
            +
                  cb.set(uniq_id, "bar2", :cas => cas1+1)
         | 
| 44 34 | 
             
                end
         | 
| 45 35 |  | 
| 46 | 
            -
                cas2 =  | 
| 36 | 
            +
                cas2 = cb.set(uniq_id, "bar2", :cas => cas1)
         | 
| 47 37 | 
             
                assert cas2 > 0
         | 
| 48 38 | 
             
                refute_equal cas2, cas1
         | 
| 49 39 |  | 
| 50 | 
            -
                cas3 =  | 
| 40 | 
            +
                cas3 = cb.set(uniq_id, "bar3")
         | 
| 51 41 | 
             
                assert cas3 > 0
         | 
| 52 42 | 
             
                refute_equal cas3, cas2
         | 
| 53 43 | 
             
                refute_equal cas3, cas1
         | 
| 54 44 | 
             
              end
         | 
| 55 45 |  | 
| 56 46 | 
             
              def test_add
         | 
| 57 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 58 47 |  | 
| 59 | 
            -
                cas1 =  | 
| 48 | 
            +
                cas1 = cb.add(uniq_id, "bar")
         | 
| 60 49 | 
             
                assert cas1 > 0
         | 
| 61 50 |  | 
| 62 51 | 
             
                assert_raises(Couchbase::Error::KeyExists) do
         | 
| 63 | 
            -
                   | 
| 52 | 
            +
                  cb.add(uniq_id, "bar")
         | 
| 64 53 | 
             
                end
         | 
| 65 54 |  | 
| 66 55 | 
             
                assert_raises(Couchbase::Error::KeyExists) do
         | 
| 67 | 
            -
                   | 
| 56 | 
            +
                  cb.add(uniq_id, "bar", :cas => cas1)
         | 
| 68 57 | 
             
                end
         | 
| 69 58 | 
             
              end
         | 
| 70 59 |  | 
| 71 60 | 
             
              def test_replace
         | 
| 72 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 73 61 |  | 
| 74 62 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 75 | 
            -
                   | 
| 63 | 
            +
                  cb.replace(uniq_id, "bar")
         | 
| 76 64 | 
             
                end
         | 
| 77 65 |  | 
| 78 | 
            -
                cas1 =  | 
| 66 | 
            +
                cas1 = cb.set(uniq_id, "bar")
         | 
| 79 67 | 
             
                assert cas1 > 0
         | 
| 80 68 |  | 
| 81 | 
            -
                 | 
| 69 | 
            +
                cb.replace(uniq_id, "bar")
         | 
| 82 70 | 
             
              end
         | 
| 83 71 |  | 
| 84 72 | 
             
              def test_acceptable_keys
         | 
| 85 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 86 73 |  | 
| 87 | 
            -
                cas =  | 
| 74 | 
            +
                cas = cb.set(uniq_id.to_sym, "bar")
         | 
| 88 75 | 
             
                assert cas > 0
         | 
| 89 76 |  | 
| 90 | 
            -
                cas =  | 
| 77 | 
            +
                cas = cb.set(uniq_id.to_s, "bar")
         | 
| 91 78 | 
             
                assert cas > 0
         | 
| 92 79 |  | 
| 93 80 | 
             
                assert_raises(TypeError) do
         | 
| 94 | 
            -
                   | 
| 81 | 
            +
                  cb.set(nil, "bar")
         | 
| 95 82 | 
             
                end
         | 
| 96 83 |  | 
| 97 84 | 
             
                obj = {:foo => "bar", :baz => 1}
         | 
| 98 85 | 
             
                assert_raises(TypeError) do
         | 
| 99 | 
            -
                   | 
| 86 | 
            +
                  cb.set(obj, "bar")
         | 
| 100 87 | 
             
                end
         | 
| 101 88 |  | 
| 102 89 | 
             
                class << obj
         | 
| 103 90 | 
             
                  alias :to_str :to_s
         | 
| 104 91 | 
             
                end
         | 
| 105 92 |  | 
| 106 | 
            -
                 | 
| 93 | 
            +
                cb.set(obj, "bar")
         | 
| 107 94 | 
             
                assert cas > 0
         | 
| 108 95 | 
             
              end
         | 
| 109 96 |  | 
| 110 97 | 
             
              def test_asynchronous_set
         | 
| 111 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 112 98 | 
             
                ret = nil
         | 
| 113 | 
            -
                 | 
| 99 | 
            +
                cb.run do |conn|
         | 
| 114 100 | 
             
                  conn.set(uniq_id("1"), "foo1") {|res| ret = res}
         | 
| 115 101 | 
             
                  conn.set(uniq_id("2"), "foo2") # ignore result
         | 
| 116 102 | 
             
                end
         | 
| @@ -123,69 +109,72 @@ class TestStore < MiniTest::Test | |
| 123 109 | 
             
              end
         | 
| 124 110 |  | 
| 125 111 | 
             
              def test_it_raises_error_when_appending_or_prepending_to_missing_key
         | 
| 126 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 127 112 |  | 
| 128 113 | 
             
                assert_raises(Couchbase::Error::NotStored) do
         | 
| 129 | 
            -
                   | 
| 114 | 
            +
                  cb.append(uniq_id(:missing), "foo")
         | 
| 130 115 | 
             
                end
         | 
| 131 116 |  | 
| 132 117 | 
             
                assert_raises(Couchbase::Error::NotStored) do
         | 
| 133 | 
            -
                   | 
| 118 | 
            +
                  cb.prepend(uniq_id(:missing), "foo")
         | 
| 134 119 | 
             
                end
         | 
| 135 120 | 
             
              end
         | 
| 136 121 |  | 
| 137 122 | 
             
              def test_append
         | 
| 138 | 
            -
                 | 
| 123 | 
            +
                skip 'Plain encoding isnt working correctly'
         | 
| 124 | 
            +
                cb.default_format = :plain
         | 
| 139 125 |  | 
| 140 | 
            -
                cas1 =  | 
| 126 | 
            +
                cas1 = cb.set(uniq_id, "foo")
         | 
| 141 127 | 
             
                assert cas1 > 0
         | 
| 142 | 
            -
                cas2 =  | 
| 128 | 
            +
                cas2 = cb.append(uniq_id, "bar")
         | 
| 143 129 | 
             
                assert cas2 > 0
         | 
| 144 130 | 
             
                refute_equal cas2, cas1
         | 
| 145 131 |  | 
| 146 | 
            -
                val =  | 
| 132 | 
            +
                val = cb.get(uniq_id)
         | 
| 147 133 | 
             
                assert_equal "foobar", val
         | 
| 134 | 
            +
              ensure
         | 
| 135 | 
            +
                cb.default_format = :document
         | 
| 148 136 | 
             
              end
         | 
| 149 137 |  | 
| 150 138 | 
             
              def test_prepend
         | 
| 151 | 
            -
                 | 
| 139 | 
            +
                skip 'Plain encoding isnt working correctly'
         | 
| 140 | 
            +
                cb.default_format = :plain
         | 
| 152 141 |  | 
| 153 | 
            -
                cas1 =  | 
| 142 | 
            +
                cas1 = cb.set(uniq_id, "foo")
         | 
| 154 143 | 
             
                assert cas1 > 0
         | 
| 155 | 
            -
                cas2 =  | 
| 144 | 
            +
                cas2 = cb.prepend(uniq_id, "bar")
         | 
| 156 145 | 
             
                assert cas2 > 0
         | 
| 157 146 | 
             
                refute_equal cas2, cas1
         | 
| 158 147 |  | 
| 159 | 
            -
                val =  | 
| 148 | 
            +
                val = cb.get(uniq_id)
         | 
| 160 149 | 
             
                assert_equal "barfoo", val
         | 
| 150 | 
            +
              ensure
         | 
| 151 | 
            +
                cb.default_format = :document
         | 
| 161 152 | 
             
              end
         | 
| 162 153 |  | 
| 163 154 | 
             
              def test_set_with_prefix
         | 
| 164 155 | 
             
                skip
         | 
| 165 156 | 
             
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port, :key_prefix => "prefix:")
         | 
| 166 | 
            -
                 | 
| 167 | 
            -
                assert_equal "bar",  | 
| 157 | 
            +
                cb.set(uniq_id(:foo), "bar")
         | 
| 158 | 
            +
                assert_equal "bar", cb.get(uniq_id(:foo))
         | 
| 168 159 | 
             
                expected = {uniq_id(:foo) => "bar"}
         | 
| 169 | 
            -
                assert_equal expected,  | 
| 160 | 
            +
                assert_equal expected, cb.get(uniq_id(:foo), :assemble_hash => true)
         | 
| 170 161 |  | 
| 171 162 | 
             
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port, :key_prefix => nil)
         | 
| 172 163 | 
             
                expected = {"prefix:#{uniq_id(:foo)}" => "bar"}
         | 
| 173 | 
            -
                assert_equal expected,  | 
| 164 | 
            +
                assert_equal expected, cb.get("prefix:#{uniq_id(:foo)}", :assemble_hash => true)
         | 
| 174 165 | 
             
              end
         | 
| 175 166 |  | 
| 176 167 | 
             
              ArbitraryData = Struct.new(:baz)
         | 
| 177 168 |  | 
| 178 169 | 
             
              def test_set_using_brackets
         | 
| 179 | 
            -
                 | 
| 180 | 
            -
             | 
| 181 | 
            -
                connection[uniq_id(1)] = "foo"
         | 
| 182 | 
            -
                val = connection.get(uniq_id(1))
         | 
| 170 | 
            +
                cb[uniq_id(1)] = "foo"
         | 
| 171 | 
            +
                val = cb.get(uniq_id(1))
         | 
| 183 172 | 
             
                assert_equal "foo", val
         | 
| 184 173 |  | 
| 185 174 | 
             
                # if RUBY_VERSION =~ /^1\.9/
         | 
| 186 175 | 
             
                #   eval <<-EOC
         | 
| 187 176 | 
             
                #   connection[uniq_id(3), :format => :marshal] = ArbitraryData.new("thing")
         | 
| 188 | 
            -
                #   val =  | 
| 177 | 
            +
                #   val = cb.get(uniq_id(3))
         | 
| 189 178 | 
             
                #   assert val.is_a?(ArbitraryData)
         | 
| 190 179 | 
             
                #   assert_equal "thing", val.baz
         | 
| 191 180 | 
             
                #   EOC
         | 
| @@ -193,21 +182,23 @@ class TestStore < MiniTest::Test | |
| 193 182 | 
             
              end
         | 
| 194 183 |  | 
| 195 184 | 
             
              def test_multi_store
         | 
| 196 | 
            -
                 | 
| 197 | 
            -
                 | 
| 198 | 
            -
                assert_equal ["bbb", "yyy"],  | 
| 185 | 
            +
                cb.default_format = :plain
         | 
| 186 | 
            +
                cb.add(uniq_id(:a) => "bbb", uniq_id(:z) => "yyy")
         | 
| 187 | 
            +
                assert_equal ["bbb", "yyy"], cb.get(uniq_id(:a), uniq_id(:z))
         | 
| 199 188 |  | 
| 200 | 
            -
                #  | 
| 201 | 
            -
                # assert_equal ["aaabbb", "xxxyyy"],  | 
| 189 | 
            +
                # cb.prepend(uniq_id(:a) => "aaa", uniq_id(:z) => "xxx")
         | 
| 190 | 
            +
                # assert_equal ["aaabbb", "xxxyyy"], cb.get(uniq_id(:a), uniq_id(:z))
         | 
| 202 191 |  | 
| 203 | 
            -
                #  | 
| 204 | 
            -
                # assert_equal ["aaabbbccc", "xxxyyyzzz"],  | 
| 192 | 
            +
                # cb.append(uniq_id(:a) => "ccc", uniq_id(:z) => "zzz")
         | 
| 193 | 
            +
                # assert_equal ["aaabbbccc", "xxxyyyzzz"], cb.get(uniq_id(:a), uniq_id(:z))
         | 
| 205 194 |  | 
| 206 | 
            -
                #  | 
| 207 | 
            -
                # assert_equal ["foo", "bar"],  | 
| 195 | 
            +
                # cb.replace(uniq_id(:a) => "foo", uniq_id(:z) => "bar")
         | 
| 196 | 
            +
                # assert_equal ["foo", "bar"], cb.get(uniq_id(:a), uniq_id(:z))
         | 
| 208 197 |  | 
| 209 | 
            -
                res =  | 
| 210 | 
            -
                assert_equal ["bar", "foo"],  | 
| 198 | 
            +
                res = cb.set(uniq_id(:a) => "bar", uniq_id(:z) => "foo")
         | 
| 199 | 
            +
                assert_equal ["bar", "foo"], cb.get(uniq_id(:a), uniq_id(:z))
         | 
| 211 200 | 
             
                assert res.is_a?(Hash)
         | 
| 201 | 
            +
              ensure
         | 
| 202 | 
            +
                cb.default_format = :document
         | 
| 212 203 | 
             
              end
         | 
| 213 204 | 
             
            end
         | 
    
        data/test/test_timer.rb
    CHANGED
    
    | @@ -19,24 +19,15 @@ require File.join(File.dirname(__FILE__), 'setup') | |
| 19 19 |  | 
| 20 20 | 
             
            class TestTimer < 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_initialization
         | 
| 31 23 | 
             
                skip
         | 
| 32 | 
            -
                connection = Couchbase.new(:hostname => @mock.host, :port => @mock.port)
         | 
| 33 24 | 
             
                num = 0
         | 
| 34 | 
            -
                 | 
| 25 | 
            +
                cb.run do
         | 
| 35 26 | 
             
                  assert Couchbase::Timer.new(connection, 100)  { num += 1}
         | 
| 36 | 
            -
                  assert  | 
| 27 | 
            +
                  assert cb.create_timer(100)           { num += 1}
         | 
| 37 28 |  | 
| 38 29 | 
             
                  assert Couchbase::Timer.new(connection, 100, :periodic => true)  {|t| num += 1; t.cancel}
         | 
| 39 | 
            -
                  assert  | 
| 30 | 
            +
                  assert cb.create_periodic_timer(100)                     {|t| num += 1; t.cancel}
         | 
| 40 31 | 
             
                end
         | 
| 41 32 | 
             
                assert_equal 4, num
         | 
| 42 33 | 
             
              end
         | 
    
        data/test/test_touch.rb
    CHANGED
    
    | @@ -19,79 +19,72 @@ require File.join(File.dirname(__FILE__), 'setup') | |
| 19 19 |  | 
| 20 20 | 
             
            class TestTouch < 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_touch
         | 
| 31 | 
            -
                 | 
| 32 | 
            -
                 | 
| 33 | 
            -
                connection.touch(uniq_id, :ttl => 2)
         | 
| 23 | 
            +
                cb.set(uniq_id, "bar", :ttl => 1)
         | 
| 24 | 
            +
                cb.touch(uniq_id, :ttl => 2)
         | 
| 34 25 | 
             
                sleep(1)
         | 
| 35 | 
            -
                assert  | 
| 26 | 
            +
                assert cb.get(uniq_id)
         | 
| 36 27 | 
             
                sleep(2)
         | 
| 37 28 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 38 | 
            -
                   | 
| 29 | 
            +
                  cb.get(uniq_id)
         | 
| 39 30 | 
             
                end
         | 
| 40 31 | 
             
              end
         | 
| 41 32 |  | 
| 42 33 | 
             
              def test_multi_touch
         | 
| 43 | 
            -
                 | 
| 44 | 
            -
                 | 
| 45 | 
            -
                 | 
| 46 | 
            -
                ret = connection.touch(uniq_id(1) => 1, uniq_id(2) => 1)
         | 
| 34 | 
            +
                cb.set(uniq_id(1), "bar")
         | 
| 35 | 
            +
                cb.set(uniq_id(2), "baz")
         | 
| 36 | 
            +
                ret = cb.touch(uniq_id(1) => 1, uniq_id(2) => 1)
         | 
| 47 37 | 
             
                assert ret[uniq_id(1)]
         | 
| 48 38 | 
             
                assert ret[uniq_id(2)]
         | 
| 49 39 | 
             
                sleep(2)
         | 
| 50 40 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 51 | 
            -
                   | 
| 41 | 
            +
                  cb.get(uniq_id(1))
         | 
| 52 42 | 
             
                end
         | 
| 53 43 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 54 | 
            -
                   | 
| 44 | 
            +
                  cb.get(uniq_id(2))
         | 
| 55 45 | 
             
                end
         | 
| 56 46 | 
             
              end
         | 
| 57 47 |  | 
| 58 48 | 
             
              def test_it_uses_default_ttl_for_touch
         | 
| 59 | 
            -
                 | 
| 60 | 
            -
                 | 
| 61 | 
            -
                 | 
| 49 | 
            +
                cb.default_ttl = 1
         | 
| 50 | 
            +
                cb.set(uniq_id, "bar", :ttl => 10)
         | 
| 51 | 
            +
                cb.touch(uniq_id)
         | 
| 62 52 | 
             
                sleep(2)
         | 
| 63 53 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 64 | 
            -
                   | 
| 54 | 
            +
                  cb.get(uniq_id)
         | 
| 65 55 | 
             
                end
         | 
| 56 | 
            +
              ensure
         | 
| 57 | 
            +
                cb.default_ttl = 0
         | 
| 66 58 | 
             
              end
         | 
| 67 59 |  | 
| 68 60 | 
             
              def test_it_accepts_ttl_for_get_command
         | 
| 69 | 
            -
                 | 
| 70 | 
            -
                 | 
| 71 | 
            -
                val = connection.get(uniq_id, :ttl => 1)
         | 
| 61 | 
            +
                cb.set(uniq_id, "bar", :ttl => 10)
         | 
| 62 | 
            +
                val = cb.get(uniq_id, :ttl => 1)
         | 
| 72 63 | 
             
                assert_equal "bar", val
         | 
| 73 64 | 
             
                sleep(2)
         | 
| 74 65 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 75 | 
            -
                   | 
| 66 | 
            +
                  cb.get(uniq_id)
         | 
| 76 67 | 
             
                end
         | 
| 77 68 | 
             
              end
         | 
| 78 69 |  | 
| 79 70 | 
             
              def test_missing_in_quiet_mode
         | 
| 80 | 
            -
                 | 
| 81 | 
            -
                cas1 =  | 
| 82 | 
            -
                cas2 =  | 
| 71 | 
            +
                cb.quiet = true
         | 
| 72 | 
            +
                cas1 = cb.set(uniq_id(1), "foo1")
         | 
| 73 | 
            +
                cas2 = cb.set(uniq_id(2), "foo2")
         | 
| 83 74 |  | 
| 84 75 | 
             
                assert_raises(Couchbase::Error::NotFound) do
         | 
| 85 | 
            -
                   | 
| 76 | 
            +
                  cb.touch(uniq_id(:missing), :quiet => false)
         | 
| 86 77 | 
             
                end
         | 
| 87 78 |  | 
| 88 | 
            -
                val =  | 
| 79 | 
            +
                val = cb.touch(uniq_id(:missing))
         | 
| 89 80 | 
             
                refute(val)
         | 
| 90 81 |  | 
| 91 | 
            -
                ret =  | 
| 82 | 
            +
                ret = cb.touch(uniq_id(1), uniq_id(:missing), uniq_id(2))
         | 
| 92 83 | 
             
                assert_equal true, ret[uniq_id(1)]
         | 
| 93 84 | 
             
                assert_equal false, ret[uniq_id(:missing)]
         | 
| 94 85 | 
             
                assert_equal true, ret[uniq_id(2)]
         | 
| 86 | 
            +
              ensure
         | 
| 87 | 
            +
                cb.quiet = false
         | 
| 95 88 | 
             
              end
         | 
| 96 89 |  | 
| 97 90 | 
             
            end
         | 
    
        data/test/test_unlock.rb
    CHANGED
    
    | @@ -19,103 +19,70 @@ require File.join(File.dirname(__FILE__), 'setup') | |
| 19 19 |  | 
| 20 20 | 
             
            class TestUnlock < 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_unlock
         | 
| 31 | 
            -
                 | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
                   | 
| 35 | 
            -
                  assert_raises Couchbase::Error::KeyExists do
         | 
| 36 | 
            -
                    connection.set(uniq_id, "bar")
         | 
| 37 | 
            -
                  end
         | 
| 38 | 
            -
                  assert connection.unlock(uniq_id, :cas => cas)
         | 
| 39 | 
            -
                  connection.set(uniq_id, "bar")
         | 
| 40 | 
            -
                else
         | 
| 41 | 
            -
                  skip("GETL and UNL aren't implemented in CouchbaseMock.jar yet")
         | 
| 23 | 
            +
                cb.set(uniq_id, "foo")
         | 
| 24 | 
            +
                _, _, cas = cb.get(uniq_id, :lock => true, :extended => true)
         | 
| 25 | 
            +
                assert_raises Couchbase::Error::KeyExists do
         | 
| 26 | 
            +
                  cb.set(uniq_id, "bar")
         | 
| 42 27 | 
             
                end
         | 
| 28 | 
            +
                assert cb.unlock(uniq_id, :cas => cas)
         | 
| 29 | 
            +
                cb.set(uniq_id, "bar")
         | 
| 43 30 | 
             
              end
         | 
| 44 31 |  | 
| 45 32 | 
             
              def test_alternative_syntax_for_single_key
         | 
| 46 | 
            -
                 | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
                   | 
| 50 | 
            -
                  assert_raises Couchbase::Error::KeyExists do
         | 
| 51 | 
            -
                    connection.set(uniq_id, "bar")
         | 
| 52 | 
            -
                  end
         | 
| 53 | 
            -
                  assert connection.unlock(uniq_id, cas)
         | 
| 54 | 
            -
                  connection.set(uniq_id, "bar")
         | 
| 55 | 
            -
                else
         | 
| 56 | 
            -
                  skip("GETL and UNL aren't implemented in CouchbaseMock.jar yet")
         | 
| 33 | 
            +
                cb.set(uniq_id, "foo")
         | 
| 34 | 
            +
                _, _, cas = cb.get(uniq_id, :lock => true, :extended => true)
         | 
| 35 | 
            +
                assert_raises Couchbase::Error::KeyExists do
         | 
| 36 | 
            +
                  cb.set(uniq_id, "bar")
         | 
| 57 37 | 
             
                end
         | 
| 38 | 
            +
                assert cb.unlock(uniq_id, cas)
         | 
| 39 | 
            +
                cb.set(uniq_id, "bar")
         | 
| 58 40 | 
             
              end
         | 
| 59 41 |  | 
| 60 42 | 
             
              def test_multiple_unlock
         | 
| 61 43 | 
             
                skip
         | 
| 62 | 
            -
                 | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 66 | 
            -
                   | 
| 67 | 
            -
             | 
| 68 | 
            -
             | 
| 69 | 
            -
                   | 
| 70 | 
            -
                  assert_raises Couchbase::Error::KeyExists do
         | 
| 71 | 
            -
                    connection.set(uniq_id(2), "bar")
         | 
| 72 | 
            -
                  end
         | 
| 73 | 
            -
                  ret = connection.unlock(uniq_id(1) => info[uniq_id(1)][2],
         | 
| 74 | 
            -
                                          uniq_id(2) => info[uniq_id(2)][2])
         | 
| 75 | 
            -
                  assert ret[uniq_id(1)]
         | 
| 76 | 
            -
                  assert ret[uniq_id(2)]
         | 
| 77 | 
            -
                  connection.set(uniq_id(1), "bar")
         | 
| 78 | 
            -
                  connection.set(uniq_id(2), "bar")
         | 
| 79 | 
            -
                else
         | 
| 80 | 
            -
                  skip("GETL and UNL aren't implemented in CouchbaseMock.jar yet")
         | 
| 44 | 
            +
                cb.set(uniq_id(1), "foo")
         | 
| 45 | 
            +
                cb.set(uniq_id(2), "foo")
         | 
| 46 | 
            +
                info = cb.get(uniq_id(1), uniq_id(2), :lock => true, :extended => true)
         | 
| 47 | 
            +
                assert_raises Couchbase::Error::KeyExists do
         | 
| 48 | 
            +
                  cb.set(uniq_id(1), "bar")
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
                assert_raises Couchbase::Error::KeyExists do
         | 
| 51 | 
            +
                  cb.set(uniq_id(2), "bar")
         | 
| 81 52 | 
             
                end
         | 
| 53 | 
            +
                ret = cb.unlock(uniq_id(1) => info[uniq_id(1)][2],
         | 
| 54 | 
            +
                                        uniq_id(2) => info[uniq_id(2)][2])
         | 
| 55 | 
            +
                assert ret[uniq_id(1)]
         | 
| 56 | 
            +
                assert ret[uniq_id(2)]
         | 
| 57 | 
            +
                cb.set(uniq_id(1), "bar")
         | 
| 58 | 
            +
                cb.set(uniq_id(2), "bar")
         | 
| 82 59 | 
             
              end
         | 
| 83 60 |  | 
| 84 61 | 
             
              def test_quiet_mode
         | 
| 85 62 | 
             
                skip
         | 
| 86 | 
            -
                 | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 89 | 
            -
                   | 
| 90 | 
            -
                  assert_raises Couchbase::Error::NotFound do
         | 
| 91 | 
            -
                    connection.unlock(uniq_id(:missing), :cas => 0xdeadbeef)
         | 
| 92 | 
            -
                  end
         | 
| 93 | 
            -
                  keys = {
         | 
| 94 | 
            -
                    uniq_id => cas,
         | 
| 95 | 
            -
                    uniq_id(:missing) => 0xdeadbeef
         | 
| 96 | 
            -
                  }
         | 
| 97 | 
            -
                  ret = connection.unlock(keys, :quiet => true)
         | 
| 98 | 
            -
                  assert ret[uniq_id]
         | 
| 99 | 
            -
                  refute ret[uniq_id(:missing)]
         | 
| 100 | 
            -
                else
         | 
| 101 | 
            -
                  skip("GETL and UNL aren't implemented in CouchbaseMock.jar yet")
         | 
| 63 | 
            +
                cb.set(uniq_id, "foo")
         | 
| 64 | 
            +
                _, _, cas = cb.get(uniq_id, :lock => true, :extended => true)
         | 
| 65 | 
            +
                assert_raises Couchbase::Error::NotFound do
         | 
| 66 | 
            +
                  cb.unlock(uniq_id(:missing), :cas => 0xdeadbeef)
         | 
| 102 67 | 
             
                end
         | 
| 68 | 
            +
                keys = {
         | 
| 69 | 
            +
                  uniq_id => cas,
         | 
| 70 | 
            +
                  uniq_id(:missing) => 0xdeadbeef
         | 
| 71 | 
            +
                }
         | 
| 72 | 
            +
                ret = cb.unlock(keys, :quiet => true)
         | 
| 73 | 
            +
                assert ret[uniq_id]
         | 
| 74 | 
            +
                refute ret[uniq_id(:missing)]
         | 
| 103 75 | 
             
              end
         | 
| 104 76 |  | 
| 105 77 | 
             
              def test_tmp_failure
         | 
| 106 | 
            -
                 | 
| 107 | 
            -
             | 
| 108 | 
            -
             | 
| 109 | 
            -
             | 
| 110 | 
            -
                   | 
| 111 | 
            -
             | 
| 112 | 
            -
             | 
| 113 | 
            -
                   | 
| 114 | 
            -
                  assert_raises Couchbase::Error::TemporaryFail do
         | 
| 115 | 
            -
                    connection.unlock(uniq_id(2), cas2)
         | 
| 116 | 
            -
                  end
         | 
| 117 | 
            -
                else
         | 
| 118 | 
            -
                  skip("GETL and UNL aren't implemented in CouchbaseMock.jar yet")
         | 
| 78 | 
            +
                cas1 = cb.set(uniq_id(1), "foo")
         | 
| 79 | 
            +
                cas2 = cb.set(uniq_id(2), "foo")
         | 
| 80 | 
            +
                cb.get(uniq_id(1), :lock => true) # get with lock will update CAS
         | 
| 81 | 
            +
                assert_raises Couchbase::Error::TemporaryFail do
         | 
| 82 | 
            +
                  cb.unlock(uniq_id(1), cas1)
         | 
| 83 | 
            +
                end
         | 
| 84 | 
            +
                assert_raises Couchbase::Error::TemporaryFail do
         | 
| 85 | 
            +
                  cb.unlock(uniq_id(2), cas2)
         | 
| 119 86 | 
             
                end
         | 
| 120 87 | 
             
              end
         | 
| 121 88 | 
             
            end
         |