Skip to content
This repository was archived by the owner on Apr 25, 2025. It is now read-only.

Commit 65f5a15

Browse files
committed
[FAB-10595] Fabric Selection Integration Tests
Added integration tests for the Fabric Selection service. Also, fixed some linter errors. Change-Id: Icc60989a0291d1544d57787c69e01b513279831d Signed-off-by: Bob Stasyszyn <Bob.Stasyszyn@securekey.com>
1 parent 117f2eb commit 65f5a15

File tree

3 files changed

+426
-35
lines changed

3 files changed

+426
-35
lines changed

test/integration/base_test_setup.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"github.com/hyperledger/fabric-sdk-go/pkg/util/test"
2828
"github.com/hyperledger/fabric-sdk-go/test/metadata"
2929
"github.com/hyperledger/fabric-sdk-go/third_party/github.com/hyperledger/fabric/common/cauthdsl"
30+
cb "github.com/hyperledger/fabric-sdk-go/third_party/github.com/hyperledger/fabric/protos/common"
3031
"github.com/pkg/errors"
3132
)
3233

@@ -256,13 +257,13 @@ func JoinPeersToChannel(channelID string, orgsContext []*OrgContext) error {
256257
}
257258

258259
// InstallAndInstantiateChaincode installs the given chaincode to all peers in the given orgs and instantiates it on the given channel
259-
func InstallAndInstantiateChaincode(channelID string, ccPkg *resource.CCPackage, ccID, ccVersion, ccPolicy string, orgs []*OrgContext) error {
260+
func InstallAndInstantiateChaincode(channelID string, ccPkg *resource.CCPackage, ccID, ccVersion, ccPolicy string, orgs []*OrgContext, collConfigs ...*cb.CollectionConfig) error {
260261
for _, orgCtx := range orgs {
261262
if err := InstallChaincode(orgCtx.ResMgmt, orgCtx.CtxProvider, ccPkg, ccID, ccVersion, orgCtx.Peers); err != nil {
262263
return errors.Wrapf(err, "failed to install chaincode to peers in org [%s]", orgCtx.OrgID)
263264
}
264265
}
265-
_, err := InstantiateChaincode(orgs[0].ResMgmt, channelID, ccID, ccVersion, ccPolicy)
266+
_, err := InstantiateChaincode(orgs[0].ResMgmt, channelID, ccID, ccVersion, ccPolicy, collConfigs...)
266267
return err
267268
}
268269

@@ -274,7 +275,7 @@ func InstallChaincode(resMgmt *resmgmt.Client, ctxProvider contextAPI.ClientProv
274275
}
275276

276277
// InstantiateChaincode instantiates the given chaincode to the given channel
277-
func InstantiateChaincode(resMgmt *resmgmt.Client, channelID, ccName, ccVersion string, ccPolicyStr string) (resmgmt.InstantiateCCResponse, error) {
278+
func InstantiateChaincode(resMgmt *resmgmt.Client, channelID, ccName, ccVersion string, ccPolicyStr string, collConfigs ...*cb.CollectionConfig) (resmgmt.InstantiateCCResponse, error) {
278279
ccPolicy, err := cauthdsl.FromString(ccPolicyStr)
279280
if err != nil {
280281
return resmgmt.InstantiateCCResponse{}, errors.Wrapf(err, "error creating CC policy [%s]", ccPolicyStr)
@@ -283,11 +284,12 @@ func InstantiateChaincode(resMgmt *resmgmt.Client, channelID, ccName, ccVersion
283284
return resMgmt.InstantiateCC(
284285
channelID,
285286
resmgmt.InstantiateCCRequest{
286-
Name: ccName,
287-
Path: "github.com/example_cc",
288-
Version: ccVersion,
289-
Args: ExampleCCInitArgs(),
290-
Policy: ccPolicy,
287+
Name: ccName,
288+
Path: "github.com/example_cc",
289+
Version: ccVersion,
290+
Args: ExampleCCInitArgs(),
291+
Policy: ccPolicy,
292+
CollConfig: collConfigs,
291293
},
292294
resmgmt.WithRetry(retry.DefaultResMgmtOpts),
293295
)

test/integration/fab/discoveryclient_test.go

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ import (
3131
)
3232

3333
const (
34-
peer0_Org1 = "peer0.org1.example.com"
35-
peer1_Org1 = "peer1.org1.example.com"
36-
peer0_Org2 = "peer0.org2.example.com"
34+
peer0Org1 = "peer0.org1.example.com"
35+
peer1Org1 = "peer1.org1.example.com"
36+
peer0Org2 = "peer0.org2.example.com"
3737

38-
peer0_Org1URL = "peer0.org1.example.com:7051"
39-
peer1_Org1URL = "peer1.org1.example.com:7151"
40-
peer0_Org2URL = "peer0.org2.example.com:8051"
38+
peer0Org1URL = "peer0.org1.example.com:7051"
39+
peer1Org1URL = "peer1.org1.example.com:7151"
40+
peer0Org2URL = "peer0.org2.example.com:8051"
4141

4242
adminUser = "Admin"
4343
org2Name = "Org2"
@@ -63,8 +63,8 @@ func TestDiscoveryClientPeers(t *testing.T) {
6363

6464
req := discclient.NewRequest().OfChannel(orgChannelID).AddPeersQuery()
6565

66-
peerCfg1, err := comm.NetworkPeerConfig(ctx.EndpointConfig(), peer0_Org1)
67-
require.NoErrorf(t, err, "error getting peer config for [%s]", peer0_Org1)
66+
peerCfg1, err := comm.NetworkPeerConfig(ctx.EndpointConfig(), peer0Org1)
67+
require.NoErrorf(t, err, "error getting peer config for [%s]", peer0Org1)
6868

6969
responses, err := client.Send(reqCtx, req, peerCfg1.PeerConfig)
7070
require.NoError(t, err, "error calling discover service send")
@@ -128,8 +128,8 @@ func TestDiscoveryClientLocalPeers(t *testing.T) {
128128

129129
req := discclient.NewRequest().AddLocalPeersQuery()
130130

131-
peerCfg1, err := comm.NetworkPeerConfig(ctx.EndpointConfig(), peer0_Org1)
132-
require.NoErrorf(t, err, "error getting peer config for [%s]", peer0_Org1)
131+
peerCfg1, err := comm.NetworkPeerConfig(ctx.EndpointConfig(), peer0Org1)
132+
require.NoErrorf(t, err, "error getting peer config for [%s]", peer0Org1)
133133

134134
responses, err := client.Send(reqCtx, req, peerCfg1.PeerConfig)
135135
require.NoError(t, err, "error calling discover service send")
@@ -165,20 +165,16 @@ func TestDiscoveryClientEndorsers(t *testing.T) {
165165

166166
ccVersion := "v0"
167167
ccPkg, err := packager.NewCCPackage("github.com/example_cc", "../../fixtures/testdata")
168-
if err != nil {
169-
t.Fatal(err)
170-
}
171-
172-
// TODO: Add tests with private data collections
168+
require.NoError(t, err)
173169

174170
t.Run("Policy: Org1 Only", func(t *testing.T) {
175171
ccID := integration.GenerateRandomID()
176172
err = integration.InstallAndInstantiateChaincode(orgChannelID, ccPkg, ccID, ccVersion, "OR('Org1MSP.member')", orgsContext)
177173
testEndorsers(
178174
t, mainSDK,
179175
newInterest(newCCCall(ccID)),
180-
[]string{peer0_Org1URL},
181-
[]string{peer1_Org1URL},
176+
[]string{peer0Org1URL},
177+
[]string{peer1Org1URL},
182178
)
183179
})
184180

@@ -189,7 +185,7 @@ func TestDiscoveryClientEndorsers(t *testing.T) {
189185
testEndorsers(
190186
t, mainSDK,
191187
newInterest(newCCCall(ccID)),
192-
[]string{peer0_Org2URL},
188+
[]string{peer0Org2URL},
193189
)
194190
})
195191

@@ -200,9 +196,9 @@ func TestDiscoveryClientEndorsers(t *testing.T) {
200196
testEndorsers(
201197
t, mainSDK,
202198
newInterest(newCCCall(ccID)),
203-
[]string{peer0_Org1URL},
204-
[]string{peer1_Org1URL},
205-
[]string{peer0_Org2URL},
199+
[]string{peer0Org1URL},
200+
[]string{peer1Org1URL},
201+
[]string{peer0Org2URL},
206202
)
207203
})
208204

@@ -213,8 +209,8 @@ func TestDiscoveryClientEndorsers(t *testing.T) {
213209
testEndorsers(
214210
t, mainSDK,
215211
newInterest(newCCCall(ccID)),
216-
[]string{peer0_Org1URL, peer0_Org2URL},
217-
[]string{peer1_Org1URL, peer0_Org2URL},
212+
[]string{peer0Org1URL, peer0Org2URL},
213+
[]string{peer1Org1URL, peer0Org2URL},
218214
)
219215
})
220216

@@ -229,8 +225,8 @@ func TestDiscoveryClientEndorsers(t *testing.T) {
229225
testEndorsers(
230226
t, mainSDK,
231227
newInterest(newCCCall(ccID1), newCCCall(ccID2)),
232-
[]string{peer0_Org1URL, peer0_Org2URL},
233-
[]string{peer1_Org1URL, peer0_Org2URL},
228+
[]string{peer0Org1URL, peer0Org2URL},
229+
[]string{peer1Org1URL, peer0Org2URL},
234230
)
235231
})
236232
}
@@ -244,8 +240,8 @@ func testEndorsers(t *testing.T, sdk *fabsdk.FabricSDK, interest *fabdiscovery.C
244240
client, err = discovery.New(ctx)
245241
require.NoError(t, err, "error creating discovery client")
246242

247-
peerCfg1, err := comm.NetworkPeerConfig(ctx.EndpointConfig(), peer0_Org1)
248-
require.NoErrorf(t, err, "error getting peer config for [%s]", peer0_Org1)
243+
peerCfg1, err := comm.NetworkPeerConfig(ctx.EndpointConfig(), peer0Org1)
244+
require.NoErrorf(t, err, "error getting peer config for [%s]", peer0Org1)
249245

250246
var chanResp discclient.ChannelResponse
251247
var lastErr error

0 commit comments

Comments
 (0)