@@ -65,17 +65,7 @@ var _ bool = Describe("PrivateData", func() {
65
65
)
66
66
67
67
BeforeEach (func () {
68
- testDir , network , process , orderer , allPeers = initThreeOrgsSetup ()
69
- helper = & testHelper {
70
- networkHelper : & networkHelper {
71
- Network : network ,
72
- orderer : orderer ,
73
- peers : allPeers ,
74
- testDir : testDir ,
75
- channelID : "testchannel" ,
76
- },
77
- }
78
-
68
+ testDir , network = initThreeOrgsSetup ()
79
69
legacyChaincode = nwo.Chaincode {
80
70
Name : "marblesp" ,
81
71
Version : "1.0" ,
@@ -101,12 +91,61 @@ var _ bool = Describe("PrivateData", func() {
101
91
}
102
92
})
103
93
94
+ JustBeforeEach (func () {
95
+ process , orderer , allPeers = startNetwork (network )
96
+ helper = & testHelper {
97
+ networkHelper : & networkHelper {
98
+ Network : network ,
99
+ orderer : orderer ,
100
+ peers : allPeers ,
101
+ testDir : testDir ,
102
+ channelID : "testchannel" ,
103
+ },
104
+ }
105
+ })
106
+
104
107
AfterEach (func () {
105
108
testCleanup (testDir , network , process )
106
109
})
107
110
108
- Describe ("Reconciliation" , func () {
109
- BeforeEach (func () {
111
+ Describe ("Dissemination" , func () {
112
+ When ("pulling is disabled by setting the pull retry threshold to 0" , func () {
113
+ BeforeEach (func () {
114
+ // set pull retry threshold to 0
115
+ peers := []* nwo.Peer {
116
+ network .Peer ("org1" , "peer0" ),
117
+ network .Peer ("org2" , "peer0" ),
118
+ network .Peer ("org3" , "peer0" ),
119
+ }
120
+ for _ , p := range peers {
121
+ core := network .ReadPeerConfig (p )
122
+ core .Peer .Gossip .PvtData .PullRetryThreshold = 0
123
+ network .WritePeerConfig (p , core )
124
+ }
125
+ })
126
+
127
+ JustBeforeEach (func () {
128
+ By ("deploying legacy chaincode and adding marble1" )
129
+ testChaincode = chaincode {
130
+ Chaincode : legacyChaincode ,
131
+ isLegacy : true ,
132
+ }
133
+ helper .deployChaincode (testChaincode )
134
+ helper .addMarble (testChaincode .Name ,
135
+ `{"name":"marble1", "color":"blue", "size":35, "owner":"tom", "price":99}` ,
136
+ network .Peer ("org1" , "peer0" ),
137
+ )
138
+ })
139
+
140
+ It ("disseminates private data per collections_config1" , func () {
141
+ helper .assertPvtdataPresencePerCollectionConfig1 (testChaincode .Name , "marble1" )
142
+ })
143
+ })
144
+
145
+ })
146
+
147
+ Describe ("Reconciliation and pulling" , func () {
148
+ JustBeforeEach (func () {
110
149
By ("deploying legacy chaincode and adding marble1" )
111
150
testChaincode = chaincode {
112
151
Chaincode : legacyChaincode ,
@@ -125,7 +164,7 @@ var _ bool = Describe("PrivateData", func() {
125
164
})
126
165
127
166
When ("org3 is added to collectionMarbles via chaincode upgrade with collections_config2" , func () {
128
- BeforeEach (func () {
167
+ JustBeforeEach (func () {
129
168
// collections_config2.json defines the access as follows:
130
169
// 1. collectionMarbles - Org1, Org2 and Org3 have access to this collection
131
170
// 2. collectionMarblePrivateDetails - Org2 and Org3 have access to this collection
@@ -151,22 +190,22 @@ var _ bool = Describe("PrivateData", func() {
151
190
var (
152
191
newPeer * nwo.Peer
153
192
)
154
- BeforeEach (func () {
193
+ JustBeforeEach (func () {
155
194
newPeer = network .Peer ("org1" , "peer1" )
156
195
helper .addPeer (newPeer )
157
196
allPeers = append (allPeers , newPeer )
158
197
helper .installChaincode (testChaincode , newPeer )
159
198
network .VerifyMembership (allPeers , "testchannel" , "marblesp" )
160
199
})
161
200
162
- It ("causes the new peer to receive the existing private data only for collectionMarbles" , func () {
201
+ It ("causes the new peer to pull the existing private data only for collectionMarbles" , func () {
163
202
helper .assertPvtdataPresencePerCollectionConfig1 (testChaincode .Name , "marble1" , newPeer )
164
203
})
165
204
})
166
205
}
167
206
168
207
Context ("chaincode in legacy lifecycle" , func () {
169
- BeforeEach (func () {
208
+ JustBeforeEach (func () {
170
209
testChaincode = chaincode {
171
210
Chaincode : legacyChaincode ,
172
211
isLegacy : true ,
@@ -176,7 +215,7 @@ var _ bool = Describe("PrivateData", func() {
176
215
})
177
216
178
217
Context ("chaincode is migrated from legacy to new lifecycle with same collection config" , func () {
179
- BeforeEach (func () {
218
+ JustBeforeEach (func () {
180
219
testChaincode = chaincode {
181
220
Chaincode : newLifecycleChaincode ,
182
221
isLegacy : false ,
@@ -228,7 +267,7 @@ var _ bool = Describe("PrivateData", func() {
228
267
}
229
268
230
269
Context ("chaincode in legacy lifecycle" , func () {
231
- BeforeEach (func () {
270
+ JustBeforeEach (func () {
232
271
testChaincode = chaincode {
233
272
Chaincode : legacyChaincode ,
234
273
isLegacy : true ,
@@ -238,7 +277,7 @@ var _ bool = Describe("PrivateData", func() {
238
277
})
239
278
240
279
Context ("chaincode in new lifecycle" , func () {
241
- BeforeEach (func () {
280
+ JustBeforeEach (func () {
242
281
testChaincode = chaincode {
243
282
Chaincode : newLifecycleChaincode ,
244
283
isLegacy : false ,
@@ -270,7 +309,7 @@ var _ bool = Describe("PrivateData", func() {
270
309
}
271
310
272
311
Context ("chaincode in legacy lifecycle" , func () {
273
- BeforeEach (func () {
312
+ JustBeforeEach (func () {
274
313
testChaincode = chaincode {
275
314
Chaincode : legacyChaincode ,
276
315
isLegacy : true ,
@@ -280,7 +319,7 @@ var _ bool = Describe("PrivateData", func() {
280
319
})
281
320
282
321
Context ("chaincode in new lifecycle" , func () {
283
- BeforeEach (func () {
322
+ JustBeforeEach (func () {
284
323
testChaincode = chaincode {
285
324
Chaincode : newLifecycleChaincode ,
286
325
isLegacy : false ,
@@ -292,7 +331,7 @@ var _ bool = Describe("PrivateData", func() {
292
331
})
293
332
294
333
Describe ("Collection Config Updates" , func () {
295
- BeforeEach (func () {
334
+ JustBeforeEach (func () {
296
335
By ("deploying legacy chaincode" )
297
336
testChaincode = chaincode {
298
337
Chaincode : legacyChaincode ,
@@ -302,7 +341,7 @@ var _ bool = Describe("PrivateData", func() {
302
341
})
303
342
304
343
When ("migrating a chaincode from legacy lifecycle to new lifecycle" , func () {
305
- BeforeEach (func () {
344
+ JustBeforeEach (func () {
306
345
nwo .EnableCapabilities (network , "testchannel" , "Application" , "V2_0" , orderer , allPeers ... )
307
346
newLifecycleChaincode .CollectionsConfig = collectionConfig ("short_btl_config.json" )
308
347
newLifecycleChaincode .PackageID = "test-package-id"
@@ -433,7 +472,7 @@ var _ bool = Describe("PrivateData", func() {
433
472
}
434
473
435
474
Context ("chaincode in legacy lifecycle" , func () {
436
- BeforeEach (func () {
475
+ JustBeforeEach (func () {
437
476
testChaincode = chaincode {
438
477
Chaincode : legacyChaincode ,
439
478
isLegacy : true ,
@@ -449,7 +488,7 @@ var _ bool = Describe("PrivateData", func() {
449
488
})
450
489
451
490
Context ("chaincode in new lifecycle" , func () {
452
- BeforeEach (func () {
491
+ JustBeforeEach (func () {
453
492
testChaincode = chaincode {
454
493
Chaincode : newLifecycleChaincode ,
455
494
isLegacy : false ,
@@ -468,7 +507,7 @@ var _ bool = Describe("PrivateData", func() {
468
507
469
508
})
470
509
471
- func initThreeOrgsSetup () (string , * nwo.Network , ifrit. Process , * nwo. Orderer , [] * nwo. Peer ) {
510
+ func initThreeOrgsSetup () (string , * nwo.Network ) {
472
511
var err error
473
512
testDir , err := ioutil .TempDir ("" , "e2e-pvtdata" )
474
513
Expect (err ).NotTo (HaveOccurred ())
@@ -485,8 +524,12 @@ func initThreeOrgsSetup() (string, *nwo.Network, ifrit.Process, *nwo.Orderer, []
485
524
486
525
n := nwo .New (networkConfig , testDir , client , StartPort (), components )
487
526
n .GenerateConfigTree ()
488
- n .Bootstrap ()
489
527
528
+ return testDir , n
529
+ }
530
+
531
+ func startNetwork (n * nwo.Network ) (ifrit.Process , * nwo.Orderer , []* nwo.Peer ) {
532
+ n .Bootstrap ()
490
533
networkRunner := n .NetworkGroupRunner ()
491
534
process := ifrit .Invoke (networkRunner )
492
535
Eventually (process .Ready (), n .EventuallyTimeout ).Should (BeClosed ())
@@ -504,7 +547,7 @@ func initThreeOrgsSetup() (string, *nwo.Network, ifrit.Process, *nwo.Orderer, []
504
547
By ("verifying membership" )
505
548
n .VerifyMembership (expectedPeers , "testchannel" )
506
549
507
- return testDir , n , process , orderer , expectedPeers
550
+ return process , orderer , expectedPeers
508
551
}
509
552
510
553
func testCleanup (testDir string , network * nwo.Network , process ifrit.Process ) {
@@ -734,6 +777,10 @@ func (th *testHelper) assertPvtdataPresencePerCollectionConfig2(chaincodeName, m
734
777
}
735
778
}
736
779
780
+ func (th * testHelper ) assertPvtdataPresencePerCollectionConfig5 (chaincodeName , marbleName string , peers ... * nwo.Peer ) {
781
+ th .assertPvtdataPresencePerCollectionConfig1 (chaincodeName , marbleName , peers ... )
782
+ }
783
+
737
784
// assertPresentInCollectionM asserts that the private data for given marble is present in collection
738
785
// 'readMarble' at the given peers
739
786
func (th * testHelper ) assertPresentInCollectionM (chaincodeName , marbleName string , peerList ... * nwo.Peer ) {
0 commit comments