github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/baseapp/msg_service_router_test.go (about)

     1  package baseapp_test
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	fbexchaincodec "github.com/fibonacci-chain/fbc/app/codec"
     8  	"github.com/fibonacci-chain/fbc/libs/ibc-go/testing/simapp"
     9  	"github.com/fibonacci-chain/fbc/x/evm"
    10  
    11  	"github.com/fibonacci-chain/fbc/libs/tendermint/libs/log"
    12  
    13  	dbm "github.com/fibonacci-chain/fbc/libs/tm-db"
    14  	"github.com/stretchr/testify/require"
    15  
    16  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/baseapp"
    17  
    18  	"github.com/fibonacci-chain/fbc/x/evm/types/testdata"
    19  )
    20  
    21  func TestRegisterMsgService(t *testing.T) {
    22  	db := dbm.NewMemDB()
    23  
    24  	// Create an encoding config that doesn't register testdata Msg services.
    25  	codecProxy, interfaceRegistry := fbexchaincodec.MakeCodecSuit(simapp.ModuleBasics)
    26  	app := baseapp.NewBaseApp("test", log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, evm.TxDecoder(codecProxy))
    27  	app.SetInterfaceRegistry(interfaceRegistry)
    28  	require.Panics(t, func() {
    29  		testdata.RegisterMsgServer(
    30  			app.MsgServiceRouter(),
    31  			testdata.MsgServerImpl{},
    32  		)
    33  	})
    34  
    35  	// Register testdata Msg services, and rerun `RegisterService`.
    36  	testdata.RegisterInterfaces(interfaceRegistry)
    37  	require.NotPanics(t, func() {
    38  		testdata.RegisterMsgServer(
    39  			app.MsgServiceRouter(),
    40  			testdata.MsgServerImpl{},
    41  		)
    42  	})
    43  }
    44  
    45  func TestRegisterMsgServiceTwice(t *testing.T) {
    46  	// Setup baseapp.
    47  	db := dbm.NewMemDB()
    48  	codecProxy, interfaceRegistry := fbexchaincodec.MakeCodecSuit(simapp.ModuleBasics)
    49  	app := baseapp.NewBaseApp("test", log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, evm.TxDecoder(codecProxy))
    50  	app.SetInterfaceRegistry(interfaceRegistry)
    51  	testdata.RegisterInterfaces(interfaceRegistry)
    52  
    53  	// First time registering service shouldn't panic.
    54  	require.NotPanics(t, func() {
    55  		testdata.RegisterMsgServer(
    56  			app.MsgServiceRouter(),
    57  			testdata.MsgServerImpl{},
    58  		)
    59  	})
    60  
    61  	// Second time should panic.
    62  	require.Panics(t, func() {
    63  		testdata.RegisterMsgServer(
    64  			app.MsgServiceRouter(),
    65  			testdata.MsgServerImpl{},
    66  		)
    67  	})
    68  }