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

133 lines
2.7 KiB
Go

/*
Copyright IBM Corp. 2017 All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package channel
import (
"path/filepath"
"testing"
cb "github.com/hyperledger/fabric-protos-go/common"
"github.com/hyperledger/fabric/internal/peer/common"
"github.com/stretchr/testify/require"
)
const mockChannel = "mockChannel"
func TestUpdateChannel(t *testing.T) {
InitMSP()
resetFlags()
dir := t.TempDir()
configtxFile := filepath.Join(dir, mockChannel)
if _, err := createTxFile(configtxFile, cb.HeaderType_CONFIG_UPDATE, mockChannel); err != nil {
t.Fatalf("couldn't create tx file")
}
signer, err := common.GetDefaultSigner()
if err != nil {
t.Fatalf("Get default signer error: %v", err)
}
mockCF := &ChannelCmdFactory{
BroadcastFactory: mockBroadcastClientFactory,
Signer: signer,
DeliverClient: &mockDeliverClient{},
}
cmd := updateCmd(mockCF)
AddFlags(cmd)
args := []string{"-c", mockChannel, "-f", configtxFile, "-o", "localhost:7050"}
cmd.SetArgs(args)
require.NoError(t, cmd.Execute())
}
func TestUpdateChannelMissingConfigTxFlag(t *testing.T) {
InitMSP()
resetFlags()
signer, err := common.GetDefaultSigner()
if err != nil {
t.Fatalf("Get default signer error: %v", err)
}
mockCF := &ChannelCmdFactory{
BroadcastFactory: mockBroadcastClientFactory,
Signer: signer,
DeliverClient: &mockDeliverClient{},
}
cmd := updateCmd(mockCF)
AddFlags(cmd)
args := []string{"-c", mockChannel, "-o", "localhost:7050"}
cmd.SetArgs(args)
require.Error(t, cmd.Execute())
}
func TestUpdateChannelMissingConfigTxFile(t *testing.T) {
InitMSP()
resetFlags()
signer, err := common.GetDefaultSigner()
if err != nil {
t.Fatalf("Get default signer error: %v", err)
}
mockCF := &ChannelCmdFactory{
BroadcastFactory: mockBroadcastClientFactory,
Signer: signer,
DeliverClient: &mockDeliverClient{},
}
cmd := updateCmd(mockCF)
AddFlags(cmd)
args := []string{"-c", mockChannel, "-f", "Non-existent", "-o", "localhost:7050"}
cmd.SetArgs(args)
require.Error(t, cmd.Execute())
}
func TestUpdateChannelMissingChannelID(t *testing.T) {
InitMSP()
resetFlags()
dir := t.TempDir()
configtxFile := filepath.Join(dir, mockChannel)
if _, err := createTxFile(configtxFile, cb.HeaderType_CONFIG_UPDATE, mockChannel); err != nil {
t.Fatalf("couldn't create tx file")
}
signer, err := common.GetDefaultSigner()
if err != nil {
t.Fatalf("Get default signer error: %v", err)
}
mockCF := &ChannelCmdFactory{
BroadcastFactory: mockBroadcastClientFactory,
Signer: signer,
DeliverClient: &mockDeliverClient{},
}
cmd := updateCmd(mockCF)
AddFlags(cmd)
args := []string{"-f", configtxFile, "-o", "localhost:7050"}
cmd.SetArgs(args)
require.Error(t, cmd.Execute())
}