github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/common/capabilities/orderer_test.go (about)

     1  /*
     2  Copyright hechain. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package capabilities
     8  
     9  import (
    10  	"testing"
    11  
    12  	cb "github.com/hyperledger/fabric-protos-go/common"
    13  	"github.com/stretchr/testify/require"
    14  )
    15  
    16  func TestOrdererV10(t *testing.T) {
    17  	op := NewOrdererProvider(map[string]*cb.Capability{})
    18  	require.NoError(t, op.Supported())
    19  	require.Equal(t, ordererTypeName, op.Type())
    20  	require.False(t, op.PredictableChannelTemplate())
    21  	require.False(t, op.Resubmission())
    22  	require.False(t, op.ExpirationCheck())
    23  	require.False(t, op.ConsensusTypeMigration())
    24  	require.False(t, op.UseChannelCreationPolicyAsAdmins())
    25  }
    26  
    27  func TestOrdererV11(t *testing.T) {
    28  	op := NewOrdererProvider(map[string]*cb.Capability{
    29  		OrdererV1_1: {},
    30  	})
    31  	require.NoError(t, op.Supported())
    32  	require.True(t, op.PredictableChannelTemplate())
    33  	require.True(t, op.Resubmission())
    34  	require.True(t, op.ExpirationCheck())
    35  	require.False(t, op.ConsensusTypeMigration())
    36  	require.False(t, op.UseChannelCreationPolicyAsAdmins())
    37  }
    38  
    39  func TestOrdererV142(t *testing.T) {
    40  	op := NewOrdererProvider(map[string]*cb.Capability{
    41  		OrdererV1_4_2: {},
    42  	})
    43  	require.NoError(t, op.Supported())
    44  	require.True(t, op.PredictableChannelTemplate())
    45  	require.True(t, op.Resubmission())
    46  	require.True(t, op.ExpirationCheck())
    47  	require.True(t, op.ConsensusTypeMigration())
    48  	require.False(t, op.UseChannelCreationPolicyAsAdmins())
    49  }
    50  
    51  func TestOrdererV20(t *testing.T) {
    52  	op := NewOrdererProvider(map[string]*cb.Capability{
    53  		OrdererV2_0: {},
    54  	})
    55  	require.NoError(t, op.Supported())
    56  	require.True(t, op.PredictableChannelTemplate())
    57  	require.True(t, op.UseChannelCreationPolicyAsAdmins())
    58  	require.True(t, op.Resubmission())
    59  	require.True(t, op.ExpirationCheck())
    60  	require.True(t, op.ConsensusTypeMigration())
    61  }
    62  
    63  func TestNotSupported(t *testing.T) {
    64  	op := NewOrdererProvider(map[string]*cb.Capability{
    65  		OrdererV1_1: {}, OrdererV2_0: {}, "Bogus_Not_Supported": {},
    66  	})
    67  	require.EqualError(t, op.Supported(), "Orderer capability Bogus_Not_Supported is required but not supported")
    68  }