From 843c6a034e1f79632400a707e583f0a8fdbab461 Mon Sep 17 00:00:00 2001 From: GME Date: Wed, 27 Mar 2019 22:01:15 +0100 Subject: [PATCH] update test --- .../TransactionTest.java} | 58 +++++++++++-------- .../blockchain/query/User/ReadUserTest.java | 5 +- .../User/RegisterUserTestNewVersion.java | 18 +++++- .../query/Wallet/QueryWalletHistory.java | 52 +++++++++++++++++ .../query/Wallet/ReadWalletTest.java | 50 ++++++++++++++++ 5 files changed, 157 insertions(+), 26 deletions(-) rename src/test/java/blockchain/query/{Wallet/QueryWalletByOwnerTrTest.java => Transaction/TransactionTest.java} (51%) create mode 100644 src/test/java/blockchain/query/Wallet/QueryWalletHistory.java create mode 100644 src/test/java/blockchain/query/Wallet/ReadWalletTest.java diff --git a/src/test/java/blockchain/query/Wallet/QueryWalletByOwnerTrTest.java b/src/test/java/blockchain/query/Transaction/TransactionTest.java similarity index 51% rename from src/test/java/blockchain/query/Wallet/QueryWalletByOwnerTrTest.java rename to src/test/java/blockchain/query/Transaction/TransactionTest.java index 4081dee..b36162c 100644 --- a/src/test/java/blockchain/query/Wallet/QueryWalletByOwnerTrTest.java +++ b/src/test/java/blockchain/query/Transaction/TransactionTest.java @@ -1,4 +1,4 @@ -package blockchain.query.Wallet; +package blockchain.query.Transaction; import blockchain.client.ChannelClientWrapper; import blockchain.client.FabricClientWrapper; @@ -13,57 +13,69 @@ import org.junit.Ignore; import org.junit.Test; import java.util.Collection; -import java.util.List; -import java.util.stream.Collectors; +import java.util.LinkedList; +import java.util.Set; @Ignore -public class QueryWalletByOwnerTrTest { +public class TransactionTest { private static Logger logger = Logger.getLogger(QueryTest.class); @Test - public void TestQueryWallet() { + public void TestQueryWalletHistory() { BasicConfigurator.configure(); + UserContext user = Util.readUserContext(Config.ORG1,"admin"); - UserContext user = Util.readUserContext(Config.ORG1,Config.ADMIN); try{ String chaincode = Config.CHAINCODE_NAME; + Collection successful = new LinkedList<>(); + Collection failed = new LinkedList<>(); + + logger.info("userContext : "+user.getName()); FabricClientWrapper fabricClientWrapper = new FabricClientWrapper(user); ChannelClientWrapper channelClientWrapper = fabricClientWrapper.createChannelClient(Config.CHANNEL_NAME); Channel channel = channelClientWrapper.getChannel(); - Peer peer = fabricClientWrapper.getClient().newPeer(Config.ORG1_PEER_0,Config.ORG1_PEER_0_URL); - EventHub eventHub = fabricClientWrapper.getClient().newEventHub("eventhub01", "grpc://93.30.148.59:87051"); Orderer orderer = fabricClientWrapper.getClient().newOrderer(Config.ORDERER_NAME,Config.ORDERER_URL); - channel.addPeer(peer); - channel.addEventHub(eventHub); channel.addOrderer(orderer); + Peer peer = fabricClientWrapper.getClient().newPeer(Config.ORG1_PEER_0,Config.ORG1_PEER_0_URL); + channel.addPeer(peer); + + channel.initialize(); + //CONTROL + logger.info("channel INIT : "+channel.isInitialized()); + for(Peer p : channel.getPeers()){ + Set channels = fabricClientWrapper.getClient().queryChannels(peer); + logger.info("channels "+channels); + } + // + TransactionProposalRequest tpr = fabricClientWrapper.getClient().newTransactionProposalRequest(); ChaincodeID cid = ChaincodeID.newBuilder().setName(Config.CHAINCODE_NAME).build(); tpr.setChaincodeID(cid); - tpr.setFcn("queryWalletsByOwner"); - tpr.setArgs(new String[]{"chef"}); + tpr.setFcn("invoke"); + tpr.setArgs(new String[]{"qerh654d5f5h46q4fdh6h65fh","qerh654d5f5h46q4fdh6h65fh2","2"}); //1 foutre to bitman + tpr.setProposalWaitTime(120000); - 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()); - }); + Collection invokePropResp = channel.sendTransactionProposal(tpr); + for(ProposalResponse response : invokePropResp){ + if (response.getStatus() == ChaincodeResponse.Status.SUCCESS) { + logger.info("Successful transaction proposal response Txid: "+response.getTransactionID()+" from peer "+response.getPeer().getName()); + successful.add(response); + } else { + failed.add(response); + } } + logger.info("Received "+invokePropResp.size()+" transaction proposal responses. Successful+verified: "+successful.size()+". Failed: "+failed.size()); - logger.info("SEND TRANSACTION"); - BlockEvent.TransactionEvent event = channel.sendTransaction(responses).get(); + BlockEvent.TransactionEvent event = channel.sendTransaction(successful).get(); logger.info("Event transaction id : "+event.getTransactionID()); //print transaction id - }catch (Exception e){ e.printStackTrace(); } - } } diff --git a/src/test/java/blockchain/query/User/ReadUserTest.java b/src/test/java/blockchain/query/User/ReadUserTest.java index 2481806..94e12ac 100644 --- a/src/test/java/blockchain/query/User/ReadUserTest.java +++ b/src/test/java/blockchain/query/User/ReadUserTest.java @@ -34,8 +34,9 @@ public class ReadUserTest { ChannelClientWrapper channelClientWrapper = ChannelClientWrapper.setupChannel(fabricClientWrapper); - //String[] args1 = {"chef"}; - String[] args1 = {"bitman"}; + //String[] args1 = {"chef"} + //String[] args1 = {"bitman"}; + String[] args1 = {"UserA"}; Collection responseQuery = channelClientWrapper.queryByChainCode(chaincode,"readUser",args1); logger.info("RESPONSE : "+responseQuery); diff --git a/src/test/java/blockchain/query/User/RegisterUserTestNewVersion.java b/src/test/java/blockchain/query/User/RegisterUserTestNewVersion.java index 474479b..05aa023 100644 --- a/src/test/java/blockchain/query/User/RegisterUserTestNewVersion.java +++ b/src/test/java/blockchain/query/User/RegisterUserTestNewVersion.java @@ -46,9 +46,25 @@ public class RegisterUserTestNewVersion { ChaincodeID cid = ChaincodeID.newBuilder().setName(Config.CHAINCODE_NAME).build(); tpr.setChaincodeID(cid); tpr.setFcn("registerUser"); - tpr.setArgs(new String[]{"UserA","UserAIdentifier","Thomas","MEUNIER",""}); //TODO + tpr.setArgs(new String[]{"UserA","Thomas","MEUNIER","0000000000","gonette"}); tpr.setProposalWaitTime(120000); + Collection invokePropResp = channel.sendTransactionProposal(tpr); + for(ProposalResponse response : invokePropResp){ + if (response.getStatus() == ChaincodeResponse.Status.SUCCESS) { + logger.info("Successful transaction proposal response Txid: "+response.getTransactionID()+" from peer "+response.getPeer().getName()); + successful.add(response); + } else { + failed.add(response); + } + } + + logger.info("Received "+invokePropResp.size()+" transaction proposal responses. Successful+verified: "+successful.size()+". Failed: "+failed.size()); + + BlockEvent.TransactionEvent event = channel.sendTransaction(successful).get(); + logger.info("Event transaction id : "+event.getTransactionID()); //print transaction id + + }catch (Exception e){ diff --git a/src/test/java/blockchain/query/Wallet/QueryWalletHistory.java b/src/test/java/blockchain/query/Wallet/QueryWalletHistory.java new file mode 100644 index 0000000..a4a529f --- /dev/null +++ b/src/test/java/blockchain/query/Wallet/QueryWalletHistory.java @@ -0,0 +1,52 @@ +package blockchain.query.Wallet; + +import blockchain.client.ChannelClientWrapper; +import blockchain.client.FabricClientWrapper; +import blockchain.configuration.Config; +import blockchain.query.QueryTest; +import blockchain.user.UserContext; +import blockchain.utility.Util; +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.Logger; +import org.hyperledger.fabric.sdk.ChaincodeResponse; +import org.hyperledger.fabric.sdk.ProposalResponse; +import org.junit.Ignore; +import org.junit.Test; + +import java.util.Collection; + +@Ignore +public class QueryWalletHistory { + private static Logger logger = Logger.getLogger(QueryTest.class); + + @Test + public void TestQueryWalletHistory() { + BasicConfigurator.configure(); + UserContext user = Util.readUserContext(Config.ORG1,"admin"); + + try{ + String chaincode = Config.CHAINCODE_NAME; + FabricClientWrapper fabricClientWrapper = new FabricClientWrapper(user); + + ChannelClientWrapper channelClientWrapper = ChannelClientWrapper.setupChannel(fabricClientWrapper); + + //String[] args1 = {"qerh654d5f5h46q4fdh6h65fh2"}; + String[] args1 = {"qerh654d5f5h46q4fdh6h65fh"}; + Collection responseQuery = channelClientWrapper.queryByChainCode(chaincode,"getHistoryForWallet",args1); + + for(ProposalResponse pres : responseQuery){ + ChaincodeResponse.Status status = pres.getStatus(); + if(status.getStatus()!=200){ + throw new Exception(pres.getMessage()); + } + String stringResponse = new String(pres.getChaincodeActionResponsePayload()); + logger.info("RESPONSE : "+stringResponse); + } + + }catch (Exception e){ + e.printStackTrace(); + } + + } + +} diff --git a/src/test/java/blockchain/query/Wallet/ReadWalletTest.java b/src/test/java/blockchain/query/Wallet/ReadWalletTest.java new file mode 100644 index 0000000..8e7aab3 --- /dev/null +++ b/src/test/java/blockchain/query/Wallet/ReadWalletTest.java @@ -0,0 +1,50 @@ +package blockchain.query.Wallet; + +import blockchain.client.ChannelClientWrapper; +import blockchain.client.FabricClientWrapper; +import blockchain.configuration.Config; +import blockchain.query.QueryTest; +import blockchain.user.UserContext; +import blockchain.utility.Util; +import org.apache.log4j.BasicConfigurator; +import org.apache.log4j.Logger; +import org.hyperledger.fabric.sdk.ChaincodeResponse; +import org.hyperledger.fabric.sdk.ProposalResponse; +import org.junit.Ignore; +import org.junit.Test; + +import java.util.Collection; + +@Ignore +public class ReadWalletTest { + private static Logger logger = Logger.getLogger(ReadWalletTest.class); + + @Test + public void TestQueryWallet() { + BasicConfigurator.configure(); + UserContext user = Util.readUserContext(Config.ORG1,"admin"); + + try{ + String chaincode = Config.CHAINCODE_NAME; + FabricClientWrapper fabricClientWrapper = new FabricClientWrapper(user); + + ChannelClientWrapper channelClientWrapper = ChannelClientWrapper.setupChannel(fabricClientWrapper); + + String[] args1 = {"qerh654d5f5h46q4fdh6h65fh2"}; + Collection responseQuery = channelClientWrapper.queryByChainCode(chaincode,"readWallet",args1); + + for(ProposalResponse pres : responseQuery){ + ChaincodeResponse.Status status = pres.getStatus(); + if(status.getStatus()!=200){ + throw new Exception(pres.getMessage()); + } + String stringResponse = new String(pres.getChaincodeActionResponsePayload()); + logger.info("RESPONSE : "+stringResponse); + } + + }catch (Exception e){ + e.printStackTrace(); + } + + } +}