github.com/dim4egster/coreth@v0.10.2/plugin/evm/message/handler_test.go (about)

     1  // (c) 2019-2021, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package message
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/dim4egster/qmallgo/ids"
    10  
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  type CounterHandler struct {
    15  	AtomicTx, EthTxs int
    16  }
    17  
    18  func (h *CounterHandler) HandleAtomicTx(ids.NodeID, AtomicTxGossip) error {
    19  	h.AtomicTx++
    20  	return nil
    21  }
    22  
    23  func (h *CounterHandler) HandleEthTxs(ids.NodeID, EthTxsGossip) error {
    24  	h.EthTxs++
    25  	return nil
    26  }
    27  
    28  func TestHandleAtomicTx(t *testing.T) {
    29  	assert := assert.New(t)
    30  
    31  	handler := CounterHandler{}
    32  	msg := AtomicTxGossip{}
    33  
    34  	err := msg.Handle(&handler, ids.EmptyNodeID)
    35  	assert.NoError(err)
    36  	assert.Equal(1, handler.AtomicTx)
    37  	assert.Zero(handler.EthTxs)
    38  }
    39  
    40  func TestHandleEthTxs(t *testing.T) {
    41  	assert := assert.New(t)
    42  
    43  	handler := CounterHandler{}
    44  	msg := EthTxsGossip{}
    45  
    46  	err := msg.Handle(&handler, ids.EmptyNodeID)
    47  	assert.NoError(err)
    48  	assert.Zero(handler.AtomicTx)
    49  	assert.Equal(1, handler.EthTxs)
    50  }
    51  
    52  func TestNoopHandler(t *testing.T) {
    53  	assert := assert.New(t)
    54  
    55  	handler := NoopMempoolGossipHandler{}
    56  
    57  	err := handler.HandleAtomicTx(ids.EmptyNodeID, AtomicTxGossip{})
    58  	assert.NoError(err)
    59  
    60  	err = handler.HandleEthTxs(ids.EmptyNodeID, EthTxsGossip{})
    61  	assert.NoError(err)
    62  }