go_study/fabric-main/discovery/cmd/cmd_test.go

36 lines
1.4 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package discovery_test
import (
"testing"
discovery "github.com/hyperledger/fabric/discovery/cmd"
"github.com/hyperledger/fabric/discovery/cmd/mocks"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
"gopkg.in/alecthomas/kingpin.v2"
)
func TestAddCommands(t *testing.T) {
app := kingpin.New("foo", "bar")
cli := &mocks.CommandRegistrar{}
configFunc := mock.AnythingOfType("common.CLICommand")
cli.On("Command", discovery.PeersCommand, mock.Anything, configFunc).Return(app.Command(discovery.PeersCommand, ""))
cli.On("Command", discovery.ConfigCommand, mock.Anything, configFunc).Return(app.Command(discovery.ConfigCommand, ""))
cli.On("Command", discovery.EndorsersCommand, mock.Anything, configFunc).Return(app.Command(discovery.EndorsersCommand, ""))
discovery.AddCommands(cli)
// Ensure that serve and channel flags are were configured for the sub-commands
for _, cmd := range []string{discovery.PeersCommand, discovery.ConfigCommand, discovery.EndorsersCommand} {
require.NotNil(t, app.GetCommand(cmd).GetFlag("server"))
require.NotNil(t, app.GetCommand(cmd).GetFlag("channel"))
}
// Ensure that chaincode and collection flags were called for the endorsers
require.NotNil(t, app.GetCommand(discovery.EndorsersCommand).GetFlag("chaincode"))
require.NotNil(t, app.GetCommand(discovery.EndorsersCommand).GetFlag("collection"))
}