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  }