github.com/ewagmig/fabric@v2.1.1+incompatible/gossip/state/mocks/gossip_test.go (about)

     1  /*
     2  Copyright IBM Corp. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package mocks
     8  
     9  import (
    10  	"testing"
    11  
    12  	proto "github.com/hyperledger/fabric-protos-go/gossip"
    13  	"github.com/hyperledger/fabric/gossip/api"
    14  	"github.com/hyperledger/fabric/gossip/common"
    15  	"github.com/hyperledger/fabric/gossip/discovery"
    16  	"github.com/stretchr/testify/assert"
    17  	"github.com/stretchr/testify/mock"
    18  )
    19  
    20  func TestGossipMock(t *testing.T) {
    21  	g := GossipMock{}
    22  	mkChan := func() <-chan *proto.GossipMessage {
    23  		c := make(chan *proto.GossipMessage, 1)
    24  		c <- &proto.GossipMessage{}
    25  		return c
    26  	}
    27  	g.On("Accept", mock.Anything, false).Return(mkChan(), nil)
    28  	a, b := g.Accept(func(o interface{}) bool {
    29  		return true
    30  	}, false)
    31  	assert.Nil(t, b)
    32  	assert.NotNil(t, a)
    33  	assert.Panics(t, func() {
    34  		g.SuspectPeers(func(identity api.PeerIdentityType) bool { return false })
    35  	})
    36  	assert.Panics(t, func() {
    37  		g.Send(nil, nil)
    38  	})
    39  	assert.Panics(t, func() {
    40  		g.Peers()
    41  	})
    42  	g.On("PeersOfChannel", mock.Anything).Return([]discovery.NetworkMember{})
    43  	assert.Empty(t, g.PeersOfChannel(common.ChannelID("A")))
    44  
    45  	assert.Panics(t, func() {
    46  		g.UpdateMetadata([]byte{})
    47  	})
    48  	assert.Panics(t, func() {
    49  		g.Gossip(nil)
    50  	})
    51  	assert.NotPanics(t, func() {
    52  		g.UpdateLedgerHeight(0, common.ChannelID("A"))
    53  		g.Stop()
    54  		g.JoinChan(nil, common.ChannelID("A"))
    55  	})
    56  }