From 153e0469289434ce55350f4094ee9f0ec8b6fc29 Mon Sep 17 00:00:00 2001 From: GME Date: Wed, 7 Nov 2018 09:01:07 +0100 Subject: [PATCH] TransactionTest --- .../query/ChaincodeTransactionTest.java | 119 ++++++++++++++++++ src/test/java/blockchain/query/QueryTest.java | 4 +- .../query/ChaincodeTransactionTest.class | Bin 0 -> 6364 bytes .../blockchain/query/QueryTest.class | Bin 4638 -> 4634 bytes 4 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 src/test/java/blockchain/query/ChaincodeTransactionTest.java create mode 100644 target/test-classes/blockchain/query/ChaincodeTransactionTest.class diff --git a/src/test/java/blockchain/query/ChaincodeTransactionTest.java b/src/test/java/blockchain/query/ChaincodeTransactionTest.java new file mode 100644 index 0000000..f6776b7 --- /dev/null +++ b/src/test/java/blockchain/query/ChaincodeTransactionTest.java @@ -0,0 +1,119 @@ +package blockchain.query; + +import blockchain.client.ChannelClientWrapper; +import blockchain.client.FabricClientWrapper; +import blockchain.configuration.Config; +import blockchain.user.UserContext; +import blockchain.utility.Util; +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.Logger; +import org.hyperledger.fabric.sdk.*; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +public class ChaincodeTransactionTest { + private static Logger logger = Logger.getLogger(ChaincodeTransactionTest.class); + @Test + public void TestATransaction(){ + BasicConfigurator.configure(); + + //UserContext user = Util.readUserContext(Config.ORG1,"User-org1"); + UserContext user = Util.readUserContext(Config.ORG1,Config.ADMIN); + + try{ + + String chaincode = Config.CHAINCODE_NAME; + FabricClientWrapper fabricClientWrapper = new FabricClientWrapper(user); + ChannelClientWrapper channelClientWrapper = fabricClientWrapper.createChannelClient(Config.CHANNEL_NAME); + + Channel channel = channelClientWrapper.getChannel(); + Peer peer = fabricClientWrapper.getClient().newPeer(Config.ORG_PEER,Config.ORG_PEER_URL); + EventHub eventHub = fabricClientWrapper.getClient().newEventHub("eventhub01", Config.ORG_PEER_EVENT_URL); + Orderer orderer = fabricClientWrapper.getClient().newOrderer(Config.ORDERER_NAME,Config.ORDERER_URL); + channel.addPeer(peer); + channel.addEventHub(eventHub); + channel.addOrderer(orderer); + channel.initialize(); + + /* + List args = new ArrayList<>(); + args.add("b"); + args.add("a"); + args.add("5"); + + String accountFromKey = args.get(0); + String accountToKey = args.get(1); + int amount = Integer.parseInt(args.get(2)); + + System.out.println("args0 = "+accountFromKey+" -- args1 = "+accountToKey+" -- args2 = "+amount); + */ + + + /* + String[] args = {"b","a","5"}; + + Collection responseQuery = channelClientWrapper.queryByChainCode(chaincode,"invoke",args); + for(ProposalResponse presp : responseQuery){ + ChaincodeResponse.Status status = presp.getStatus(); + if(status.getStatus()!=200){ + throw new Exception(presp.getMessage()); + } + String stringResponse = new String(presp.getChaincodeActionResponsePayload()); + logger.info("RESPONSE : "+stringResponse); + } + */ + + + + TransactionProposalRequest tpr = fabricClientWrapper.getClient().newTransactionProposalRequest(); + ChaincodeID cid = ChaincodeID.newBuilder().setName(Config.CHAINCODE_NAME).build(); + tpr.setChaincodeID(cid); + tpr.setFcn("invoke"); + tpr.setArgs(new String[]{"b","a","20"}); + + Collection responses = channel.sendTransactionProposal(tpr); + List invalid = responses.stream().filter(r -> r.isInvalid()).collect(Collectors.toList()); + if (!invalid.isEmpty()) { + invalid.forEach(response -> { + logger.error(response.getMessage()); + }); + } + + + BlockEvent.TransactionEvent event = channel.sendTransaction(responses).get(); + + event.getTransactionID(); + /* + BlockEvent.TransactionEvent event = sendTransaction(fabricClientWrapper.getClient(), channel).get(60, TimeUnit.SECONDS); + if (event.isValid()) { + logger.info("Transacion tx: " + event.getTransactionID() + " is completed."); + } else { + logger.error("Transaction tx: " + event.getTransactionID() + " is invalid."); + } + */ + + + + + //String[] args = {"a","b","5"}; + //logger.info("LENGHT : "+args.length); + //Collection responseQuery = channelClientWrapper.queryByChainCode(chaincode,"invoke",args); + //for(ProposalResponse presp : responseQuery){ + //ChaincodeResponse.Status status = presp.getStatus(); + //if(status.getStatus()!=200){ + // throw new Exception(presp.getMessage()); + //} + //String stringResponse = new String(presp.getChaincodeActionResponsePayload()); + //logger.info("RESPONSE : "+stringResponse); + //} + }catch (Exception e){ + e.printStackTrace(); + } + } +} diff --git a/src/test/java/blockchain/query/QueryTest.java b/src/test/java/blockchain/query/QueryTest.java index 98db2da..da92875 100644 --- a/src/test/java/blockchain/query/QueryTest.java +++ b/src/test/java/blockchain/query/QueryTest.java @@ -21,8 +21,8 @@ public class QueryTest { public void TestAQueryChannels() { BasicConfigurator.configure(); - //UserContext admin = Util.readUserContext(Config.ORG1,Config.ADMIN); - UserContext user = Util.readUserContext(Config.ORG1,"User-org1"); + UserContext user = Util.readUserContext(Config.ORG1,Config.ADMIN); + //UserContext user = Util.readUserContext(Config.ORG1,"User-org1"); try{ diff --git a/target/test-classes/blockchain/query/ChaincodeTransactionTest.class b/target/test-classes/blockchain/query/ChaincodeTransactionTest.class new file mode 100644 index 0000000000000000000000000000000000000000..3d75b9c6f30d193ef45a664f64285adeb3e3a840 GIT binary patch literal 6364 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 literal 0 HcmV?d00001 diff --git a/target/test-classes/blockchain/query/QueryTest.class b/target/test-classes/blockchain/query/QueryTest.class index bb3dde58eafcf4095b8b7237f0ba0103b481ad96..f0e4fddcda5355b4d746a8b21144d31ca459e955 100644 GIT binary patch delta 26 hcmbQIGD~HH11lSAVoGji-exaW1#U)(&DjE*83AqM2eJSF delta 30 lcmbQGGEZfL11lG2XmM(hZhld^;bu2h1#U*k&FKQ083B?f2=4#@