From b07b6a530fc7432e5670a46505ff1a9a90ac55af Mon Sep 17 00:00:00 2001 From: GME Date: Tue, 26 Mar 2019 22:45:12 +0100 Subject: [PATCH] New Transaction Method Test --- msp/org1/admin.context | Bin 1729 -> 1398 bytes src/main/java/blockchain/utility/Util.java | 43 +++++---- .../User/RegisterUserTestNewVersion.java | 59 +++++++++++++ .../Wallet/TransactionTestNewVersion.java | 82 ++++++++++++++++++ 4 files changed, 161 insertions(+), 23 deletions(-) create mode 100644 src/test/java/blockchain/query/User/RegisterUserTestNewVersion.java create mode 100644 src/test/java/blockchain/query/Wallet/TransactionTestNewVersion.java diff --git a/msp/org1/admin.context b/msp/org1/admin.context index 2264d357f27ea10e39fb779c2a2bd6066cf61640..5eadef7c1e8363b927b5b158bc3f9a7ae36f0893 100644 GIT binary patch delta 584 zcmWlQNox~f0EQ=vRs%xOUMy+_@zR*Yq)p zGGs}St#B0zmMVsANe`=%+(0UF!sYlyJk_w8hEX4s*Qc!$TT8!fs$5 zfcbRULD(qJU^k#|4ze`G4naA&EM%X&t}ixfpbRUx_z zNhnMyO%O0*bPz$)U8wiXL{qKm<)k3=Cf&Q9ccU5+Ws5|2z9w?4Ms(Re6CE%b;51k8 z&d-C{TnRwDIGrW4nI=8QH>>eR8kL$^KtfdD`lWna0}=?ZiI@;603(i4alE3m4U}M& zq^_wJoUx5Lx}VDBDl}_5y;hLSxx>CIr${F{-K%B{n}jh=2<8(!FDw8xP^~Tm-I^~i zhynpzhAbkJl@~!Q2OK($BKt;Q)>zX#Rx=quh@20P1>to7HlQd16zS1;pDt1mm zK@kECTJmG%1n2C59>soGABt897LD!trWBRIl_j#%6cA{rgdSm~cDXC_>nk zan)vh8buM3W08v6hOq9DK);cqgAhX?VWK3mxU=fQ!j%X|5r}eKwYZDO)chDyiKHk$ zo<=Ho&E1EuX<&d*GU`ag6@?i(hK<6>Y|1a$Bp%}Y5i)|C`c3^*6e1+ZY;^V^A}D69 za?u=!ON8Q5wCEupHc6g7bf7QyW!s5^v(IVA) z=h)Q1l0g7=G#D7x85n*unAU7L_WbEKrAZDf2%JQUj8{3R+Nbvcn+oLw&rxfyBGB;< z!{GX9jiNH7eK2wK?aq6vszbic`Kd<(cQV5#X$x{woL@Neb+V`Z!}s?y;KmmHCD*e- zjY>C*X>5RYZ~a#J{L-h@S@>Iix_T{k_v-TELh;;-$941WV9&$6aR1_s#V;4&(0I$x zp#Jo`mDh(`&;B^|a_J*B^k#WXQ!NR=K%=IKd^x9hwB2p%o;q*WuFQRQ9Z)W7kJKAg rY%4eRRsaCTj4|W(jk=~2wd#+h|6)i4bOC|w!-s<+uz{qrT(0m70P!q- diff --git a/src/main/java/blockchain/utility/Util.java b/src/main/java/blockchain/utility/Util.java index 6fe9074..2d5b550 100644 --- a/src/main/java/blockchain/utility/Util.java +++ b/src/main/java/blockchain/utility/Util.java @@ -2,6 +2,7 @@ package blockchain.utility; import blockchain.user.UserContext; +import database.user.User; import org.apache.log4j.BasicConfigurator; import org.apache.log4j.Logger; @@ -57,34 +58,30 @@ public class Util { } public static UserContext readUserContext(String affiliation, String username) { + ObjectInputStream ois = null; UserContext userContext = null; - FileInputStream fileStream = null; - ObjectInputStream in = null; - try { + try{ String filePath = "msp/" + affiliation + "/" + username + ".context"; - File file = new File(filePath); - if (file.exists()) { - fileStream = new FileInputStream(filePath); - in = new ObjectInputStream(fileStream); - userContext = (UserContext) in.readObject(); - } - } catch (IOException e) { - e.printStackTrace(); + final FileInputStream fis = new FileInputStream(filePath); + ois = new ObjectInputStream(fis); + userContext = (UserContext) ois.readObject(); + + logger.info("userContext : "+userContext.getName()); + + }catch (IOException e){ + logger.warn("error : "+e); + }catch (ClassNotFoundException e){ + logger.warn("error : "+e); } finally { - try { - if (in != null) - in.close(); - } catch (IOException e) { - e.printStackTrace(); + try{ + if(ois!=null){ + ois.close(); + } + }catch (IOException e){ + logger.warn("error : "+e); } - try { - if (fileStream != null) - fileStream.close(); - } catch (IOException e) { - e.printStackTrace(); - } - return userContext; } + return userContext; } } diff --git a/src/test/java/blockchain/query/User/RegisterUserTestNewVersion.java b/src/test/java/blockchain/query/User/RegisterUserTestNewVersion.java new file mode 100644 index 0000000..474479b --- /dev/null +++ b/src/test/java/blockchain/query/User/RegisterUserTestNewVersion.java @@ -0,0 +1,59 @@ +package blockchain.query.User; + +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.*; +import org.junit.Ignore; +import org.junit.Test; + +import java.util.Collection; +import java.util.LinkedList; + +@Ignore +public class RegisterUserTestNewVersion { + + private static Logger logger = Logger.getLogger(QueryTest.class); + + @Test + public void TestRegisterUser() { + BasicConfigurator.configure(); + UserContext user = Util.readUserContext(Config.ORG1,Config.ADMIN); + + try { + 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(); + Orderer orderer = fabricClientWrapper.getClient().newOrderer(Config.ORDERER_NAME,Config.ORDERER_URL); + channel.addOrderer(orderer); + Peer peer = fabricClientWrapper.getClient().newPeer(Config.ORG1_PEER_0,Config.ORG1_PEER_0_URL); + channel.addPeer(peer); + + + channel.initialize(); + + TransactionProposalRequest tpr = fabricClientWrapper.getClient().newTransactionProposalRequest(); + 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.setProposalWaitTime(120000); + + + + }catch (Exception e){ + e.printStackTrace(); + } + } + +} diff --git a/src/test/java/blockchain/query/Wallet/TransactionTestNewVersion.java b/src/test/java/blockchain/query/Wallet/TransactionTestNewVersion.java new file mode 100644 index 0000000..54bf30d --- /dev/null +++ b/src/test/java/blockchain/query/Wallet/TransactionTestNewVersion.java @@ -0,0 +1,82 @@ +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.*; +import org.junit.Ignore; +import org.junit.Test; + +import java.util.Collection; +import java.util.LinkedList; +import java.util.Set; + + +@Ignore +public class TransactionTestNewVersion { + private static Logger logger = Logger.getLogger(QueryTest.class); + + @Test + public void TestQueryWallet() { + BasicConfigurator.configure(); + 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(); + Orderer orderer = fabricClientWrapper.getClient().newOrderer(Config.ORDERER_NAME,Config.ORDERER_URL); + 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.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()); + + + + + }catch (Exception e){ + e.printStackTrace(); + } + } + +}