github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/sys/it/db_cert_cache_test.go (about)

     1  /*
     2   * Copyright (c) 2021-present Sigma-Soft, Ltd.
     3   * Aleksei Ponomarev
     4   */
     5  
     6  package sys_it
     7  
     8  import (
     9  	"context"
    10  	"testing"
    11  
    12  	"github.com/stretchr/testify/require"
    13  	"github.com/voedger/voedger/pkg/istructs"
    14  	"github.com/voedger/voedger/pkg/vit"
    15  	dbcertcache "github.com/voedger/voedger/pkg/vvm/db_cert_cache"
    16  	"golang.org/x/crypto/acme/autocert"
    17  )
    18  
    19  func TestBasicUsage_db_cache(t *testing.T) {
    20  	var domain string = "test.domain.com"
    21  	ctx := context.TODO()
    22  	require := require.New(t)
    23  
    24  	vit := vit.NewVIT(t, &vit.SharedConfig_App1)
    25  	defer vit.TearDown()
    26  
    27  	storage, err := vit.IAppStorageProvider.AppStorage(istructs.AppQName_sys_router)
    28  	require.NoError(err)
    29  	require.NotNil(storage)
    30  	cache := dbcertcache.ProvideDbCache(&storage)
    31  	require.NotNil(cache)
    32  
    33  	t.Run("Write certificate to router storage, using domain name as key", func(t *testing.T) {
    34  		err = cache.Put(ctx, domain, certificateExample)
    35  		require.NoError(err)
    36  	})
    37  
    38  	t.Run("Get certificate from router storage, using domain name as key", func(t *testing.T) {
    39  		var crt []byte
    40  		crt, err = cache.Get(ctx, domain)
    41  		require.NoError(err)
    42  		require.Equal(certificateExample, crt)
    43  	})
    44  
    45  	t.Run("Delete certificate from router storage, using domain name as key", func(t *testing.T) {
    46  		err = cache.Delete(ctx, domain)
    47  		require.NoError(err)
    48  	})
    49  
    50  	t.Run("Get certificate from router storage, "+
    51  		"using domain name as key. Value must be nil. Error must be ErrCacheMiss.", func(t *testing.T) {
    52  		var crt []byte
    53  		crt, err = cache.Get(ctx, domain)
    54  		require.Nil(crt)
    55  		require.ErrorIs(err, autocert.ErrCacheMiss)
    56  	})
    57  }