68 lines
2.2 KiB
Go
68 lines
2.2 KiB
Go
/*
|
|
Copyright IBM Corp. All Rights Reserved.
|
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package gossip_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
gp "github.com/hyperledger/fabric-protos-go/gossip"
|
|
"github.com/hyperledger/fabric/discovery/support/gossip"
|
|
"github.com/hyperledger/fabric/discovery/support/gossip/mocks"
|
|
"github.com/hyperledger/fabric/gossip/common"
|
|
"github.com/hyperledger/fabric/gossip/discovery"
|
|
"github.com/hyperledger/fabric/gossip/protoext"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestChannelExists(t *testing.T) {
|
|
g := &mocks.Gossip{}
|
|
sup := gossip.NewDiscoverySupport(g)
|
|
require.False(t, sup.ChannelExists(""))
|
|
}
|
|
|
|
func TestPeers(t *testing.T) {
|
|
g := &mocks.Gossip{}
|
|
sup := gossip.NewDiscoverySupport(g)
|
|
p1Envelope := &gp.Envelope{
|
|
Payload: []byte{4, 5, 6},
|
|
SecretEnvelope: &gp.SecretEnvelope{
|
|
Payload: []byte{1, 2, 3},
|
|
},
|
|
}
|
|
peers := []discovery.NetworkMember{
|
|
{PKIid: common.PKIidType("p1"), Endpoint: "p1", Envelope: p1Envelope},
|
|
{PKIid: common.PKIidType("p2")},
|
|
}
|
|
g.PeersReturnsOnCall(0, peers)
|
|
g.SelfMembershipInfoReturnsOnCall(0, discovery.NetworkMember{PKIid: common.PKIidType("p0"), Endpoint: "p0"})
|
|
p1ExpectedEnvelope := &gp.Envelope{
|
|
Payload: []byte{4, 5, 6},
|
|
}
|
|
expected := discovery.Members{{PKIid: common.PKIidType("p1"), Endpoint: "p1", Envelope: p1ExpectedEnvelope}, {PKIid: common.PKIidType("p0"), Endpoint: "p0"}}
|
|
actual := sup.Peers()
|
|
require.Equal(t, expected, actual)
|
|
}
|
|
|
|
func TestPeersOfChannel(t *testing.T) {
|
|
stateInfo := &gp.GossipMessage{
|
|
Content: &gp.GossipMessage_StateInfo{
|
|
StateInfo: &gp.StateInfo{
|
|
PkiId: common.PKIidType("px"),
|
|
},
|
|
},
|
|
}
|
|
sMsg, _ := protoext.NoopSign(stateInfo)
|
|
g := &mocks.Gossip{}
|
|
g.SelfChannelInfoReturnsOnCall(0, nil)
|
|
g.SelfChannelInfoReturnsOnCall(1, sMsg)
|
|
g.PeersOfChannelReturnsOnCall(0, []discovery.NetworkMember{{PKIid: common.PKIidType("p1")}, {PKIid: common.PKIidType("p2")}})
|
|
sup := gossip.NewDiscoverySupport(g)
|
|
require.Empty(t, sup.PeersOfChannel(common.ChannelID("")))
|
|
expected := discovery.Members{{PKIid: common.PKIidType("p1")}, {PKIid: common.PKIidType("p2")}, {PKIid: common.PKIidType("px"), Envelope: sMsg.Envelope}}
|
|
require.Equal(t, expected, sup.PeersOfChannel(common.ChannelID("")))
|
|
}
|