github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/state/impl_commandcontext_storage_test.go (about)

     1  /*
     2   * Copyright (c) 2023-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/istructs"
    15  )
    16  
    17  func TestCommandContextStorage(t *testing.T) {
    18  	cmdResBuilder := istructs.NewNullObjectBuilder()
    19  
    20  	wsid := istructs.NullWSID
    21  	arg := istructs.NewNullObject()
    22  	unloggedArg := istructs.NewNullObject()
    23  
    24  	wsidFunc := SimpleWSIDFunc(wsid)
    25  	argFunc := func() istructs.IObject { return arg }
    26  	unloggedArgFunc := func() istructs.IObject { return unloggedArg }
    27  	wlogOffsetFunc := func() istructs.Offset { return 42 }
    28  
    29  	s := ProvideCommandProcessorStateFactory()(context.Background(), nil, nil, wsidFunc, nil, nil, nil, nil, 1,
    30  		func() istructs.IObjectBuilder { return cmdResBuilder }, argFunc, unloggedArgFunc, wlogOffsetFunc)
    31  
    32  	kb, err := s.KeyBuilder(CommandContext, appdef.NullQName)
    33  	require.NoError(t, err)
    34  
    35  	v, err := s.MustExist(kb)
    36  	require.NoError(t, err)
    37  	require.Equal(t, int64(wsid), v.AsInt64(Field_Workspace))
    38  	require.NotNil(t, v.AsValue(Field_ArgumentObject))
    39  	require.NotNil(t, v.AsValue(Field_ArgumentUnloggedObject))
    40  	require.Equal(t, int64(42), v.AsInt64(Field_WLogOffset))
    41  
    42  }