package cache import ( "context" "testing" "time" ) func TestMemoryCacheMultiAndDeleteMany(t *testing.T) { ctx := context.Background() c := newMemoryCache() if err := c.SetMulti(ctx, []Item{ {Key: "a", Value: []byte("one"), TTL: time.Minute}, {Key: "b", Value: []byte("two"), TTL: time.Minute}, }); err != nil { t.Fatalf("SetMulti() error = %v", err) } values, err := c.GetMulti(ctx, []string{"a", "missing", "b"}) if err != nil { t.Fatalf("GetMulti() error = %v", err) } if got := string(values["a"]); got != "one" { t.Fatalf("values[a] = %q, want one", got) } if got := string(values["b"]); got != "two" { t.Fatalf("values[b] = %q, want two", got) } if _, ok := values["missing"]; ok { t.Fatalf("missing key should not be returned") } if err := c.DeleteMany(ctx, []string{"a", "b"}); err != nil { t.Fatalf("DeleteMany() error = %v", err) } values, err = c.GetMulti(ctx, []string{"a", "b"}) if err != nil { t.Fatalf("GetMulti() after DeleteMany error = %v", err) } if len(values) != 0 { t.Fatalf("values after DeleteMany = %v, want empty", values) } }