go_study/fabric-main/orderer/consensus/etcdraft/initialization_test.go

85 lines
2.5 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package etcdraft_test
import (
"testing"
"github.com/hyperledger/fabric/bccsp/sw"
"github.com/hyperledger/fabric/common/metrics/disabled"
"github.com/hyperledger/fabric/internal/pkg/comm"
"github.com/hyperledger/fabric/orderer/common/cluster"
"github.com/hyperledger/fabric/orderer/common/localconfig"
"github.com/hyperledger/fabric/orderer/consensus/etcdraft"
"github.com/hyperledger/fabric/orderer/consensus/etcdraft/mocks"
"github.com/stretchr/testify/require"
)
func TestNewEtcdRaftConsenter(t *testing.T) {
srv, err := comm.NewGRPCServer("127.0.0.1:0", comm.ServerConfig{})
require.NoError(t, err)
defer srv.Stop()
dialer := &cluster.PredicateDialer{}
cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore())
require.NoError(t, err)
consenter, metrics := etcdraft.New(
dialer,
&localconfig.TopLevel{},
comm.ServerConfig{
SecOpts: comm.SecureOptions{
Certificate: []byte{1, 2, 3},
},
},
srv,
&mocks.ChainManager{},
&disabled.Provider{},
cryptoProvider,
)
// Assert that the certificate from the gRPC server was passed to the consenter
require.Equal(t, []byte{1, 2, 3}, consenter.Cert)
// Assert that all dependencies for the consenter were populated
require.NotNil(t, consenter.Communication)
require.NotNil(t, consenter.ChainManager)
require.NotNil(t, consenter.ChainSelector)
require.NotNil(t, consenter.Dispatcher)
require.NotNil(t, consenter.Logger)
require.NotNil(t, metrics)
}
func TestNewEtcdRaftConsenterNoSystemChannel(t *testing.T) {
srv, err := comm.NewGRPCServer("127.0.0.1:0", comm.ServerConfig{})
require.NoError(t, err)
defer srv.Stop()
dialer := &cluster.PredicateDialer{}
cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore())
require.NoError(t, err)
consenter, metrics := etcdraft.New(
dialer,
&localconfig.TopLevel{},
comm.ServerConfig{
SecOpts: comm.SecureOptions{
Certificate: []byte{1, 2, 3},
},
},
srv,
&mocks.ChainManager{},
&disabled.Provider{},
cryptoProvider,
)
// Assert that the certificate from the gRPC server was passed to the consenter
require.Equal(t, []byte{1, 2, 3}, consenter.Cert)
// Assert that all dependencies for the consenter were populated
require.NotNil(t, consenter.Communication)
require.NotNil(t, consenter.ChainManager)
require.NotNil(t, consenter.ChainSelector)
require.NotNil(t, consenter.Dispatcher)
require.NotNil(t, consenter.Logger)
require.NotNil(t, metrics)
}