github.com/defanghe/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 }