@@ -34,6 +34,7 @@ import (
34
34
"github.com/hyperledger/fabric/protos/ledger/queryresult"
35
35
putils "github.com/hyperledger/fabric/protos/utils"
36
36
"github.com/spf13/viper"
37
+ "github.com/stretchr/testify/assert"
37
38
)
38
39
39
40
func TestLedgerProvider (t * testing.T ) {
@@ -42,57 +43,57 @@ func TestLedgerProvider(t *testing.T) {
42
43
numLedgers := 10
43
44
provider := testutilNewProvider (t )
44
45
existingLedgerIDs , err := provider .List ()
45
- testutil . AssertNoError (t , err , "" )
46
- testutil . AssertEquals (t , len ( existingLedgerIDs ) , 0 )
46
+ assert . NoError (t , err )
47
+ assert . Len (t , existingLedgerIDs , 0 )
47
48
genesisBlocks := make ([]* common.Block , numLedgers )
48
49
for i := 0 ; i < numLedgers ; i ++ {
49
50
genesisBlock , _ := configtxtest .MakeGenesisBlock (constructTestLedgerID (i ))
50
51
genesisBlocks [i ] = genesisBlock
51
52
provider .Create (genesisBlock )
52
53
}
53
54
existingLedgerIDs , err = provider .List ()
54
- testutil . AssertNoError (t , err , "" )
55
- testutil . AssertEquals (t , len ( existingLedgerIDs ) , numLedgers )
55
+ assert . NoError (t , err )
56
+ assert . Len (t , existingLedgerIDs , numLedgers )
56
57
57
58
provider .Close ()
58
59
59
60
provider = testutilNewProvider (t )
60
61
defer provider .Close ()
61
62
ledgerIds , _ := provider .List ()
62
- testutil . AssertEquals (t , len ( ledgerIds ) , numLedgers )
63
+ assert . Len (t , ledgerIds , numLedgers )
63
64
t .Logf ("ledgerIDs=%#v" , ledgerIds )
64
65
for i := 0 ; i < numLedgers ; i ++ {
65
- testutil . AssertEquals (t , ledgerIds [ i ], constructTestLedgerID (i ))
66
+ assert . Equal (t , constructTestLedgerID (i ), ledgerIds [ i ] )
66
67
}
67
68
for i := 0 ; i < numLedgers ; i ++ {
68
69
ledgerid := constructTestLedgerID (i )
69
70
status , _ := provider .Exists (ledgerid )
70
- testutil . AssertEquals (t , status , true )
71
+ assert . True (t , status )
71
72
ledger , err := provider .Open (ledgerid )
72
- testutil . AssertNoError (t , err , "" )
73
+ assert . NoError (t , err )
73
74
bcInfo , err := ledger .GetBlockchainInfo ()
74
75
ledger .Close ()
75
- testutil . AssertNoError (t , err , "" )
76
- testutil . AssertEquals (t , bcInfo . Height , uint64 (1 ))
76
+ assert . NoError (t , err )
77
+ assert . Equal (t , uint64 (1 ), bcInfo . Height )
77
78
78
79
// check that the genesis block was persisted in the provider's db
79
80
s := provider .(* Provider ).idStore
80
81
gbBytesInProviderStore , err := s .db .Get (s .encodeLedgerKey (ledgerid ))
81
- testutil . AssertNoError (t , err , "" )
82
+ assert . NoError (t , err )
82
83
gb := & common.Block {}
83
- testutil . AssertNoError (t , proto .Unmarshal (gbBytesInProviderStore , gb ), "" )
84
- testutil . AssertEquals (t , gb , genesisBlocks [i ])
84
+ assert . NoError (t , proto .Unmarshal (gbBytesInProviderStore , gb ))
85
+ assert . True (t , proto . Equal ( gb , genesisBlocks [i ]), "proto messages are not equal" )
85
86
}
86
87
gb , _ := configtxtest .MakeGenesisBlock (constructTestLedgerID (2 ))
87
88
_ , err = provider .Create (gb )
88
- testutil . AssertEquals (t , err , ErrLedgerIDExists )
89
+ assert . Equal (t , ErrLedgerIDExists , err )
89
90
90
91
status , err := provider .Exists (constructTestLedgerID (numLedgers ))
91
- testutil . AssertNoError (t , err , "Failed to check for ledger existence" )
92
- testutil . AssertEquals (t , false , status )
92
+ assert . NoError (t , err , "Failed to check for ledger existence" )
93
+ assert . Equal (t , status , false )
93
94
94
95
_ , err = provider .Open (constructTestLedgerID (numLedgers ))
95
- testutil . AssertEquals (t , err , ErrNonExistingLedgerID )
96
+ assert . Equal (t , ErrNonExistingLedgerID , err )
96
97
}
97
98
98
99
func TestRecovery (t * testing.T ) {
@@ -115,10 +116,10 @@ func TestRecovery(t *testing.T) {
115
116
provider = testutilNewProvider (t )
116
117
// verify the underecoveryflag and open the ledger
117
118
flag , err := provider .(* Provider ).idStore .getUnderConstructionFlag ()
118
- testutil . AssertNoError (t , err , "Failed to read the underconstruction flag" )
119
- testutil . AssertEquals (t , flag , "" )
119
+ assert . NoError (t , err , "Failed to read the underconstruction flag" )
120
+ assert . Equal (t , "" , flag )
120
121
ledger , err = provider .Open (constructTestLedgerID (1 ))
121
- testutil . AssertNoError (t , err , "Failed to open the ledger" )
122
+ assert . NoError (t , err , "Failed to open the ledger" )
122
123
ledger .Close ()
123
124
124
125
// Case 0: assume a crash happens before the genesis block of ledger 2 is committed
@@ -128,10 +129,10 @@ func TestRecovery(t *testing.T) {
128
129
129
130
// construct a new provider to invoke recovery
130
131
provider = testutilNewProvider (t )
131
- testutil . AssertNoError (t , err , "Provider failed to recover an underConstructionLedger" )
132
+ assert . NoError (t , err , "Provider failed to recover an underConstructionLedger" )
132
133
flag , err = provider .(* Provider ).idStore .getUnderConstructionFlag ()
133
- testutil . AssertNoError (t , err , "Failed to read the underconstruction flag" )
134
- testutil . AssertEquals (t , flag , "" )
134
+ assert . NoError (t , err , "Failed to read the underconstruction flag" )
135
+ assert . Equal (t , "" , flag )
135
136
136
137
}
137
138
@@ -144,20 +145,20 @@ func TestMultipleLedgerBasicRW(t *testing.T) {
144
145
for i := 0 ; i < numLedgers ; i ++ {
145
146
bg , gb := testutil .NewBlockGenerator (t , constructTestLedgerID (i ), false )
146
147
l , err := provider .Create (gb )
147
- testutil . AssertNoError (t , err , "" )
148
+ assert . NoError (t , err )
148
149
ledgers [i ] = l
149
150
txid := util .GenerateUUID ()
150
151
s , _ := l .NewTxSimulator (txid )
151
152
err = s .SetState ("ns" , "testKey" , []byte (fmt .Sprintf ("testValue_%d" , i )))
152
153
s .Done ()
153
- testutil . AssertNoError (t , err , "" )
154
+ assert . NoError (t , err )
154
155
res , err := s .GetTxSimulationResults ()
155
- testutil . AssertNoError (t , err , "" )
156
+ assert . NoError (t , err )
156
157
pubSimBytes , _ := res .GetPubSimulationBytes ()
157
158
b := bg .NextBlock ([][]byte {pubSimBytes })
158
159
err = l .CommitWithPvtData (& lgr.BlockAndPvtData {Block : b })
159
160
l .Close ()
160
- testutil . AssertNoError (t , err , "" )
161
+ assert . NoError (t , err )
161
162
}
162
163
163
164
provider .Close ()
@@ -167,16 +168,16 @@ func TestMultipleLedgerBasicRW(t *testing.T) {
167
168
ledgers = make ([]lgr.PeerLedger , numLedgers )
168
169
for i := 0 ; i < numLedgers ; i ++ {
169
170
l , err := provider .Open (constructTestLedgerID (i ))
170
- testutil . AssertNoError (t , err , "" )
171
+ assert . NoError (t , err )
171
172
ledgers [i ] = l
172
173
}
173
174
174
175
for i , l := range ledgers {
175
176
q , _ := l .NewQueryExecutor ()
176
177
val , err := q .GetState ("ns" , "testKey" )
177
178
q .Done ()
178
- testutil . AssertNoError (t , err , "" )
179
- testutil . AssertEquals (t , val , []byte (fmt .Sprintf ("testValue_%d" , i )))
179
+ assert . NoError (t , err )
180
+ assert . Equal (t , []byte (fmt .Sprintf ("testValue_%d" , i )), val )
180
181
l .Close ()
181
182
}
182
183
}
@@ -224,77 +225,78 @@ func TestLedgerBackup(t *testing.T) {
224
225
225
226
// remove the statedb, historydb, and block indexes (they are supposed to be auto created during opening of an existing ledger)
226
227
// and rename the originalPath to restorePath
227
- testutil . AssertNoError (t , os .RemoveAll (ledgerconfig .GetStateLevelDBPath ()), "" )
228
- testutil . AssertNoError (t , os .RemoveAll (ledgerconfig .GetHistoryLevelDBPath ()), "" )
229
- testutil . AssertNoError (t , os .RemoveAll (filepath .Join (ledgerconfig .GetBlockStorePath (), fsblkstorage .IndexDir )), "" )
230
- testutil . AssertNoError (t , os .Rename (originalPath , restorePath ), "" )
228
+ assert . NoError (t , os .RemoveAll (ledgerconfig .GetStateLevelDBPath ()))
229
+ assert . NoError (t , os .RemoveAll (ledgerconfig .GetHistoryLevelDBPath ()))
230
+ assert . NoError (t , os .RemoveAll (filepath .Join (ledgerconfig .GetBlockStorePath (), fsblkstorage .IndexDir )))
231
+ assert . NoError (t , os .Rename (originalPath , restorePath ))
231
232
defer env .cleanup ()
232
233
233
234
// Instantiate the ledger from restore environment and this should behave exactly as it would have in the original environment
234
235
provider = testutilNewProvider (t )
235
236
defer provider .Close ()
236
237
237
238
_ , err := provider .Create (gb )
238
- testutil . AssertEquals (t , err , ErrLedgerIDExists )
239
+ assert . Equal (t , ErrLedgerIDExists , err )
239
240
240
241
ledger , _ = provider .Open (ledgerid )
241
242
defer ledger .Close ()
242
243
243
244
block1Hash := block1 .Header .Hash ()
244
245
block2Hash := block2 .Header .Hash ()
245
246
bcInfo , _ := ledger .GetBlockchainInfo ()
246
- testutil .AssertEquals (t , bcInfo , & common.BlockchainInfo {
247
- Height : 3 , CurrentBlockHash : block2Hash , PreviousBlockHash : block1Hash })
247
+ assert .Equal (t , & common.BlockchainInfo {
248
+ Height : 3 , CurrentBlockHash : block2Hash , PreviousBlockHash : block1Hash ,
249
+ }, bcInfo )
248
250
249
251
b0 , _ := ledger .GetBlockByHash (gbHash )
250
- testutil . AssertEquals (t , b0 , gb )
252
+ assert . True (t , proto . Equal ( b0 , gb ), "proto messages are not equal" )
251
253
252
254
b1 , _ := ledger .GetBlockByHash (block1Hash )
253
- testutil . AssertEquals (t , b1 , block1 )
255
+ assert . True (t , proto . Equal ( b1 , block1 ), "proto messages are not equal" )
254
256
255
257
b2 , _ := ledger .GetBlockByHash (block2Hash )
256
- testutil . AssertEquals (t , b2 , block2 )
258
+ assert . True (t , proto . Equal ( b2 , block2 ), "proto messages are not equal" )
257
259
258
260
b0 , _ = ledger .GetBlockByNumber (0 )
259
- testutil . AssertEquals (t , b0 , gb )
261
+ assert . True (t , proto . Equal ( b0 , gb ), "proto messages are not equal" )
260
262
261
263
b1 , _ = ledger .GetBlockByNumber (1 )
262
- testutil . AssertEquals (t , b1 , block1 )
264
+ assert . True (t , proto . Equal ( b1 , block1 ), "proto messages are not equal" )
263
265
264
266
b2 , _ = ledger .GetBlockByNumber (2 )
265
- testutil . AssertEquals (t , b2 , block2 )
267
+ assert . True (t , proto . Equal ( b2 , block2 ), "proto messages are not equal" )
266
268
267
269
// get the tran id from the 2nd block, then use it to test GetTransactionByID()
268
270
txEnvBytes2 := block1 .Data .Data [0 ]
269
271
txEnv2 , err := putils .GetEnvelopeFromBlock (txEnvBytes2 )
270
- testutil . AssertNoError (t , err , "Error upon GetEnvelopeFromBlock" )
272
+ assert . NoError (t , err , "Error upon GetEnvelopeFromBlock" )
271
273
payload2 , err := putils .GetPayload (txEnv2 )
272
- testutil . AssertNoError (t , err , "Error upon GetPayload" )
274
+ assert . NoError (t , err , "Error upon GetPayload" )
273
275
chdr , err := putils .UnmarshalChannelHeader (payload2 .Header .ChannelHeader )
274
- testutil . AssertNoError (t , err , "Error upon GetChannelHeaderFromBytes" )
276
+ assert . NoError (t , err , "Error upon GetChannelHeaderFromBytes" )
275
277
txID2 := chdr .TxId
276
278
processedTran2 , err := ledger .GetTransactionByID (txID2 )
277
- testutil . AssertNoError (t , err , "Error upon GetTransactionByID" )
279
+ assert . NoError (t , err , "Error upon GetTransactionByID" )
278
280
// get the tran envelope from the retrieved ProcessedTransaction
279
281
retrievedTxEnv2 := processedTran2 .TransactionEnvelope
280
- testutil . AssertEquals (t , retrievedTxEnv2 , txEnv2 )
282
+ assert . Equal (t , txEnv2 , retrievedTxEnv2 )
281
283
282
284
qe , _ := ledger .NewQueryExecutor ()
283
285
value1 , _ := qe .GetState ("ns1" , "key1" )
284
- testutil . AssertEquals (t , value1 , []byte ("value4" ))
286
+ assert . Equal (t , []byte ("value4" ), value1 )
285
287
286
288
hqe , err := ledger .NewHistoryQueryExecutor ()
287
- testutil . AssertNoError (t , err , "" )
289
+ assert . NoError (t , err )
288
290
itr , err := hqe .GetHistoryForKey ("ns1" , "key1" )
289
- testutil . AssertNoError (t , err , "" )
291
+ assert . NoError (t , err )
290
292
defer itr .Close ()
291
293
292
294
result1 , err := itr .Next ()
293
- testutil . AssertNoError (t , err , "" )
294
- testutil . AssertEquals (t , result1 .(* queryresult.KeyModification ).Value , [] byte ( "value1" ) )
295
+ assert . NoError (t , err )
296
+ assert . Equal (t , [] byte ( "value1" ), result1 .(* queryresult.KeyModification ).Value )
295
297
result2 , err := itr .Next ()
296
- testutil . AssertNoError (t , err , "" )
297
- testutil . AssertEquals (t , result2 .(* queryresult.KeyModification ).Value , [] byte ( "value4" ) )
298
+ assert . NoError (t , err )
299
+ assert . Equal (t , [] byte ( "value4" ), result2 .(* queryresult.KeyModification ).Value )
298
300
}
299
301
300
302
func constructTestLedgerID (i int ) string {
@@ -303,7 +305,7 @@ func constructTestLedgerID(i int) string {
303
305
304
306
func testutilNewProvider (t * testing.T ) lgr.PeerLedgerProvider {
305
307
provider , err := NewProvider ()
306
- testutil . AssertNoError (t , err , "" )
308
+ assert . NoError (t , err )
307
309
provider .Initialize (& lgr.Initializer {
308
310
DeployedChaincodeInfoProvider : & mock.DeployedChaincodeInfoProvider {},
309
311
})
0 commit comments