Skip to content

Commit 09b1a8c

Browse files
committed
recon: refactor txmgr_test.go
This CR addressed comments provided here -- https://gerrit.hyperledger.org/r/c/27584/ FAB-12956 #done Change-Id: I2076e308cffa91b5d9ce5cbfe31bdc76a5bddafa Signed-off-by: senthil <cendhu@gmail.com>
1 parent e796528 commit 09b1a8c

File tree

1 file changed

+34
-59
lines changed

1 file changed

+34
-59
lines changed

core/ledger/kvledger/txmgmt/txmgr/lockbasedtxmgr/txmgr_test.go

Lines changed: 34 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1130,7 +1130,8 @@ func testValidationAndCommitOfOldPvtData(t *testing.T, env testEnv) {
11301130
v1 := []byte("value1")
11311131
// ns1-coll1-key1 should be rejected as it is updated in the future by Blk2Tx1
11321132
pvtDataBlk1Tx1 := producePvtdata(t, 1, []string{"ns1:coll1"}, []string{"key1"}, [][]byte{v1})
1133-
// ns1-coll2-key3 should be accepted but ns1-coll1-key2 as it is updated in the future by Blk2Tx2
1133+
// ns1-coll2-key3 should be accepted but ns1-coll1-key2
1134+
// should be rejected as it is updated in the future by Blk2Tx2
11341135
v2 := []byte("value2")
11351136
v3 := []byte("value3")
11361137
pvtDataBlk1Tx2 := producePvtdata(t, 2, []string{"ns1:coll1", "ns1:coll2"}, []string{"key2", "key3"}, [][]byte{v2, v3})
@@ -1209,34 +1210,22 @@ func TestTxSimulatorMissingPvtdata(t *testing.T) {
12091210
updateBatch.PvtUpdates.Put("ns1", "coll1", "key1", []byte("value1"), version.NewHeight(1, 1))
12101211
db.ApplyPrivacyAwareUpdates(updateBatch, version.NewHeight(1, 1))
12111212

1212-
simulator, _ := txMgr.NewTxSimulator("testTxid1")
1213-
val, _ := simulator.GetPrivateData("ns1", "coll1", "key1")
1214-
assert.Equal(t, []byte("value1"), val)
1215-
simulator.Done()
1213+
assert.True(t, testPvtValueEqual(t, txMgr, "ns1", "coll1", "key1", []byte("value1")))
12161214

12171215
updateBatch = privacyenabledstate.NewUpdateBatch()
12181216
updateBatch.HashUpdates.Put("ns1", "coll1", util.ComputeStringHash("key1"), util.ComputeStringHash("value1"), version.NewHeight(2, 1))
12191217
updateBatch.HashUpdates.Put("ns1", "coll2", util.ComputeStringHash("key2"), util.ComputeStringHash("value2"), version.NewHeight(2, 1))
12201218
updateBatch.HashUpdates.Put("ns1", "coll3", util.ComputeStringHash("key3"), util.ComputeStringHash("value3"), version.NewHeight(2, 1))
12211219
updateBatch.PvtUpdates.Put("ns1", "coll3", "key3", []byte("value3"), version.NewHeight(2, 1))
12221220
db.ApplyPrivacyAwareUpdates(updateBatch, version.NewHeight(2, 1))
1223-
simulator, _ = txMgr.NewTxSimulator("testTxid2")
1224-
defer simulator.Done()
12251221

1226-
val, err := simulator.GetPrivateData("ns1", "coll1", "key1")
1227-
_, ok := err.(*txmgr.ErrPvtdataNotAvailable)
1228-
assert.True(t, ok)
1222+
assert.False(t, testPvtKeyExist(t, txMgr, "ns1", "coll1", "key1"))
12291223

1230-
val, err = simulator.GetPrivateData("ns1", "coll2", "key2")
1231-
_, ok = err.(*txmgr.ErrPvtdataNotAvailable)
1232-
assert.True(t, ok)
1224+
assert.False(t, testPvtKeyExist(t, txMgr, "ns1", "coll2", "key2"))
12331225

1234-
val, err = simulator.GetPrivateData("ns1", "coll3", "key3")
1235-
assert.Equal(t, []byte("value3"), val)
1226+
assert.True(t, testPvtValueEqual(t, txMgr, "ns1", "coll3", "key3", []byte("value3")))
12361227

1237-
val, err = simulator.GetPrivateData("ns1", "coll4", "key4")
1238-
assert.NoError(t, err)
1239-
assert.Nil(t, val)
1228+
assert.True(t, testPvtValueEqual(t, txMgr, "ns1", "coll4", "key4", nil))
12401229
}
12411230

12421231
func TestRemoveStaleAndCommitPvtDataOfOldBlocksWithExpiry(t *testing.T) {
@@ -1258,7 +1247,6 @@ func TestRemoveStaleAndCommitPvtDataOfOldBlocksWithExpiry(t *testing.T) {
12581247
version.NewHeight(1, 1),
12591248
)
12601249

1261-
viper.Set(fmt.Sprintf("ledger.pvtdata.btlpolicy.%s.ns.coll", ledgerid), 1)
12621250
bg, _ := testutil.NewBlockGenerator(t, ledgerid, false)
12631251

12641252
// storing hashed data but the pvt key is missing
@@ -1270,12 +1258,7 @@ func TestRemoveStaleAndCommitPvtDataOfOldBlocksWithExpiry(t *testing.T) {
12701258
assert.NoError(t, txMgr.Commit())
12711259

12721260
// pvt data should not exist
1273-
simulator, _ := txMgr.NewTxSimulator("tx-tmp")
1274-
pvtval, err := simulator.GetPrivateData("ns", "coll", "pvtkey1")
1275-
_, ok := err.(*txmgr.ErrPvtdataNotAvailable)
1276-
assert.Equal(t, ok, true)
1277-
assert.Nil(t, pvtval)
1278-
simulator.Done()
1261+
assert.False(t, testPvtKeyExist(t, txMgr, "ns", "coll", "pvtkey1"))
12791262

12801263
// committing pvt data of block 1
12811264
v1 := []byte("pvt-value1")
@@ -1285,15 +1268,11 @@ func TestRemoveStaleAndCommitPvtDataOfOldBlocksWithExpiry(t *testing.T) {
12851268
pvtDataBlk1Tx1,
12861269
},
12871270
}
1288-
err = txMgr.RemoveStaleAndCommitPvtDataOfOldBlocks(blocksPvtData)
1271+
err := txMgr.RemoveStaleAndCommitPvtDataOfOldBlocks(blocksPvtData)
12891272
assert.NoError(t, err)
12901273

12911274
// pvt data should exist
1292-
simulator, _ = txMgr.NewTxSimulator("tx-tmp")
1293-
pvtval, err = simulator.GetPrivateData("ns", "coll", "pvtkey1")
1294-
assert.Nil(t, err)
1295-
assert.Equal(t, pvtval, v1)
1296-
simulator.Done()
1275+
assert.True(t, testPvtValueEqual(t, txMgr, "ns", "coll", "pvtkey1", v1))
12971276

12981277
// storing hashed data but the pvt key is missing
12991278
// stored pvt key would get expired and purged while committing block 4
@@ -1304,12 +1283,7 @@ func TestRemoveStaleAndCommitPvtDataOfOldBlocksWithExpiry(t *testing.T) {
13041283
assert.NoError(t, txMgr.Commit())
13051284

13061285
// pvt data should not exist
1307-
simulator, _ = txMgr.NewTxSimulator("tx-tmp")
1308-
pvtval, err = simulator.GetPrivateData("ns", "coll", "pvtkey2")
1309-
_, ok = err.(*txmgr.ErrPvtdataNotAvailable)
1310-
assert.Equal(t, ok, true)
1311-
assert.Nil(t, pvtval)
1312-
simulator.Done()
1286+
assert.False(t, testPvtKeyExist(t, txMgr, "ns", "coll", "pvtkey2"))
13131287

13141288
blkAndPvtdata = prepareNextBlockForTest(t, txMgr, bg, "txid-3",
13151289
map[string]string{"pubkey3": "pub-value3"}, nil, false)
@@ -1333,23 +1307,34 @@ func TestRemoveStaleAndCommitPvtDataOfOldBlocksWithExpiry(t *testing.T) {
13331307
assert.NoError(t, err)
13341308

13351309
// pvt data should exist
1336-
simulator, _ = txMgr.NewTxSimulator("tx-tmp")
1337-
pvtval, err = simulator.GetPrivateData("ns", "coll", "pvtkey2")
1338-
assert.Nil(t, err)
1339-
assert.Equal(t, pvtval, v2)
1340-
simulator.Done()
1310+
assert.True(t, testPvtValueEqual(t, txMgr, "ns", "coll", "pvtkey2", v2))
13411311

13421312
blkAndPvtdata = prepareNextBlockForTest(t, txMgr, bg, "txid-4",
13431313
map[string]string{"pubkey4": "pub-value4"}, nil, false)
13441314
assert.NoError(t, txMgr.ValidateAndPrepare(blkAndPvtdata, true))
13451315
// committing block 4 and should purge pvtkey2
13461316
assert.NoError(t, txMgr.Commit())
13471317

1348-
simulator, _ = txMgr.NewTxSimulator("tx-tmp")
1349-
pvtval, err = simulator.GetPrivateData("ns", "coll", "pvtkey2")
1318+
assert.True(t, testPvtValueEqual(t, txMgr, "ns", "coll", "pvtkey2", nil))
1319+
}
1320+
1321+
func testPvtKeyExist(t *testing.T, txMgr txmgr.TxMgr, ns, coll, key string) bool {
1322+
simulator, _ := txMgr.NewTxSimulator("tx-tmp")
1323+
defer simulator.Done()
1324+
_, err := simulator.GetPrivateData(ns, coll, key)
1325+
_, ok := err.(*txmgr.ErrPvtdataNotAvailable)
1326+
return !ok
1327+
}
1328+
1329+
func testPvtValueEqual(t *testing.T, txMgr txmgr.TxMgr, ns, coll, key string, value []byte) bool {
1330+
simulator, _ := txMgr.NewTxSimulator("tx-tmp")
1331+
defer simulator.Done()
1332+
pvtValue, err := simulator.GetPrivateData(ns, coll, key)
13501333
assert.NoError(t, err)
1351-
assert.Nil(t, pvtval)
1352-
simulator.Done()
1334+
if bytes.Compare(pvtValue, value) == 0 {
1335+
return true
1336+
}
1337+
return false
13531338
}
13541339

13551340
func TestDeleteOnCursor(t *testing.T) {
@@ -1422,31 +1407,21 @@ func TestTxSimulatorMissingPvtdataExpiry(t *testing.T) {
14221407
assert.NoError(t, txMgr.ValidateAndPrepare(blkAndPvtdata, true))
14231408
assert.NoError(t, txMgr.Commit())
14241409

1425-
simulator, _ := txMgr.NewTxSimulator("tx-tmp")
1426-
pvtval, err := simulator.GetPrivateData("ns", "coll", "pvtkey1")
1427-
assert.NoError(t, err)
1428-
assert.Equal(t, []byte("pvt-value1"), pvtval)
1429-
simulator.Done()
1410+
assert.True(t, testPvtValueEqual(t, txMgr, "ns", "coll", "pvtkey1", []byte("pvt-value1")))
14301411

14311412
blkAndPvtdata = prepareNextBlockForTest(t, txMgr, bg, "txid-2",
14321413
map[string]string{"pubkey1": "pub-value2"}, map[string]string{"pvtkey2": "pvt-value2"}, false)
14331414
assert.NoError(t, txMgr.ValidateAndPrepare(blkAndPvtdata, true))
14341415
assert.NoError(t, txMgr.Commit())
14351416

1436-
simulator, _ = txMgr.NewTxSimulator("tx-tmp")
1437-
pvtval, _ = simulator.GetPrivateData("ns", "coll", "pvtkey1")
1438-
assert.Equal(t, []byte("pvt-value1"), pvtval)
1439-
simulator.Done()
1417+
assert.True(t, testPvtValueEqual(t, txMgr, "ns", "coll", "pvtkey1", []byte("pvt-value1")))
14401418

14411419
blkAndPvtdata = prepareNextBlockForTest(t, txMgr, bg, "txid-2",
14421420
map[string]string{"pubkey1": "pub-value3"}, map[string]string{"pvtkey3": "pvt-value3"}, false)
14431421
assert.NoError(t, txMgr.ValidateAndPrepare(blkAndPvtdata, true))
14441422
assert.NoError(t, txMgr.Commit())
14451423

1446-
simulator, _ = txMgr.NewTxSimulator("tx-tmp")
1447-
pvtval, _ = simulator.GetPrivateData("ns", "coll", "pvtkey1")
1448-
assert.Nil(t, pvtval)
1449-
simulator.Done()
1424+
assert.True(t, testPvtValueEqual(t, txMgr, "ns", "coll", "pvtkey1", nil))
14501425
}
14511426

14521427
func TestTxWithPubMetadata(t *testing.T) {

0 commit comments

Comments
 (0)