| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // Copyright 2022 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package cache
-
- import (
- "context"
- "testing"
- "time"
-
- "code.gitea.io/gitea/modules/test"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestWithCacheContext(t *testing.T) {
- ctx := WithCacheContext(t.Context())
- c := GetContextCache(ctx)
- v, _ := c.Get("empty_field", "my_config1")
- assert.Nil(t, v)
-
- const field = "system_setting"
- v, _ = c.Get(field, "my_config1")
- assert.Nil(t, v)
- c.Put(field, "my_config1", 1)
- v, _ = c.Get(field, "my_config1")
- assert.NotNil(t, v)
- assert.Equal(t, 1, v.(int))
-
- c.Delete(field, "my_config1")
- c.Delete(field, "my_config2") // remove a non-exist key
-
- v, _ = c.Get(field, "my_config1")
- assert.Nil(t, v)
-
- vInt, err := GetWithContextCache(ctx, field, "my_config1", func(context.Context, string) (int, error) {
- return 1, nil
- })
- assert.NoError(t, err)
- assert.Equal(t, 1, vInt)
-
- v, _ = c.Get(field, "my_config1")
- assert.EqualValues(t, 1, v)
-
- defer test.MockVariableValue(&timeNow, func() time.Time {
- return time.Now().Add(5 * time.Minute)
- })()
- v, _ = c.Get(field, "my_config1")
- assert.Nil(t, v)
- }
|