From 57a55272ea79c0f6ffa94cdb73c340eb99a3007b Mon Sep 17 00:00:00 2001 From: GME Date: Tue, 23 Oct 2018 20:23:52 +0200 Subject: [PATCH] QueryChaincode Test Don't work, grpc Unavailable ? --- .../client/ChannelClientWrapper.java | 21 ++++++++++++ src/test/java/blockchain/query/QueryTest.java | 32 ++++++++++++++++-- .../client/ChannelClientWrapper.class | Bin 1015 -> 3060 bytes .../blockchain/configuration/Config.class | Bin 886 -> 939 bytes .../client/TestRegisterEnrollUser.class | Bin 2378 -> 2378 bytes .../blockchain/query/QueryTest.class | Bin 1784 -> 4627 bytes 6 files changed, 50 insertions(+), 3 deletions(-) diff --git a/src/main/java/blockchain/client/ChannelClientWrapper.java b/src/main/java/blockchain/client/ChannelClientWrapper.java index 5db76b1..bfd2f3b 100644 --- a/src/main/java/blockchain/client/ChannelClientWrapper.java +++ b/src/main/java/blockchain/client/ChannelClientWrapper.java @@ -1,7 +1,14 @@ package blockchain.client; +import org.hyperledger.fabric.sdk.ChaincodeID; import org.hyperledger.fabric.sdk.Channel; +import org.hyperledger.fabric.sdk.ProposalResponse; +import org.hyperledger.fabric.sdk.QueryByChaincodeRequest; +import org.hyperledger.fabric.sdk.exception.InvalidArgumentException; +import org.hyperledger.fabric.sdk.exception.ProposalException; + +import java.util.Collection; public class ChannelClientWrapper { private String name; @@ -25,4 +32,18 @@ public class ChannelClientWrapper { this.channel=channel; this.fabricClientWrapper=fabricClientWrapper; } + + public Collection queryByChainCode(String chaincodeName,String fuctionName, String[] args) throws InvalidArgumentException, ProposalException { + QueryByChaincodeRequest request = fabricClientWrapper.getClient().newQueryProposalRequest(); + ChaincodeID chaincodeID = ChaincodeID.newBuilder().setName(chaincodeName).build(); + request.setChaincodeID(chaincodeID); + request.setFcn(fuctionName); + if(args != null){ + request.setArgs(args); + } + + Collection response = channel.queryByChaincode(request); + + return response; + } } diff --git a/src/test/java/blockchain/query/QueryTest.java b/src/test/java/blockchain/query/QueryTest.java index 2d6d74b..18b298f 100644 --- a/src/test/java/blockchain/query/QueryTest.java +++ b/src/test/java/blockchain/query/QueryTest.java @@ -1,14 +1,16 @@ 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.Peer; +import org.hyperledger.fabric.sdk.*; import org.junit.Test; +import java.util.Collection; import java.util.Set; public class QueryTest { @@ -19,9 +21,33 @@ public class QueryTest { BasicConfigurator.configure(); UserContext admin = Util.readUserContext(Config.ORG1,Config.ADMIN); try{ + String chaincode = "mycc"; FabricClientWrapper fabricClientWrapper = new FabricClientWrapper(admin); - Set channels = fabricClientWrapper.queryForChannels(); - logger.info("Channels : "+channels); + 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://vps577432.ovh.net:7053"); + Orderer orderer = fabricClientWrapper.getClient().newOrderer(Config.ORDERER_NAME,Config.ORDERER_URL); + channel.addPeer(peer); + channel.addEventHub(eventHub); + channel.addOrderer(orderer); + channel.initialize(); + + + String[] args1 = {"a"}; + + Collection responseQuery = channelClientWrapper.queryByChainCode(chaincode,"query",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/target/classes/blockchain/client/ChannelClientWrapper.class b/target/classes/blockchain/client/ChannelClientWrapper.class index a349f42cbaebbd5253f4a48a96cb91417a4ee192..f0e517c0bf1f6b3d35711331ca021d5fd9c94f42 100644 GIT binary patch literal 3060 zcmb_eT~`}b6x}x&GB8YODG0`@wUj~#9}&c=K*16~&=gugQ0qr0lOYTY6PzSfUi?kE zmPD5iKKkJA@NejH-;hnZ}!i-4X$nssc;t?YWn zG4~4$=kiX;Jft$)&6xhT%!&`cuu&Q;T9tL5Pj6}@jFFNp70C8_&UUT!>QUbEwvD{w z^Dmi(vtxL+e6I_Y%D!C|NQKz1bG}SKBZ2xSfgy5e$?ZO(LL3qpp@vp{Pt4h_U6~hn zmTLCA6&@{G8rc!J@om-eP8Lt-s_h0L-3YVVR1;5|snzpTt=LW`TXG!Btk@-&$-L$# z++@Only>e_{ZGN0Vt7U7rYA%r>%gYH)ooBY!mSh1$r_pvL zdToiocF!swm)tT-sxR=h*|EOdg<9jGsMp(aC}J+k`eUzjTq+yRX5H-Uyo}sd#V`*a z8OOd}6^~Us5zv;uH?3nC+_H*I6|j^LXF5K|7xY)hQ+%!B8y(L;OdclVprZgw z#~zA0_F=0y&~XU%r=jLk7Dj-T|DvQf@&~L{fvJe%xT3;nFaku&jfxU@5V6r}Bs8<; zJ~te@@X#w(kJviTGA(ewC48fd&H>{odD8DS2PU*rb;!o&w`TV1=)SkQ5^Q9l-i;vF z*e1~LTHpDBY_P1KQ#u!I>5Aynutt@ORof}Z`$aul>1({MysTrC%NCo+FfLEj-J41%Uw^_NrLbd(-p|R ztPk6s;g$`*v%l!SGA1l$=3prm(%~b65~^?@IxE3n%7tr9wse79WE8F{uq*B~wyG}v zXaRA=WEbNqCL5VQvzKvh11}Erb9|L=8O}mV(?3J}=xkWU!bH%Pa)D{r--G;PZ9r#@))ES zeRLLNtKc>|Xt;~v>7fqkRXV`ey`m;RTrw2Be!yb>N`@>>n|CqDS^E4Jb*r2g7_fK^ zZ8aojlwYBa*3e!<$4pyNNm8gKm9ZK+cgO#b%kdiYT>@fBrG{%WiDW`LtoS4c(9ZQe zhIxnvhDkNW)d&fuF^O@^F-MZ{YGC$^@B%U2q(&;--%VO_HB5Azy58|MD89x~j4=>% zl#gSAsm*YwOllx`o03UNIwAhXq>3q(;AsjHRQWFM<2|lpc%RP){%Qtaan`6{nLqJg GBKa>D(Ni-3 delta 418 zcmZvYJx;?w5QV?B*ETjwaDs_L!e4+QF$E1Zcc6e%Z~>|u!ZmjQ34}z!0XPp*I>g&e zD$C8AnbrGtXWwtV&aQs`zP^E5E^`u&y_|SCEl4@bIM0~B-LFmiVwa#*u^;} zT(os^w~80bN9KZ3-4qicpSs9fLzP?AV%TFK-Pd%ZYE+Zv9rGG&r8EtPj-h(DF)-pl zlcC~J+J&Q4mo9thF?A0ecj2lRo^Z5#SyuAbH;9?Oa9QZi&aWpNrpKFALL|?W9jtQ=e z`rTOIgs^OFo=RheiH-zL2}_~O|FZc&_XO$;_(f@@3(z10{~(rqCD3FNUdcFCy}TeT zZf4Sr!z5D7Y^-gYxHnbY)f6}*tk^{bDC#?e)q&warc9O_6>60UoKHU|r44M(9_hQn z>&AEYx7Xuvls*h4s&M#PAecQl^P39R;DX>Waj?#gz&}~Hm^ADRxV2Z%+(xRb9%FFH SHfvzLiyiFpMA&0>u>T8t4nBtf delta 284 zcmXw!F-`(O7=_=z3+#j?SV5(zfFc44=mjRb6D5IJGK5&}4ZMPtH8FbwS}R)%4#0sd zER2uc(7gQr_ujle^BMe98vDQR9e_tXRN><)z;%G$M`QYSBPb>AX`;{lbV_JLB8M#>12cmF122OhgD8U#gA{`>gEEk%#URFD$RN&O!63ol!63lbV_JLB8M$612Y3Z122OBgD8U_gA{`hgEE5%gBFly$RNgG!644y!63nq#30F# a1C;G#kYng!kYVU$kY$+2pg4IR#~J`>)(V;c diff --git a/target/test-classes/blockchain/query/QueryTest.class b/target/test-classes/blockchain/query/QueryTest.class index 471931668681cc36dc65f6acea03567c85826225..fdea080a0a09d0eca6d918f90fa7fd0a28cb612f 100644 GIT binary patch literal 4627 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