github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/common/channelconfig/realconfig_test.go (about) 1 /* 2 Copyright hechain. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package channelconfig_test 8 9 import ( 10 "testing" 11 12 "github.com/hechain20/hechain/bccsp/sw" 13 "github.com/hechain20/hechain/common/channelconfig" 14 "github.com/hechain20/hechain/core/config/configtest" 15 "github.com/hechain20/hechain/internal/configtxgen/encoder" 16 "github.com/hechain20/hechain/internal/configtxgen/genesisconfig" 17 "github.com/hechain20/hechain/protoutil" 18 "github.com/stretchr/testify/require" 19 ) 20 21 func TestWithRealConfigtx(t *testing.T) { 22 conf := genesisconfig.Load(genesisconfig.SampleDevModeSoloProfile, configtest.GetDevConfigDir()) 23 24 gb := encoder.New(conf).GenesisBlockForChannel("foo") 25 env := protoutil.ExtractEnvelopeOrPanic(gb, 0) 26 cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore()) 27 require.NoError(t, err) 28 29 _, err = channelconfig.NewBundleFromEnvelope(env, cryptoProvider) 30 require.NoError(t, err) 31 } 32 33 func TestOrgSpecificOrdererEndpoints(t *testing.T) { 34 t.Run("Without_Capability", func(t *testing.T) { 35 conf := genesisconfig.Load(genesisconfig.SampleDevModeSoloProfile, configtest.GetDevConfigDir()) 36 conf.Orderer.Addresses = []string{"127.0.0.1:7050"} 37 conf.Capabilities = map[string]bool{"V1_3": true} 38 39 cg, err := encoder.NewChannelGroup(conf) 40 require.NoError(t, err) 41 42 cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore()) 43 require.NoError(t, err) 44 _, err = channelconfig.NewChannelConfig(cg, cryptoProvider) 45 require.EqualError(t, err, "could not create channel Orderer sub-group config: Orderer Org SampleOrg cannot contain endpoints value until V1_4_2+ capabilities have been enabled") 46 }) 47 48 t.Run("Without_Capability_NoOSNs", func(t *testing.T) { 49 conf := genesisconfig.Load(genesisconfig.SampleDevModeSoloProfile, configtest.GetDevConfigDir()) 50 conf.Capabilities = map[string]bool{"V1_3": true} 51 conf.Orderer.Organizations[0].OrdererEndpoints = nil 52 conf.Orderer.Addresses = []string{} 53 54 cg, err := encoder.NewChannelGroup(conf) 55 require.NoError(t, err) 56 57 cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore()) 58 require.NoError(t, err) 59 _, err = channelconfig.NewChannelConfig(cg, cryptoProvider) 60 require.EqualError(t, err, "Must set some OrdererAddresses") 61 }) 62 63 t.Run("With_Capability", func(t *testing.T) { 64 conf := genesisconfig.Load(genesisconfig.SampleDevModeSoloProfile, configtest.GetDevConfigDir()) 65 conf.Capabilities = map[string]bool{"V2_0": true} 66 require.NotEmpty(t, conf.Orderer.Organizations[0].OrdererEndpoints) 67 68 cg, err := encoder.NewChannelGroup(conf) 69 require.NoError(t, err) 70 71 cryptoProvider, err := sw.NewDefaultSecurityLevelWithKeystore(sw.NewDummyKeyStore()) 72 require.NoError(t, err) 73 cc, err := channelconfig.NewChannelConfig(cg, cryptoProvider) 74 require.NoError(t, err) 75 76 err = cc.Validate(cc.Capabilities()) 77 require.NoError(t, err) 78 79 require.NotEmpty(t, cc.OrdererConfig().Organizations()["SampleOrg"].Endpoints) 80 }) 81 }