code.gitea.io/gitea@v1.22.3/modules/cache/cache_test.go (about) 1 // Copyright 2021 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package cache 5 6 import ( 7 "fmt" 8 "testing" 9 "time" 10 11 "code.gitea.io/gitea/modules/setting" 12 13 "github.com/stretchr/testify/assert" 14 ) 15 16 func createTestCache() { 17 defaultCache, _ = NewStringCache(setting.Cache{ 18 Adapter: "memory", 19 TTL: time.Minute, 20 }) 21 setting.CacheService.TTL = 24 * time.Hour 22 } 23 24 func TestNewContext(t *testing.T) { 25 assert.NoError(t, Init()) 26 27 setting.CacheService.Cache = setting.Cache{Adapter: "redis", Conn: "some random string"} 28 con, err := NewStringCache(setting.Cache{ 29 Adapter: "rand", 30 Conn: "false conf", 31 Interval: 100, 32 }) 33 assert.Error(t, err) 34 assert.Nil(t, con) 35 } 36 37 func TestGetCache(t *testing.T) { 38 createTestCache() 39 40 assert.NotNil(t, GetCache()) 41 } 42 43 func TestGetString(t *testing.T) { 44 createTestCache() 45 46 data, err := GetString("key", func() (string, error) { 47 return "", fmt.Errorf("some error") 48 }) 49 assert.Error(t, err) 50 assert.Equal(t, "", data) 51 52 data, err = GetString("key", func() (string, error) { 53 return "", nil 54 }) 55 assert.NoError(t, err) 56 assert.Equal(t, "", data) 57 58 data, err = GetString("key", func() (string, error) { 59 return "some data", nil 60 }) 61 assert.NoError(t, err) 62 assert.Equal(t, "", data) 63 Remove("key") 64 65 data, err = GetString("key", func() (string, error) { 66 return "some data", nil 67 }) 68 assert.NoError(t, err) 69 assert.Equal(t, "some data", data) 70 71 data, err = GetString("key", func() (string, error) { 72 return "", fmt.Errorf("some error") 73 }) 74 assert.NoError(t, err) 75 assert.Equal(t, "some data", data) 76 Remove("key") 77 } 78 79 func TestGetInt64(t *testing.T) { 80 createTestCache() 81 82 data, err := GetInt64("key", func() (int64, error) { 83 return 0, fmt.Errorf("some error") 84 }) 85 assert.Error(t, err) 86 assert.EqualValues(t, 0, data) 87 88 data, err = GetInt64("key", func() (int64, error) { 89 return 0, nil 90 }) 91 assert.NoError(t, err) 92 assert.EqualValues(t, 0, data) 93 94 data, err = GetInt64("key", func() (int64, error) { 95 return 100, nil 96 }) 97 assert.NoError(t, err) 98 assert.EqualValues(t, 0, data) 99 Remove("key") 100 101 data, err = GetInt64("key", func() (int64, error) { 102 return 100, nil 103 }) 104 assert.NoError(t, err) 105 assert.EqualValues(t, 100, data) 106 107 data, err = GetInt64("key", func() (int64, error) { 108 return 0, fmt.Errorf("some error") 109 }) 110 assert.NoError(t, err) 111 assert.EqualValues(t, 100, data) 112 Remove("key") 113 }