github.com/renegr87/renegr87@v2.1.1+incompatible/core/ledger/kvledger/txmgmt/statedb/stateleveldb/value_encoding_test.go (about) 1 /* 2 Copyright IBM Corp. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package stateleveldb 8 9 import ( 10 "fmt" 11 "testing" 12 13 "github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/statedb" 14 "github.com/hyperledger/fabric/core/ledger/kvledger/txmgmt/version" 15 "github.com/stretchr/testify/assert" 16 ) 17 18 func TestEncodeDecodeVersionedValues(t *testing.T) { 19 testdata := []*statedb.VersionedValue{ 20 { 21 Value: []byte("value0"), 22 Version: version.NewHeight(0, 0), 23 }, 24 { 25 Value: []byte("value1"), 26 Version: version.NewHeight(1, 2), 27 }, 28 29 { 30 Value: []byte{}, 31 Version: version.NewHeight(50, 50), 32 }, 33 { 34 Value: []byte{}, 35 Version: version.NewHeight(50, 50), 36 Metadata: []byte("sample-metadata"), 37 }, 38 } 39 40 for i, testdatum := range testdata { 41 t.Run(fmt.Sprintf("testcase-newfmt-%d", i), 42 func(t *testing.T) { testEncodeDecodeVersionedValues(t, testdatum) }, 43 ) 44 } 45 } 46 47 func testEncodeDecodeVersionedValues(t *testing.T, v *statedb.VersionedValue) { 48 encodedVal, err := encodeValue(v) 49 assert.NoError(t, err) 50 decodedVal, err := decodeValue(encodedVal) 51 assert.NoError(t, err) 52 assert.Equal(t, v, decodedVal) 53 }