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 }