code.gitea.io/gitea@v1.19.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 conn, _ = newCache(setting.Cache{ 18 Adapter: "memory", 19 TTL: time.Minute, 20 }) 21 } 22 23 func TestNewContext(t *testing.T) { 24 assert.NoError(t, NewContext()) 25 26 setting.CacheService.Cache = setting.Cache{Enabled: true, Adapter: "redis", Conn: "some random string"} 27 con, err := newCache(setting.Cache{ 28 Adapter: "rand", 29 Conn: "false conf", 30 Interval: 100, 31 }) 32 assert.Error(t, err) 33 assert.Nil(t, con) 34 } 35 36 func TestGetCache(t *testing.T) { 37 createTestCache() 38 39 assert.NotNil(t, GetCache()) 40 } 41 42 func TestGetString(t *testing.T) { 43 createTestCache() 44 45 data, err := GetString("key", func() (string, error) { 46 return "", fmt.Errorf("some error") 47 }) 48 assert.Error(t, err) 49 assert.Equal(t, "", data) 50 51 data, err = GetString("key", func() (string, error) { 52 return "", nil 53 }) 54 assert.NoError(t, err) 55 assert.Equal(t, "", data) 56 57 // data, err = GetString("key", func() (string, error) { 58 // return "some data", nil 59 // }) 60 // assert.NoError(t, err) 61 // assert.Equal(t, "", data) 62 // Remove("key") 63 64 data, err = GetString("key", func() (string, error) { 65 return "some data", nil 66 }) 67 assert.NoError(t, err) 68 assert.Equal(t, "some data", data) 69 70 // data, err = GetString("key", func() (string, error) { 71 // return "", fmt.Errorf("some error") 72 // }) 73 // assert.NoError(t, err) 74 // assert.Equal(t, "some data", data) 75 76 // TODO: uncommented code works in IDE but not with go test 77 } 78 79 func TestGetInt(t *testing.T) { 80 createTestCache() 81 82 data, err := GetInt("key", func() (int, error) { 83 return 0, fmt.Errorf("some error") 84 }) 85 assert.Error(t, err) 86 assert.Equal(t, 0, data) 87 88 data, err = GetInt("key", func() (int, error) { 89 return 0, nil 90 }) 91 assert.NoError(t, err) 92 assert.Equal(t, 0, data) 93 94 // data, err = GetInt("key", func() (int, error) { 95 // return 100, nil 96 // }) 97 // assert.NoError(t, err) 98 // assert.Equal(t, 0, data) 99 // Remove("key") 100 101 data, err = GetInt("key", func() (int, error) { 102 return 100, nil 103 }) 104 assert.NoError(t, err) 105 assert.Equal(t, 100, data) 106 107 // data, err = GetInt("key", func() (int, error) { 108 // return 0, fmt.Errorf("some error") 109 // }) 110 // assert.NoError(t, err) 111 // assert.Equal(t, 100, data) 112 113 // TODO: uncommented code works in IDE but not with go test 114 } 115 116 func TestGetInt64(t *testing.T) { 117 createTestCache() 118 119 data, err := GetInt64("key", func() (int64, error) { 120 return 0, fmt.Errorf("some error") 121 }) 122 assert.Error(t, err) 123 assert.EqualValues(t, 0, data) 124 125 data, err = GetInt64("key", func() (int64, error) { 126 return 0, nil 127 }) 128 assert.NoError(t, err) 129 assert.EqualValues(t, 0, data) 130 131 // data, err = GetInt64("key", func() (int64, error) { 132 // return 100, nil 133 // }) 134 // assert.NoError(t, err) 135 // assert.EqualValues(t, 0, data) 136 // Remove("key") 137 138 data, err = GetInt64("key", func() (int64, error) { 139 return 100, nil 140 }) 141 assert.NoError(t, err) 142 assert.EqualValues(t, 100, data) 143 144 // data, err = GetInt64("key", func() (int, error) { 145 // return 0, fmt.Errorf("some error") 146 // }) 147 // assert.NoError(t, err) 148 // assert.EqualValues(t, 100, data) 149 150 // TODO: uncommented code works in IDE but not with go test 151 }