@@ -25,6 +25,35 @@ import (
25
25
"github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/version"
26
26
)
27
27
28
+ // TestGetStateMultipleKeys tests read for given multiple keys
29
+ func TestGetStateMultipleKeys (t * testing.T , dbProvider statedb.VersionedDBProvider ) {
30
+ db , err := dbProvider .GetDBHandle ("testgetmultiplekeys" )
31
+ testutil .AssertNoError (t , err , "" )
32
+
33
+ // Test that savepoint is nil for a new state db
34
+ sp , err := db .GetLatestSavePoint ()
35
+ testutil .AssertNoError (t , err , "Error upon GetLatestSavePoint()" )
36
+ testutil .AssertNil (t , sp )
37
+
38
+ batch := statedb .NewUpdateBatch ()
39
+ expectedValues := make ([]* statedb.VersionedValue , 2 )
40
+ vv1 := statedb.VersionedValue {Value : []byte ("value1" ), Version : version .NewHeight (1 , 1 )}
41
+ expectedValues [0 ] = & vv1
42
+ vv2 := statedb.VersionedValue {Value : []byte ("value2" ), Version : version .NewHeight (1 , 2 )}
43
+ expectedValues [1 ] = & vv2
44
+ vv3 := statedb.VersionedValue {Value : []byte ("value3" ), Version : version .NewHeight (1 , 3 )}
45
+ vv4 := statedb.VersionedValue {Value : []byte {}, Version : version .NewHeight (1 , 4 )}
46
+ batch .Put ("ns1" , "key1" , vv1 .Value , vv1 .Version )
47
+ batch .Put ("ns1" , "key2" , vv2 .Value , vv2 .Version )
48
+ batch .Put ("ns2" , "key3" , vv3 .Value , vv3 .Version )
49
+ batch .Put ("ns2" , "key4" , vv4 .Value , vv4 .Version )
50
+ savePoint := version .NewHeight (2 , 5 )
51
+ db .ApplyUpdates (batch , savePoint )
52
+
53
+ actualValues , _ := db .GetStateMultipleKeys ("ns1" , []string {"key1" , "key2" })
54
+ testutil .AssertEquals (t , actualValues , expectedValues )
55
+ }
56
+
28
57
// TestBasicRW tests basic read-write
29
58
func TestBasicRW (t * testing.T , dbProvider statedb.VersionedDBProvider ) {
30
59
db , err := dbProvider .GetDBHandle ("testbasicrw" )
0 commit comments