github.com/anchore/syft@v1.38.2/internal/cache/memory_test.go (about)

     1  package cache
     2  
     3  import (
     4  	"io"
     5  	"strings"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/stretchr/testify/require"
    10  
    11  	"github.com/anchore/syft/internal"
    12  )
    13  
    14  func Test_NewInMemory(t *testing.T) {
    15  	man := NewInMemory(time.Hour)
    16  
    17  	cacheName := "test"
    18  	cacheVersion := "v1"
    19  	cache := man.GetCache(cacheName, cacheVersion)
    20  
    21  	cacheKey := "test-key"
    22  	contentsValue := "some contents to cache"
    23  
    24  	err := cache.Write(cacheKey, strings.NewReader(contentsValue))
    25  	require.NoError(t, err)
    26  
    27  	rdr, err := cache.Read(cacheKey)
    28  	require.NoError(t, err)
    29  	defer internal.CloseAndLogError(rdr, cacheKey)
    30  
    31  	contents, err := io.ReadAll(rdr)
    32  	require.NoError(t, err)
    33  	require.Equal(t, contentsValue, string(contents))
    34  
    35  	_, err = cache.Read("otherKey")
    36  	require.ErrorIs(t, err, errNotFound)
    37  }