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 }