github.com/keysonzzz/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgCache/FileTtlCache_test.go (about) 1 package kmgCache 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 "github.com/bronze1man/kmg/kmgFile" 9 "github.com/bronze1man/kmg/kmgTest" 10 ) 11 12 func TestFileTtlCache(t *testing.T) { 13 kmgFile.MustDelete(getFileTtlCachePath("test_file_ttl_cache")) 14 _, err := FileTtlCache("test_file_ttl_cache", func() (b []byte, ttl time.Duration, err error) { 15 return []byte("1"), time.Millisecond, fmt.Errorf("error") 16 }) 17 kmgTest.Equal(err.Error(), "error") 18 b, err := FileTtlCache("test_file_ttl_cache", func() (b []byte, ttl time.Duration, err error) { 19 return []byte("1"), time.Millisecond, nil 20 }) 21 kmgTest.Equal(b, []byte("1")) 22 kmgTest.Equal(err, nil) 23 24 b, err = FileTtlCache("test_file_ttl_cache", func() (b []byte, ttl time.Duration, err error) { 25 return []byte("2"), time.Millisecond, nil 26 }) 27 kmgTest.Equal(b, []byte("1")) 28 kmgTest.Equal(err, nil) 29 30 time.Sleep(time.Millisecond) 31 b, err = FileTtlCache("test_file_ttl_cache", func() (b []byte, ttl time.Duration, err error) { 32 return []byte("2"), time.Millisecond, nil 33 }) 34 kmgTest.Equal(b, []byte("2")) 35 kmgTest.Equal(err, nil) 36 }