github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/tm2/pkg/sdk/router_test.go (about) 1 package sdk 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" 9 ) 10 11 type nopTestHandler struct{} 12 13 func (nopTestHandler) Process(_ Context, _ Msg) Result { 14 return Result{} 15 } 16 17 func (nopTestHandler) Query(_ Context, _ abci.RequestQuery) abci.ResponseQuery { 18 return abci.ResponseQuery{} 19 } 20 21 func TestRouter(t *testing.T) { 22 rtr := NewRouter() 23 24 // require panic on invalid route 25 require.Panics(t, func() { 26 rtr.AddRoute("*", nopTestHandler{}) 27 }) 28 29 rtr.AddRoute("testRoute", nopTestHandler{}) 30 h := rtr.Route("testRoute") 31 require.NotNil(t, h) 32 33 // require panic on duplicate route 34 require.Panics(t, func() { 35 rtr.AddRoute("testRoute", nopTestHandler{}) 36 }) 37 }