go_study/fabric-main/internal/peer/channel/getinfo_test.go

78 lines
1.5 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package channel
import (
"testing"
"github.com/golang/protobuf/proto"
cb "github.com/hyperledger/fabric-protos-go/common"
pb "github.com/hyperledger/fabric-protos-go/peer"
"github.com/hyperledger/fabric/internal/peer/common"
"github.com/stretchr/testify/require"
)
func TestGetChannelInfo(t *testing.T) {
InitMSP()
resetFlags()
mockBlockchainInfo := &cb.BlockchainInfo{
Height: 1,
CurrentBlockHash: []byte("CurrentBlockHash"),
PreviousBlockHash: []byte("PreviousBlockHash"),
}
mockPayload, err := proto.Marshal(mockBlockchainInfo)
require.NoError(t, err)
mockResponse := &pb.ProposalResponse{
Response: &pb.Response{
Status: 200,
Payload: mockPayload,
},
Endorsement: &pb.Endorsement{},
}
signer, err := common.GetDefaultSigner()
require.NoError(t, err)
mockCF := &ChannelCmdFactory{
EndorserClient: common.GetMockEndorserClient(mockResponse, nil),
BroadcastFactory: mockBroadcastClientFactory,
Signer: signer,
}
cmd := getinfoCmd(mockCF)
AddFlags(cmd)
args := []string{"-c", mockChannel}
cmd.SetArgs(args)
require.NoError(t, cmd.Execute())
}
func TestGetChannelInfoMissingChannelID(t *testing.T) {
InitMSP()
resetFlags()
signer, err := common.GetDefaultSigner()
if err != nil {
t.Fatalf("Get default signer error: %v", err)
}
mockCF := &ChannelCmdFactory{
Signer: signer,
}
cmd := getinfoCmd(mockCF)
AddFlags(cmd)
cmd.SetArgs([]string{})
require.Error(t, cmd.Execute())
}