package cache import ( "testing" "time" ) func TestCache(t *testing.T) { appCache, err := Bootstrap() if err != nil { t.Errorf("bootstrap cache failed: %v\n", err) } if err := appCache.Set("key", "value"); err != nil { t.Errorf("set cache failed: %v\n", err) } // real result value, err := appCache.Get("key") if err != nil { t.Errorf("get cache failed: %v\n", err) } if value == nil { t.Error("get cache didn't fetch a value for set key") } else if *value != "value" { t.Errorf("get cache value should be \"value\" but is \"%s\"", *value) } // nil result value, err = appCache.Get("notExisting") if err != nil { t.Errorf("get cache failed: %v\n", err) } if value != nil { t.Error("get cache must return nil for non existing key") } if err := appCache.SetWithTTL("ttl", "10", 3); err != nil { t.Errorf("set cache failed: %v\n", err) } value, err = appCache.Get("ttl") if err != nil { t.Errorf("get cache failed: %v\n", err) } if value == nil { t.Error("get cache didn't fetch a value for set key") } else if *value != "10" { t.Errorf("get cache value should be \"10\" but is \"%s\"", *value) } time.Sleep(3 * time.Second) value, err = appCache.Get("ttl") if err != nil { t.Errorf("get cache failed: %v\n", err) } if value != nil { t.Error("get cache must return nil for expired key") } appCache.Close() }