func TestUpgradeCmd(t *testing.T) { InitMSP() signer, err := common.GetDefaultSigner() if err != nil { t.Fatalf("Get default signer error: %v", err) } mockResponse := &pb.ProposalResponse{ Response: &pb.Response{Status: 200}, Endorsement: &pb.Endorsement{}, } mockEndorerClient := common.GetMockEndorserClient(mockResponse, nil) mockBroadcastClient := common.GetMockBroadcastClient(nil) mockCF := &ChaincodeCmdFactory{ EndorserClient: mockEndorerClient, Signer: signer, BroadcastClient: mockBroadcastClient, } cmd := upgradeCmd(mockCF) AddFlags(cmd) args := []string{"-n", "example02", "-p", "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02", "-c", "{\"Function\":\"init\",\"Args\": [\"param\",\"1\"]}"} cmd.SetArgs(args) if err := cmd.Execute(); err != nil { t.Errorf("Run chaincode upgrade cmd error:%v", err) } }
func TestUpgradeCmdEndorseFail(t *testing.T) { InitMSP() signer, err := common.GetDefaultSigner() if err != nil { t.Fatalf("Get default signer error: %v", err) } errCode := int32(500) errMsg := "upgrade error" mockResponse := &pb.ProposalResponse{Response: &pb.Response{Status: errCode, Message: errMsg}} mockEndorerClient := common.GetMockEndorserClient(mockResponse, nil) mockBroadcastClient := common.GetMockBroadcastClient(nil) mockCF := &ChaincodeCmdFactory{ EndorserClient: mockEndorerClient, Signer: signer, BroadcastClient: mockBroadcastClient, } cmd := upgradeCmd(mockCF) AddFlags(cmd) args := []string{"-n", "example02", "-p", "github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02", "-c", "{\"Function\":\"init\",\"Args\": [\"param\",\"1\"]}"} cmd.SetArgs(args) expectErrMsg := fmt.Sprintf("Could not assemble transaction, err Proposal response was not successful, error code %d, msg %s", errCode, errMsg) if err := cmd.Execute(); err == nil { t.Errorf("Run chaincode upgrade cmd error:%v", err) } else { if err.Error() != expectErrMsg { t.Errorf("Run chaincode upgrade cmd get unexpected error: %s", err.Error()) } } }