github.com/kaituanwang/hyperledger@v2.0.1+incompatible/common/genesis/genesis_test.go (about)

     1  /*
     2  Copyright IBM Corp. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package genesis
     8  
     9  import (
    10  	"testing"
    11  
    12  	"github.com/gogo/protobuf/proto"
    13  	cb "github.com/hyperledger/fabric-protos-go/common"
    14  	"github.com/hyperledger/fabric/protoutil"
    15  	"github.com/stretchr/testify/assert"
    16  )
    17  
    18  func TestFactory(t *testing.T) {
    19  	impl := NewFactoryImpl(protoutil.NewConfigGroup())
    20  	block := impl.Block("testchannelid")
    21  
    22  	t.Run("test for transaction id", func(t *testing.T) {
    23  		configEnv, _ := protoutil.ExtractEnvelope(block, 0)
    24  		configEnvPayload, _ := protoutil.UnmarshalPayload(configEnv.Payload)
    25  		configEnvPayloadChannelHeader, _ := protoutil.UnmarshalChannelHeader(configEnvPayload.GetHeader().ChannelHeader)
    26  		assert.NotEmpty(t, configEnvPayloadChannelHeader.TxId, "tx_id of configuration transaction should not be empty")
    27  	})
    28  	t.Run("test for last config in SIGNATURES field", func(t *testing.T) {
    29  		metadata := &cb.Metadata{}
    30  		err := proto.Unmarshal(block.Metadata.Metadata[cb.BlockMetadataIndex_SIGNATURES], metadata)
    31  		assert.NoError(t, err)
    32  		ordererBlockMetadata := &cb.OrdererBlockMetadata{}
    33  		err = proto.Unmarshal(metadata.Value, ordererBlockMetadata)
    34  		assert.NoError(t, err)
    35  		assert.NotNil(t, ordererBlockMetadata.LastConfig)
    36  		assert.Equal(t, uint64(0), ordererBlockMetadata.LastConfig.Index)
    37  	})
    38  	t.Run("test for last config in LAST_CONFIG field", func(t *testing.T) {
    39  		metadata := &cb.Metadata{}
    40  		err := proto.Unmarshal(block.Metadata.Metadata[cb.BlockMetadataIndex_LAST_CONFIG], metadata)
    41  		assert.NoError(t, err)
    42  		lastConfig := &cb.LastConfig{}
    43  		err = proto.Unmarshal(metadata.Value, lastConfig)
    44  		assert.NoError(t, err)
    45  		assert.Equal(t, uint64(0), lastConfig.Index)
    46  	})
    47  }