github.com/true-sqn/fabric@v2.1.1+incompatible/internal/peer/channel/update_test.go (about)

     1  /*
     2  Copyright IBM Corp. 2017 All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package channel
     8  
     9  import (
    10  	"io/ioutil"
    11  	"os"
    12  	"path/filepath"
    13  	"testing"
    14  
    15  	cb "github.com/hyperledger/fabric-protos-go/common"
    16  	"github.com/hyperledger/fabric/internal/peer/common"
    17  	"github.com/stretchr/testify/assert"
    18  )
    19  
    20  const mockChannel = "mockChannel"
    21  
    22  func TestUpdateChannel(t *testing.T) {
    23  	InitMSP()
    24  	resetFlags()
    25  
    26  	dir, err := ioutil.TempDir("/tmp", "createinvaltest-")
    27  	if err != nil {
    28  		t.Fatalf("couldn't create temp dir")
    29  	}
    30  	defer os.RemoveAll(dir) // clean up
    31  
    32  	configtxFile := filepath.Join(dir, mockChannel)
    33  	if _, err = createTxFile(configtxFile, cb.HeaderType_CONFIG_UPDATE, mockChannel); err != nil {
    34  		t.Fatalf("couldn't create tx file")
    35  	}
    36  
    37  	signer, err := common.GetDefaultSigner()
    38  	if err != nil {
    39  		t.Fatalf("Get default signer error: %v", err)
    40  	}
    41  
    42  	mockCF := &ChannelCmdFactory{
    43  		BroadcastFactory: mockBroadcastClientFactory,
    44  		Signer:           signer,
    45  		DeliverClient:    &mockDeliverClient{},
    46  	}
    47  
    48  	cmd := updateCmd(mockCF)
    49  
    50  	AddFlags(cmd)
    51  
    52  	args := []string{"-c", mockChannel, "-f", configtxFile, "-o", "localhost:7050"}
    53  	cmd.SetArgs(args)
    54  
    55  	assert.NoError(t, cmd.Execute())
    56  }
    57  
    58  func TestUpdateChannelMissingConfigTxFlag(t *testing.T) {
    59  	InitMSP()
    60  	resetFlags()
    61  
    62  	signer, err := common.GetDefaultSigner()
    63  	if err != nil {
    64  		t.Fatalf("Get default signer error: %v", err)
    65  	}
    66  
    67  	mockCF := &ChannelCmdFactory{
    68  		BroadcastFactory: mockBroadcastClientFactory,
    69  		Signer:           signer,
    70  		DeliverClient:    &mockDeliverClient{},
    71  	}
    72  
    73  	cmd := updateCmd(mockCF)
    74  
    75  	AddFlags(cmd)
    76  
    77  	args := []string{"-c", mockChannel, "-o", "localhost:7050"}
    78  	cmd.SetArgs(args)
    79  
    80  	assert.Error(t, cmd.Execute())
    81  }
    82  
    83  func TestUpdateChannelMissingConfigTxFile(t *testing.T) {
    84  	InitMSP()
    85  	resetFlags()
    86  
    87  	signer, err := common.GetDefaultSigner()
    88  	if err != nil {
    89  		t.Fatalf("Get default signer error: %v", err)
    90  	}
    91  
    92  	mockCF := &ChannelCmdFactory{
    93  		BroadcastFactory: mockBroadcastClientFactory,
    94  		Signer:           signer,
    95  		DeliverClient:    &mockDeliverClient{},
    96  	}
    97  
    98  	cmd := updateCmd(mockCF)
    99  
   100  	AddFlags(cmd)
   101  
   102  	args := []string{"-c", mockChannel, "-f", "Non-existent", "-o", "localhost:7050"}
   103  	cmd.SetArgs(args)
   104  
   105  	assert.Error(t, cmd.Execute())
   106  }
   107  
   108  func TestUpdateChannelMissingChannelID(t *testing.T) {
   109  	InitMSP()
   110  	resetFlags()
   111  
   112  	dir, err := ioutil.TempDir("/tmp", "createinvaltest-")
   113  	if err != nil {
   114  		t.Fatalf("couldn't create temp dir")
   115  	}
   116  	defer os.RemoveAll(dir) // clean up
   117  
   118  	configtxFile := filepath.Join(dir, mockChannel)
   119  	if _, err = createTxFile(configtxFile, cb.HeaderType_CONFIG_UPDATE, mockChannel); err != nil {
   120  		t.Fatalf("couldn't create tx file")
   121  	}
   122  
   123  	signer, err := common.GetDefaultSigner()
   124  	if err != nil {
   125  		t.Fatalf("Get default signer error: %v", err)
   126  	}
   127  
   128  	mockCF := &ChannelCmdFactory{
   129  		BroadcastFactory: mockBroadcastClientFactory,
   130  		Signer:           signer,
   131  		DeliverClient:    &mockDeliverClient{},
   132  	}
   133  
   134  	cmd := updateCmd(mockCF)
   135  
   136  	AddFlags(cmd)
   137  
   138  	args := []string{"-f", configtxFile, "-o", "localhost:7050"}
   139  	cmd.SetArgs(args)
   140  
   141  	assert.Error(t, cmd.Execute())
   142  }