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  }