github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/internal/peer/snapshot/cancelrequest_test.go (about)

     1  /*
     2  Copyright hechain. All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package snapshot
     8  
     9  import (
    10  	"fmt"
    11  	"testing"
    12  
    13  	"github.com/golang/protobuf/ptypes/empty"
    14  	"github.com/hechain20/hechain/internal/peer/snapshot/mock"
    15  	"github.com/onsi/gomega/gbytes"
    16  	"github.com/stretchr/testify/require"
    17  )
    18  
    19  func TestCancelRequestCmd(t *testing.T) {
    20  	mockSigner := &mock.Signer{}
    21  	mockSigner.SignReturns([]byte("snapshot-request-signature"), nil)
    22  	mockSnapshotClient := &mock.SnapshotClient{}
    23  	mockSnapshotClient.CancelReturns(&empty.Empty{}, nil)
    24  	buffer := gbytes.NewBuffer()
    25  	mockClient := &client{mockSnapshotClient, mockSigner, buffer}
    26  
    27  	resetFlags()
    28  	cmd := cancelRequestCmd(mockClient, nil)
    29  	cmd.SetArgs([]string{"-c", "mychannel", "-b", "100"})
    30  	err := cmd.Execute()
    31  	require.NoError(t, err)
    32  	require.Equal(t, []byte("Snapshot request cancelled successfully\n"), buffer.Contents())
    33  
    34  	// error tests
    35  	mockSnapshotClient.CancelReturns(nil, fmt.Errorf("fake-cancel-error"))
    36  	require.EqualError(t, cmd.Execute(), "failed to cancel the request: fake-cancel-error")
    37  
    38  	mockSigner.SignReturns(nil, fmt.Errorf("fake-sign-error"))
    39  	require.EqualError(t, cmd.Execute(), "fake-sign-error")
    40  
    41  	mockSigner.SerializeReturns(nil, fmt.Errorf("fake-serialize-error"))
    42  	require.EqualError(t, cmd.Execute(), "fake-serialize-error")
    43  
    44  	resetFlags()
    45  	cmd.SetArgs([]string{"-b", "100"})
    46  	require.EqualError(t, cmd.Execute(), "the required parameter 'channelID' is empty. Rerun the command with -c flag")
    47  
    48  	resetFlags()
    49  	cmd.SetArgs([]string{"-c", "mychannel"})
    50  	require.EqualError(t, cmd.Execute(), "the required parameter 'blockNumber' is empty or set to 0. Rerun the command with -b flag")
    51  }