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 }