github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/common/capabilities/application_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 TestApplicationV10(t *testing.T) { 17 ap := NewApplicationProvider(map[string]*cb.Capability{}) 18 require.NoError(t, ap.Supported()) 19 } 20 21 func TestApplicationV11(t *testing.T) { 22 ap := NewApplicationProvider(map[string]*cb.Capability{ 23 ApplicationV1_1: {}, 24 }) 25 require.NoError(t, ap.Supported()) 26 require.True(t, ap.ForbidDuplicateTXIdInBlock()) 27 require.True(t, ap.V1_1Validation()) 28 } 29 30 func TestApplicationV12(t *testing.T) { 31 ap := NewApplicationProvider(map[string]*cb.Capability{ 32 ApplicationV1_2: {}, 33 }) 34 require.NoError(t, ap.Supported()) 35 require.True(t, ap.ForbidDuplicateTXIdInBlock()) 36 require.True(t, ap.V1_1Validation()) 37 require.True(t, ap.V1_2Validation()) 38 require.True(t, ap.ACLs()) 39 require.True(t, ap.CollectionUpgrade()) 40 require.True(t, ap.PrivateChannelData()) 41 } 42 43 func TestApplicationV13(t *testing.T) { 44 ap := NewApplicationProvider(map[string]*cb.Capability{ 45 ApplicationV1_3: {}, 46 }) 47 require.NoError(t, ap.Supported()) 48 require.True(t, ap.ForbidDuplicateTXIdInBlock()) 49 require.True(t, ap.V1_1Validation()) 50 require.True(t, ap.V1_2Validation()) 51 require.True(t, ap.V1_3Validation()) 52 require.True(t, ap.KeyLevelEndorsement()) 53 require.True(t, ap.ACLs()) 54 require.True(t, ap.CollectionUpgrade()) 55 require.True(t, ap.PrivateChannelData()) 56 } 57 58 func TestApplicationV142(t *testing.T) { 59 ap := NewApplicationProvider(map[string]*cb.Capability{ 60 ApplicationV1_4_2: {}, 61 }) 62 require.NoError(t, ap.Supported()) 63 require.True(t, ap.ForbidDuplicateTXIdInBlock()) 64 require.True(t, ap.V1_1Validation()) 65 require.True(t, ap.V1_2Validation()) 66 require.True(t, ap.V1_3Validation()) 67 require.True(t, ap.KeyLevelEndorsement()) 68 require.True(t, ap.ACLs()) 69 require.True(t, ap.CollectionUpgrade()) 70 require.True(t, ap.PrivateChannelData()) 71 require.True(t, ap.StorePvtDataOfInvalidTx()) 72 } 73 74 func TestApplicationV20(t *testing.T) { 75 ap := NewApplicationProvider(map[string]*cb.Capability{ 76 ApplicationV2_0: {}, 77 }) 78 require.NoError(t, ap.Supported()) 79 require.True(t, ap.ForbidDuplicateTXIdInBlock()) 80 require.True(t, ap.V1_1Validation()) 81 require.True(t, ap.V1_2Validation()) 82 require.True(t, ap.V1_3Validation()) 83 require.True(t, ap.V2_0Validation()) 84 require.True(t, ap.KeyLevelEndorsement()) 85 require.True(t, ap.ACLs()) 86 require.True(t, ap.CollectionUpgrade()) 87 require.True(t, ap.PrivateChannelData()) 88 require.True(t, ap.LifecycleV20()) 89 require.True(t, ap.StorePvtDataOfInvalidTx()) 90 } 91 92 func TestApplicationPvtDataExperimental(t *testing.T) { 93 ap := NewApplicationProvider(map[string]*cb.Capability{ 94 ApplicationPvtDataExperimental: {}, 95 }) 96 require.True(t, ap.PrivateChannelData()) 97 } 98 99 func TestHasCapability(t *testing.T) { 100 ap := NewApplicationProvider(map[string]*cb.Capability{}) 101 require.True(t, ap.HasCapability(ApplicationV1_1)) 102 require.True(t, ap.HasCapability(ApplicationV1_2)) 103 require.True(t, ap.HasCapability(ApplicationV1_3)) 104 require.True(t, ap.HasCapability(ApplicationV2_0)) 105 require.True(t, ap.HasCapability(ApplicationPvtDataExperimental)) 106 require.True(t, ap.HasCapability(ApplicationResourcesTreeExperimental)) 107 require.False(t, ap.HasCapability("default")) 108 }