github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/state/impl_subject_storage_test.go (about) 1 /* 2 * Copyright (c) 2020-present unTill Pro, Ltd. 3 */ 4 5 package state 6 7 import ( 8 "context" 9 "testing" 10 11 "github.com/stretchr/testify/require" 12 13 "github.com/voedger/voedger/pkg/appdef" 14 "github.com/voedger/voedger/pkg/iauthnz" 15 "github.com/voedger/voedger/pkg/istructs" 16 ) 17 18 func TestSubjectStorage_BasicUsage(t *testing.T) { 19 require := require.New(t) 20 principals := []iauthnz.Principal{{ 21 Kind: iauthnz.PrincipalKind_User, 22 WSID: 42, 23 Name: "john.doe@acme.com", 24 }} 25 token := "token" 26 tokenFunc := func() string { return token } 27 s := ProvideCommandProcessorStateFactory()(context.Background(), func() istructs.IAppStructs { return &nilAppStructs{} }, 28 nil, nil, nil, nil, func() []iauthnz.Principal { return principals }, tokenFunc, 1, nil, nil, nil, nil) 29 k, err := s.KeyBuilder(RequestSubject, appdef.NullQName) 30 require.NoError(err) 31 32 v, err := s.MustExist(k) 33 require.NoError(err) 34 35 require.Equal(int64(principals[0].WSID), v.AsInt64(Field_ProfileWSID)) 36 require.Equal(int32(istructs.SubjectKind_User), v.AsInt32(Field_Kind)) 37 require.Equal(principals[0].Name, v.AsString(Field_Name)) 38 require.Equal(token, v.AsString(Field_Token)) 39 }