| 132 | } |
| 133 | |
| 134 | func TestCache_GuardedSet(t *testing.T) { |
| 135 | _, jsonErr := json.Marshal(invalidInputValue) |
| 136 | require.NotNil(t, jsonErr) |
| 137 | |
| 138 | json, err := json.Marshal(validInputValue1) |
| 139 | require.Nil(t, err) |
| 140 | |
| 141 | t.Run("GuardedSet using invalid value fails", func(t *testing.T) { |
| 142 | instance, err := cache.NewCache(cache.Config{1}) |
| 143 | require.Nil(t, err) |
| 144 | |
| 145 | _, _, err = instance.GuardedSet(testCacheKey1, invalidInputValue) |
| 146 | require.NotNil(t, err) |
| 147 | require.Contains(t, err.Error(), jsonErr.Error()) |
| 148 | }) |
| 149 | |
| 150 | t.Run("GuardedSet using existing key returns false with 0 bytes written", func(t *testing.T) { |
| 151 | instance, err := cache.NewCache(cache.Config{1}) |
| 152 | require.Nil(t, err) |
| 153 | |
| 154 | _, _, err = instance.Set(testCacheKey1, validInputValue1) |
| 155 | require.Nil(t, err) |
| 156 | |
| 157 | ok, written, err := instance.GuardedSet(testCacheKey1, validInputValue1) |
| 158 | require.Nil(t, err) |
| 159 | require.False(t, ok) |
| 160 | require.Equal(t, 0, written) |
| 161 | }) |
| 162 | |
| 163 | t.Run("GuardedSet using unique key writes to cache", func(t *testing.T) { |
| 164 | instance, err := cache.NewCache(cache.Config{1}) |
| 165 | require.Nil(t, err) |
| 166 | |
| 167 | ok, written, err := instance.GuardedSet(testCacheKey2, validInputValue1) |
| 168 | require.Nil(t, err) |
| 169 | require.True(t, ok) |
| 170 | require.Equal(t, len(json), written) |
| 171 | }) |
| 172 | } |
| 173 | |
| 174 | func TestCache_Get(t *testing.T) { |
| 175 | instance, err := getPopulatedInstance(cacheEntries) |