memcache_test.go 895 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // +build !appengine
  2. package memcache
  3. import (
  4. "bytes"
  5. "net"
  6. "testing"
  7. )
  8. const testServer = "localhost:11211"
  9. func TestMemCache(t *testing.T) {
  10. conn, err := net.Dial("tcp", testServer)
  11. if err != nil {
  12. // TODO: rather than skip the test, fall back to a faked memcached server
  13. t.Skipf("skipping test; no server running at %s", testServer)
  14. }
  15. conn.Write([]byte("flush_all\r\n")) // flush memcache
  16. conn.Close()
  17. cache := New(testServer)
  18. key := "testKey"
  19. _, ok := cache.Get(key)
  20. if ok {
  21. t.Fatal("retrieved key before adding it")
  22. }
  23. val := []byte("some bytes")
  24. cache.Set(key, val)
  25. retVal, ok := cache.Get(key)
  26. if !ok {
  27. t.Fatal("could not retrieve an element we just added")
  28. }
  29. if !bytes.Equal(retVal, val) {
  30. t.Fatal("retrieved a different value than what we put in")
  31. }
  32. cache.Delete(key)
  33. _, ok = cache.Get(key)
  34. if ok {
  35. t.Fatal("deleted key still present")
  36. }
  37. }