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 }