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  }