private void QueryChaincodeForExpectedValue(HFClient client, Channel channel, string expect, ChaincodeID chaincdeID) { Util.COut("Now query chaincode {0} on channel {1} for the value of b expecting to see: {2}", chaincdeID, channel.Name, expect); QueryByChaincodeRequest queryByChaincodeRequest = client.NewQueryProposalRequest(); queryByChaincodeRequest.SetArgs("b".ToBytes()); // test using bytes as args. End2end uses Strings. queryByChaincodeRequest.SetFcn("query"); queryByChaincodeRequest.ChaincodeID = chaincdeID; List <ProposalResponse> queryProposals; queryProposals = channel.QueryByChaincode(queryByChaincodeRequest); foreach (ProposalResponse proposalResponse in queryProposals) { if (!proposalResponse.IsVerified || proposalResponse.Status != ChaincodeResponse.ChaincodeResponseStatus.SUCCESS) { Assert.Fail($"Failed query proposal from peer {proposalResponse.Peer.Name} status: {proposalResponse.Status}. Messages: {proposalResponse.Message}. Was verified : {proposalResponse.IsVerified}"); } else { string payload = proposalResponse.ProtoProposalResponse.Response.Payload.ToStringUtf8(); Util.COut("Query payload of b from peer {0} returned {1}", proposalResponse.Peer.Name, payload); Assert.AreEqual(expect, payload, $"Failed compare on channel {channel.Name} chaincode id {chaincdeID} expected value:'{expect}', but got:'{payload}'"); } } }
// Returns the current value of b's assets private static string QueryChaincodeForCurrentValue(HFClient client, Channel channel, ChaincodeID chaincodeID) { Util.COut("Now query chaincode on channel {0} for the current value of b", channel.Name); QueryByChaincodeRequest queryByChaincodeRequest = client.NewQueryProposalRequest(); queryByChaincodeRequest.SetArgs("b"); queryByChaincodeRequest.SetFcn("query"); queryByChaincodeRequest.SetChaincodeID(chaincodeID); List <ProposalResponse> queryProposals; queryProposals = channel.QueryByChaincode(queryByChaincodeRequest); string expect = null; foreach (ProposalResponse proposalResponse in queryProposals) { if (!proposalResponse.IsVerified || proposalResponse.Status != ChaincodeResponse.ChaincodeResponseStatus.SUCCESS) { Assert.Fail($"Failed query proposal from peer {proposalResponse.Peer.Name} status: {proposalResponse.Status}. Messages: {proposalResponse.Message}. Was verified : {proposalResponse.IsVerified}"); } else { string payload = proposalResponse.ProtoProposalResponse.Response.Payload.ToStringUtf8(); Util.COut("Query payload of b from peer {0} returned {1}", proposalResponse.Peer.Name, payload); if (expect != null) { Assert.AreEqual(expect, payload); } else { expect = payload; } } } return(expect); }