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 }