85 lines
2.5 KiB
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)
|
|
}
|