github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/istructsmem/qrename/provide_test.go (about) 1 /* 2 * Copyright (c) 2021-present Sigma-Soft, Ltd. 3 * @author: Nikolay Nikitin 4 */ 5 6 package qrename 7 8 import ( 9 "testing" 10 11 "github.com/stretchr/testify/require" 12 13 "github.com/voedger/voedger/pkg/appdef" 14 "github.com/voedger/voedger/pkg/istructsmem/internal/qnames" 15 "github.com/voedger/voedger/pkg/istructsmem/internal/teststore" 16 "github.com/voedger/voedger/pkg/istructsmem/internal/vers" 17 ) 18 19 func TestRenameQName(t *testing.T) { 20 21 require := require.New(t) 22 23 oldQName := appdef.NewQName("test", "old") 24 newQName := appdef.NewQName("test", "new") 25 26 storage := teststore.NewStorage() 27 28 t.Run("prepare storage with old QName", func(t *testing.T) { 29 versions := vers.New() 30 err := versions.Prepare(storage) 31 require.NoError(err) 32 33 adb := appdef.New() 34 adb.AddPackage("test", "test.com/test") 35 36 _ = adb.AddObject(oldQName) 37 appDef, err := adb.Build() 38 require.NoError(err) 39 40 names := qnames.New() 41 err = names.Prepare(storage, versions, appDef, nil) 42 require.NoError(err) 43 }) 44 45 t.Run("basic usage", func(t *testing.T) { 46 err := Rename(storage, oldQName, newQName) 47 require.NoError(err) 48 }) 49 50 t.Run("check result", func(t *testing.T) { 51 versions := vers.New() 52 err := versions.Prepare(storage) 53 require.NoError(err) 54 55 names := qnames.New() 56 err = names.Prepare(storage, versions, nil, nil) 57 require.NoError(err) 58 59 t.Run("check old is deleted", func(t *testing.T) { 60 id, err := names.ID(oldQName) 61 require.ErrorIs(err, qnames.ErrNameNotFound) 62 require.Equal(qnames.NullQNameID, id) 63 }) 64 65 t.Run("check new is not null", func(t *testing.T) { 66 id, err := names.ID(newQName) 67 require.NoError(err) 68 require.Greater(id, qnames.QNameIDSysLast) 69 }) 70 }) 71 }