github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/istructsmem/internal/qnames/provide_test.go (about) 1 /* 2 * Copyright (c) 2021-present Sigma-Soft, Ltd. 3 * @author: Nikolay Nikitin 4 */ 5 6 package qnames 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/istorage/mem" 15 istorageimpl "github.com/voedger/voedger/pkg/istorage/provider" 16 "github.com/voedger/voedger/pkg/istructs" 17 "github.com/voedger/voedger/pkg/istructsmem/internal/vers" 18 ) 19 20 func TestQNamesBasicUsage(t *testing.T) { 21 sp := istorageimpl.Provide(mem.Provide()) 22 storage, _ := sp.AppStorage(istructs.AppQName_test1_app1) 23 24 versions := vers.New() 25 if err := versions.Prepare(storage); err != nil { 26 panic(err) 27 } 28 29 testName := appdef.NewQName("test", "doc") 30 app := appdef.New() 31 d := app.AddCDoc(testName) 32 d.AddField("f1", appdef.DataKind_int64, false) 33 d.AddUnique(appdef.UniqueQName(testName, "f1"), []appdef.FieldName{"f1"}) 34 appDef, err := app.Build() 35 if err != nil { 36 panic(err) 37 } 38 39 resources := istructs.IResources(nil) //TODO: add test resources 40 41 names := New() 42 if err := names.Prepare(storage, versions, appDef, resources); err != nil { 43 panic(err) 44 } 45 46 require := require.New(t) 47 t.Run("basic QNames methods", func(t *testing.T) { 48 id, err := names.ID(testName) 49 require.NoError(err) 50 require.NotEqual(NullQNameID, id) 51 52 n, err := names.QName(id) 53 require.NoError(err) 54 require.Equal(testName, n) 55 56 t.Run("must be able to load early stored names", func(t *testing.T) { 57 otherVersions := vers.New() 58 if err := otherVersions.Prepare(storage); err != nil { 59 panic(err) 60 } 61 62 otherNames := New() 63 if err := otherNames.Prepare(storage, versions, nil, nil); err != nil { 64 panic(err) 65 } 66 67 id1, err := names.ID(testName) 68 require.NoError(err) 69 require.Equal(id, id1) 70 71 n1, err := names.QName(id) 72 require.NoError(err) 73 require.Equal(testName, n1) 74 }) 75 }) 76 }