lishunli / spymemcached

Automatically exported from code.google.com/p/spymemcached
0 stars 0 forks source link

Unit test for delete(String, int) fails #27

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Using:
memcached-2.0.2.jar
spy.jar vers. 2.4

apt-show-versions memcached
memcached/hardy uptodate 1.2.2-1

java version "1.6.0_06"
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Server VM (build 10.0-b22, mixed mode)

The following test fails for me:

  @Test
  public void testSetAndFutureDelete()
  {
    String key = RandomStringUtils.randomAlphabetic(20);
    String value = RandomStringUtils.randomAlphabetic(20);
    mcc.set(key, value);
    assertTrue(mcc.get(key).equals(value));
    int when = 20; // delete in 20 seconds
    mcc.delete(key, when);
    // fails - entry already gone, causing NPE!
    assertTrue(mcc.get(key).equals(value)); 
  }

The javadocs do not state if the "when" parameter should be in seconds but
I was just assuming that this is the case since all other expiry values
work like that.

Any idea what is going wrong here?

Original issue reported on code.google.com by misch...@gmail.com on 12 May 2008 at 2:29

GoogleCodeExporter commented 9 years ago
This is a documentation bug.  Memcached's integer parameter to delete is used 
to tell
memcached how long the key should be reserved as to prevent adds.

The following is my test for this:

    public void testDelayedDelete() throws Exception {
        assertNull(client.get("test1"));
        client.set("test1", 5, "test1value");
        assertEquals("test1value", client.get("test1"));
        client.delete("test1", 5);
        assertNull(client.get("test1"));
        // Add should fail, even though the get returns null
        client.add("test1", 5, "test1value");
        assertNull(client.get("test1"));
        // Replace should also fail
        client.replace("test1", 5, "test1value");
        assertNull(client.get("test1"));
        // Set should be fine, though.
        client.set("test1", 5, "test1value");
        assertEquals("test1value", client.get("test1"));
    }

Original comment by dsalli...@gmail.com on 12 May 2008 at 5:01

GoogleCodeExporter commented 9 years ago
Docs fixed in 9de48599d5a18cb5d59779e7c28713b517285aa4

Original comment by dsalli...@gmail.com on 14 May 2008 at 5:41