github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/istructsmem/internal/vers/provide_test.go (about)

     1  /*
     2   * Copyright (c) 2021-present Sigma-Soft, Ltd.
     3   * @author: Nikolay Nikitin
     4   */
     5  
     6  package vers
     7  
     8  import (
     9  	"testing"
    10  
    11  	"github.com/stretchr/testify/require"
    12  
    13  	"github.com/voedger/voedger/pkg/istorage/mem"
    14  	istorageimpl "github.com/voedger/voedger/pkg/istorage/provider"
    15  	"github.com/voedger/voedger/pkg/istructs"
    16  )
    17  
    18  func Test_BasicUsage(t *testing.T) {
    19  	sp := istorageimpl.Provide(mem.Provide())
    20  	storage, err := sp.AppStorage(istructs.AppQName_test1_app1)
    21  	require.NoError(t, err)
    22  
    23  	versions := New()
    24  	if err := versions.Prepare(storage); err != nil {
    25  		panic(err)
    26  	}
    27  
    28  	t.Run("basic Versions methods", func(t *testing.T) {
    29  		require := require.New(t)
    30  
    31  		const (
    32  			key VersionKey   = 55
    33  			ver VersionValue = 77
    34  		)
    35  
    36  		require.Equal(UnknownVersion, versions.Get(key))
    37  
    38  		versions.Put(key, ver)
    39  		require.Equal(ver, versions.Get(key))
    40  
    41  		t.Run("must be able to load early stored versions", func(t *testing.T) {
    42  			otherVersions := New()
    43  			if err := otherVersions.Prepare(storage); err != nil {
    44  				panic(err)
    45  			}
    46  			require.Equal(ver, otherVersions.Get(key))
    47  		})
    48  	})
    49  
    50  }