@@ -15,11 +15,14 @@ import (
1515 "testing"
1616 "time"
1717
18+ "github.com/hyperledger/fabric-sdk-go/api/apiconfig"
1819 ca "github.com/hyperledger/fabric-sdk-go/api/apifabca"
1920
2021 client "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client"
2122 "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/identity"
2223 kvs "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/keyvaluestore"
24+ "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/peer"
25+ "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/signingmgr"
2326
2427 cryptosuite "github.com/hyperledger/fabric-sdk-go/pkg/cryptosuite/bccsp"
2528 fabricCAClient "github.com/hyperledger/fabric-sdk-go/pkg/fabric-ca-client"
@@ -172,6 +175,54 @@ func TestEnrollOrg2(t *testing.T) {
172175 }
173176}
174177
178+ func TestEnrollAndTransact (t * testing.T ) {
179+ mspID , err := testFabricConfig .MspID (org1Name )
180+ if err != nil {
181+ t .Fatalf ("GetMspId() returned error: %v" , err )
182+ }
183+ peers , err := testFabricConfig .PeersConfig (org1Name )
184+ if err != nil {
185+ t .Fatalf ("Failed to get peer config : %s" , err )
186+ }
187+ networkPeer := & apiconfig.NetworkPeer {PeerConfig : peers [0 ], MspID : mspID }
188+ testPeer , err := peer .NewPeerFromConfig (networkPeer , testFabricConfig )
189+ if err != nil {
190+ t .Fatalf ("Failed to create peer from config : %s" , err )
191+ }
192+
193+ cryptoSuiteProvider , err := cryptosuite .GetSuiteByConfig (testFabricConfig )
194+ if err != nil {
195+ t .Fatalf ("Failed getting cryptosuite from config : %s" , err )
196+ }
197+ signingManager , err := signingmgr .NewSigningManager (cryptoSuiteProvider , testFabricConfig )
198+ if err != nil {
199+ t .Fatalf ("Could not create signing manager: %s" , err )
200+ }
201+
202+ caClient , err := fabricCAClient .NewFabricCAClient (org1Name , testFabricConfig , cryptoSuiteProvider )
203+ if err != nil {
204+ t .Fatalf ("NewFabricCAClient returned error: %v" , err )
205+ }
206+
207+ key , cert , err := caClient .Enroll ("admin" , "adminpw" )
208+ if err != nil {
209+ t .Fatalf ("Enroll returned error: %v" , err )
210+ }
211+
212+ myUser := identity .NewUser ("myUser" , mspID )
213+ myUser .SetEnrollmentCertificate (cert )
214+ myUser .SetPrivateKey (key )
215+
216+ testClient := client .NewClient (testFabricConfig )
217+ testClient .SetUserContext (myUser )
218+ testClient .SetSigningManager (signingManager )
219+
220+ _ , err = testClient .QueryChannels (testPeer )
221+ if err != nil {
222+ t .Fatalf ("Failed to query with enrolled user : %s" , err )
223+ }
224+ }
225+
175226func createRandomName () string {
176227 rand .Seed (time .Now ().UnixNano ())
177228 return "user" + strconv .Itoa (rand .Intn (500000 ))
0 commit comments