github.com/Unheilbar/quorum@v1.0.0/eth/api_backend_test.go (about)

     1  package eth
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/ethereum/go-ethereum/core/types"
     7  	"github.com/ethereum/go-ethereum/node"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestEthAPIBackend_SubscribePendingLogsEvent(t *testing.T) {
    12  	conf := &Config{
    13  		RaftMode: false,
    14  	}
    15  	stack, err := node.New(&node.Config{})
    16  	if err != nil {
    17  		t.Fatalf("failed to create node, err = %v", err)
    18  	}
    19  	eth, err := New(stack, conf)
    20  	if err != nil {
    21  		t.Fatalf("failed to create eth service, err = %v", err)
    22  	}
    23  
    24  	b := &EthAPIBackend{
    25  		eth: eth,
    26  	}
    27  
    28  	ch := make(chan []*types.Log, 1)
    29  
    30  	_ = b.SubscribePendingLogsEvent(ch)
    31  
    32  	recipientCount := eth.ConsensusServicePendingLogsFeed().Send([]*types.Log{})
    33  
    34  	require.Zero(t, recipientCount, "not using consensus service so its event feed should not have subscribers")
    35  	require.Zero(t, len(ch), "not using consensus service so subscribed channel should not have received event")
    36  }
    37  
    38  func TestEthAPIBackend_SubscribePendingLogsEvent_SubscribesToConsensusServiceFeed(t *testing.T) {
    39  	conf := &Config{
    40  		RaftMode: true,
    41  	}
    42  	stack, err := node.New(&node.Config{})
    43  	if err != nil {
    44  		t.Fatalf("failed to create node, err = %v", err)
    45  	}
    46  	eth, err := New(stack, conf)
    47  	if err != nil {
    48  		t.Fatalf("failed to create eth service, err = %v ", err)
    49  	}
    50  
    51  	b := &EthAPIBackend{
    52  		eth: eth,
    53  	}
    54  
    55  	ch := make(chan []*types.Log, 1)
    56  
    57  	_ = b.SubscribePendingLogsEvent(ch)
    58  
    59  	recipientCount := eth.ConsensusServicePendingLogsFeed().Send([]*types.Log{})
    60  
    61  	require.NotZero(t, recipientCount, "consensus service in use so its event feed should have subscribers")
    62  	require.Equal(t, 1, len(ch), "consensus service in use so subscribed channel should have received event")
    63  }