github.com/lzy4123/fabric@v2.1.1+incompatible/orderer/consensus/etcdraft/dispatcher_test.go (about) 1 /* 2 Copyright IBM Corp. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package etcdraft_test 8 9 import ( 10 "testing" 11 12 "github.com/hyperledger/fabric-protos-go/orderer" 13 "github.com/hyperledger/fabric/common/flogging" 14 "github.com/hyperledger/fabric/orderer/consensus/etcdraft" 15 "github.com/hyperledger/fabric/orderer/consensus/etcdraft/mocks" 16 "github.com/pkg/errors" 17 "github.com/stretchr/testify/assert" 18 ) 19 20 func TestDispatchConsensus(t *testing.T) { 21 expectedRequest := &orderer.ConsensusRequest{ 22 Channel: "ignored value", 23 } 24 25 mr := &mocks.MessageReceiver{} 26 mr.On("Consensus", expectedRequest, uint64(1)).Return(nil).Once() 27 28 rg := &mocks.ReceiverGetter{} 29 rg.On("ReceiverByChain", "mychannel").Return(mr).Once() 30 rg.On("ReceiverByChain", "notmychannel").Return(nil).Once() 31 32 disp := &etcdraft.Dispatcher{ChainSelector: rg, Logger: flogging.MustGetLogger("test")} 33 34 t.Run("Channel exists", func(t *testing.T) { 35 err := disp.OnConsensus("mychannel", 1, expectedRequest) 36 assert.NoError(t, err) 37 }) 38 39 t.Run("Channel does not exist", func(t *testing.T) { 40 err := disp.OnConsensus("notmychannel", 1, expectedRequest) 41 assert.EqualError(t, err, "channel notmychannel doesn't exist") 42 }) 43 } 44 45 func TestDispatchSubmit(t *testing.T) { 46 expectedRequest := &orderer.SubmitRequest{ 47 Channel: "ignored value - success", 48 } 49 50 expectedRequestForBackendError := &orderer.SubmitRequest{ 51 Channel: "ignored value - backend error", 52 } 53 54 mr := &mocks.MessageReceiver{} 55 mr.On("Submit", expectedRequest, uint64(1)).Return(nil).Once() 56 mr.On("Submit", expectedRequestForBackendError, uint64(1)).Return(errors.New("backend error")).Once() 57 58 rg := &mocks.ReceiverGetter{} 59 rg.On("ReceiverByChain", "mychannel").Return(mr).Twice() 60 rg.On("ReceiverByChain", "notmychannel").Return(nil).Once() 61 62 disp := &etcdraft.Dispatcher{ChainSelector: rg, Logger: flogging.MustGetLogger("test")} 63 64 t.Run("Channel exists", func(t *testing.T) { 65 err := disp.OnSubmit("mychannel", 1, expectedRequest) 66 assert.NoError(t, err) 67 }) 68 69 t.Run("Channel does not exist", func(t *testing.T) { 70 err := disp.OnSubmit("notmychannel", 1, expectedRequest) 71 assert.EqualError(t, err, "channel notmychannel doesn't exist") 72 }) 73 }