...

Source file src/edge-infra.dev/pkg/f8n/warehouse/oci/cache/providers/memory/memory_test.go

Documentation: edge-infra.dev/pkg/f8n/warehouse/oci/cache/providers/memory

     1  package memory
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/google/go-containerregistry/pkg/name"
     8  	v1 "github.com/google/go-containerregistry/pkg/v1"
     9  	"github.com/google/go-containerregistry/pkg/v1/random"
    10  	"github.com/stretchr/testify/assert"
    11  	"github.com/stretchr/testify/require"
    12  
    13  	"edge-infra.dev/pkg/f8n/warehouse/oci"
    14  	"edge-infra.dev/test/fixtures"
    15  )
    16  
    17  var (
    18  	path     *fixtures.Path
    19  	shoot    oci.Artifact
    20  	redpanda oci.Artifact
    21  )
    22  
    23  func TestMain(m *testing.M) {
    24  	var err error
    25  
    26  	path, err = fixtures.Layout()
    27  	if err != nil {
    28  		panic(err)
    29  	}
    30  	shoot, err = path.Get(name.MustParseReference("shoot:latest"))
    31  	if err != nil {
    32  		panic(err)
    33  	}
    34  	redpanda, err = path.Get(name.MustParseReference("redpanda-system:latest"))
    35  	if err != nil {
    36  		panic(err)
    37  	}
    38  
    39  	os.Exit(m.Run())
    40  }
    41  
    42  func TestNew(t *testing.T) {
    43  	cache, err := New(250)
    44  	assert.NoError(t, err)
    45  	assert.NotEmpty(t, cache)
    46  }
    47  
    48  func TestCache(t *testing.T) {
    49  	cache, err := New(20)
    50  	require.NoError(t, err)
    51  	require.NotEmpty(t, cache)
    52  
    53  	var shootDigest, redpandaDigest v1.Hash
    54  	shootDigest, err = shoot.Digest()
    55  	require.NoError(t, err)
    56  	redpandaDigest, err = redpanda.Digest()
    57  	require.NoError(t, err)
    58  
    59  	cache.Add(shootDigest, shoot)
    60  	cache.Add(redpandaDigest, redpanda)
    61  
    62  	a, ok := cache.Get(shootDigest)
    63  	assert.Same(t, shoot, a)
    64  	assert.True(t, ok)
    65  	assert.True(t, cache.Exists(shootDigest))
    66  
    67  	a, ok = cache.Get(redpandaDigest)
    68  	assert.Same(t, redpanda, a)
    69  	assert.True(t, ok)
    70  	assert.True(t, cache.Exists(redpandaDigest))
    71  
    72  	img, err := random.Image(10381, 3)
    73  	require.NoError(t, err)
    74  	d, err := img.Digest()
    75  	require.NoError(t, err)
    76  
    77  	a, ok = cache.Get(d)
    78  	assert.Nil(t, a)
    79  	assert.False(t, ok)
    80  	assert.False(t, cache.Exists(d))
    81  }
    82  

View as plain text