github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/orderer/consensus/etcdraft/initialization_test.go (about)

     1  /*
     2  Copyright hechain. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package etcdraft_test
     8  
     9  import (
    10  	"testing"
    11  
    12  	"github.com/hechain20/hechain/bccsp/sw"
    13  	"github.com/hechain20/hechain/common/metrics/disabled"
    14  	"github.com/hechain20/hechain/internal/pkg/comm"
    15  	"github.com/hechain20/hechain/orderer/common/cluster"
    16  	"github.com/hechain20/hechain/orderer/common/localconfig"
    17  	"github.com/hechain20/hechain/orderer/consensus/etcdraft"
    18  	"github.com/hechain20/hechain/orderer/consensus/etcdraft/mocks"
    19  	"github.com/stretchr/testify/require"
    20  )
    21  
    22  func TestNewEtcdRaftConsenter(t *testing.T) {
    23  	srv, err := comm.NewGRPCServer("127.0.0.1:0", comm.ServerConfig{})
    24  	require.NoError(t, err)
    25  	defer srv.Stop()
    26  	dialer := &cluster.PredicateDialer{}
    27  	cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore())
    28  	require.NoError(t, err)
    29  	consenter := etcdraft.New(dialer,
    30  		&localconfig.TopLevel{},
    31  		comm.ServerConfig{
    32  			SecOpts: comm.SecureOptions{
    33  				Certificate: []byte{1, 2, 3},
    34  			},
    35  		},
    36  		srv,
    37  		&mocks.ChainManager{},
    38  		&mocks.InactiveChainRegistry{},
    39  		&disabled.Provider{},
    40  		cryptoProvider,
    41  	)
    42  
    43  	// Assert that the certificate from the gRPC server was passed to the consenter
    44  	require.Equal(t, []byte{1, 2, 3}, consenter.Cert)
    45  	// Assert that all dependencies for the consenter were populated
    46  	require.NotNil(t, consenter.Communication)
    47  	require.NotNil(t, consenter.ChainManager)
    48  	require.NotNil(t, consenter.ChainSelector)
    49  	require.NotNil(t, consenter.Dispatcher)
    50  	require.NotNil(t, consenter.Logger)
    51  }
    52  
    53  func TestNewEtcdRaftConsenterNoSystemChannel(t *testing.T) {
    54  	srv, err := comm.NewGRPCServer("127.0.0.1:0", comm.ServerConfig{})
    55  	require.NoError(t, err)
    56  	defer srv.Stop()
    57  	dialer := &cluster.PredicateDialer{}
    58  	cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore())
    59  	require.NoError(t, err)
    60  	consenter := etcdraft.New(
    61  		dialer,
    62  		&localconfig.TopLevel{},
    63  		comm.ServerConfig{
    64  			SecOpts: comm.SecureOptions{
    65  				Certificate: []byte{1, 2, 3},
    66  			},
    67  		},
    68  		srv,
    69  		&mocks.ChainManager{},
    70  		nil, // without a system channel we have InactiveChainRegistry == nil
    71  		&disabled.Provider{},
    72  		cryptoProvider,
    73  	)
    74  
    75  	// Assert that the certificate from the gRPC server was passed to the consenter
    76  	require.Equal(t, []byte{1, 2, 3}, consenter.Cert)
    77  	// Assert that all dependencies for the consenter were populated
    78  	require.NotNil(t, consenter.Communication)
    79  	require.NotNil(t, consenter.ChainManager)
    80  	require.NotNil(t, consenter.ChainSelector)
    81  	require.NotNil(t, consenter.Dispatcher)
    82  	require.NotNil(t, consenter.Logger)
    83  	require.Nil(t, consenter.InactiveChainRegistry)
    84  }