| package xcache
|
|
|
| import (
|
| "context"
|
| "testing"
|
|
|
| "github.com/stretchr/testify/assert"
|
| )
|
|
|
| func TestNoopCache(t *testing.T) {
|
| ctx := context.Background()
|
| cache := NewNoop[string]()
|
|
|
|
|
| _, err := cache.Get(ctx, "test-key")
|
| assert.Error(t, err)
|
| assert.ErrorIs(t, err, ErrCacheNotConfigured)
|
|
|
|
|
| err = cache.Set(ctx, "test-key", "test-value")
|
| assert.NoError(t, err)
|
|
|
|
|
| _, err = cache.Get(ctx, "test-key")
|
| assert.Error(t, err)
|
| assert.ErrorIs(t, err, ErrCacheNotConfigured)
|
|
|
|
|
| err = cache.Delete(ctx, "test-key")
|
| assert.NoError(t, err)
|
|
|
|
|
| err = cache.Clear(ctx)
|
| assert.NoError(t, err)
|
|
|
|
|
| err = cache.Invalidate(ctx)
|
| assert.NoError(t, err)
|
|
|
|
|
| assert.Equal(t, "noop", cache.GetType())
|
| }
|
|
|
| func TestNewFromConfigWithEmptyMode(t *testing.T) {
|
| cfg := Config{}
|
| cache := NewFromConfig[string](cfg)
|
|
|
|
|
| assert.Equal(t, "noop", cache.GetType())
|
|
|
|
|
| ctx := context.Background()
|
| _, err := cache.Get(ctx, "test")
|
| assert.Error(t, err)
|
| assert.ErrorIs(t, err, ErrCacheNotConfigured)
|
| }
|
|
|
| func TestNewFromConfigWithInvalidMode(t *testing.T) {
|
| cfg := Config{
|
| Mode: "invalid-mode",
|
| }
|
| cache := NewFromConfig[string](cfg)
|
|
|
|
|
| assert.Equal(t, "noop", cache.GetType())
|
|
|
|
|
| ctx := context.Background()
|
| _, err := cache.Get(ctx, "test")
|
| assert.Error(t, err)
|
| assert.ErrorIs(t, err, ErrCacheNotConfigured)
|
| }
|
|
|