go_study/fabric-main/gossip/state/mocks/gossip_test.go

57 lines
1.3 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package mocks
import (
"testing"
proto "github.com/hyperledger/fabric-protos-go/gossip"
"github.com/hyperledger/fabric/gossip/api"
"github.com/hyperledger/fabric/gossip/common"
"github.com/hyperledger/fabric/gossip/discovery"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
)
func TestGossipMock(t *testing.T) {
g := GossipMock{}
mkChan := func() <-chan *proto.GossipMessage {
c := make(chan *proto.GossipMessage, 1)
c <- &proto.GossipMessage{}
return c
}
g.On("Accept", mock.Anything, false).Return(mkChan(), nil)
a, b := g.Accept(func(o interface{}) bool {
return true
}, false)
require.Nil(t, b)
require.NotNil(t, a)
require.Panics(t, func() {
g.SuspectPeers(func(identity api.PeerIdentityType) bool { return false })
})
require.Panics(t, func() {
g.Send(nil, nil)
})
require.Panics(t, func() {
g.Peers()
})
g.On("PeersOfChannel", mock.Anything).Return([]discovery.NetworkMember{})
require.Empty(t, g.PeersOfChannel(common.ChannelID("A")))
require.Panics(t, func() {
g.UpdateMetadata([]byte{})
})
require.Panics(t, func() {
g.Gossip(nil)
})
require.NotPanics(t, func() {
g.UpdateLedgerHeight(0, common.ChannelID("A"))
g.Stop()
g.JoinChan(nil, common.ChannelID("A"))
})
}