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  }