github.com/qxnw/lib4go@v0.0.0-20180426074627-c80c7e84b925/cache/memcache/memcache_test.go (about) 1 package memcache 2 3 import ( 4 "strings" 5 "testing" 6 "time" 7 ) 8 9 func TestMemcache(t *testing.T) { 10 mem, err := NewJSON(`{"servers": ["192.168.0.166:11212"]}`) 11 if err != nil { 12 t.Error(err) 13 return 14 } 15 16 // 正常流程 17 key := "test" 18 value := "value" 19 if e := mem.Add(key, value, 5); e != nil { 20 t.Errorf("存数据失败:%v", e) 21 } 22 23 v := mem.Get(key) 24 if !strings.EqualFold(v, value) { 25 t.Errorf("取数据失败:%s", v) 26 } 27 28 err = mem.Delay(key, 10) 29 if err != nil { 30 t.Errorf("延长存储时间失败:%v", err) 31 } 32 33 time.Sleep(8 * time.Second) 34 35 v = mem.Get(key) 36 if !strings.EqualFold(v, value) { 37 t.Error("延长存储时间失败") 38 } 39 40 mem.Delete(key) 41 v = mem.Get(key) 42 if !strings.EqualFold(v, "") { 43 t.Errorf("获取到了脏数:%s", v) 44 } 45 46 // 取一个不存在的数据 47 key = "test1" 48 value = "value1" 49 if mem.Get(key) != "" { 50 t.Error("get unkonw err:") 51 } 52 53 // Add一个存在的数据 54 key = "test_add" 55 value = "value_add" 56 value2 := "value_add_2" 57 if err := mem.Add(key, value, 10); err != nil { 58 t.Errorf("存数据失败:%v", err) 59 } 60 if err := mem.Add(key, value2, 10); err == nil { 61 t.Error("test fail") 62 } 63 64 // Set一个存在的数据 65 key = "test_set" 66 value = "value_set" 67 value2 = "value_set_2" 68 if err := mem.Set(key, value, 10); err != nil { 69 t.Errorf("Set data err : %v", err) 70 } 71 if err := mem.Set(key, value2, 10); err != nil { 72 t.Errorf("Set data err : %v", err) 73 } 74 75 // 配置文件错误 76 mem, err = NewJSON(`192.168.0.166:11212`) 77 if err == nil { 78 t.Error(err) 79 return 80 } 81 82 // 配置文件错误 83 mem, err = NewJSON(`{"servers": ["192.168.0.165:11212"]}`) 84 if err != nil { 85 t.Error(err) 86 return 87 } 88 if e := mem.Add(key, value, 5); e == nil { 89 t.Error("test fail") 90 } 91 92 v = mem.Get(key) 93 if !strings.EqualFold(v, "") { 94 t.Error("test fail") 95 } 96 97 err = mem.Delay(key, 10) 98 if err == nil { 99 t.Error("test fail") 100 } 101 102 mem.Delete(key) 103 }