github.com/Finschia/finschia-sdk@v0.48.1/store/streaming/constructor_test.go (about)

     1  package streaming
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	"github.com/Finschia/finschia-sdk/codec"
     9  	codecTypes "github.com/Finschia/finschia-sdk/codec/types"
    10  	"github.com/Finschia/finschia-sdk/store/streaming/file"
    11  	"github.com/Finschia/finschia-sdk/store/types"
    12  	sdk "github.com/Finschia/finschia-sdk/types"
    13  )
    14  
    15  type fakeOptions struct{}
    16  
    17  func (f *fakeOptions) Get(string) interface{} { return nil }
    18  
    19  var (
    20  	mockOptions       = new(fakeOptions)
    21  	mockKeys          = []types.StoreKey{sdk.NewKVStoreKey("mockKey1"), sdk.NewKVStoreKey("mockKey2")}
    22  	interfaceRegistry = codecTypes.NewInterfaceRegistry()
    23  	testMarshaller    = codec.NewProtoCodec(interfaceRegistry)
    24  )
    25  
    26  func TestStreamingServiceConstructor(t *testing.T) {
    27  	_, err := NewServiceConstructor("unexpectedName")
    28  	require.NotNil(t, err)
    29  
    30  	constructor, err := NewServiceConstructor("file")
    31  	require.Nil(t, err)
    32  	var expectedType ServiceConstructor
    33  	require.IsType(t, expectedType, constructor)
    34  
    35  	serv, err := constructor(mockOptions, mockKeys, testMarshaller)
    36  	require.Nil(t, err)
    37  	require.IsType(t, &file.StreamingService{}, serv)
    38  	listeners := serv.Listeners()
    39  	for _, key := range mockKeys {
    40  		_, ok := listeners[key]
    41  		require.True(t, ok)
    42  	}
    43  }