github.com/renegr87/renegr87@v2.1.1+incompatible/core/ledger/kvledger/txmgmt/statedb/statecouchdb/version_field_encoding_test.go (about) 1 /* 2 Copyright IBM Corp. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package statecouchdb 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 TestEncodeDecode(t *testing.T) { 19 testdata := []*statedb.VersionedValue{ 20 { 21 Version: version.NewHeight(1, 2), 22 }, 23 { 24 Version: version.NewHeight(50, 50), 25 }, 26 { 27 Version: version.NewHeight(50, 50), 28 Metadata: []byte("sample-metadata"), 29 }, 30 } 31 32 for i, testdatum := range testdata { 33 t.Run(fmt.Sprintf("testcase-newfmt-%d", i), 34 func(t *testing.T) { testEncodeDecode(t, testdatum) }, 35 ) 36 } 37 } 38 39 func testEncodeDecode(t *testing.T, v *statedb.VersionedValue) { 40 encodedVerField, err := encodeVersionAndMetadata(v.Version, v.Metadata) 41 assert.NoError(t, err) 42 43 ver, metadata, err := decodeVersionAndMetadata(encodedVerField) 44 assert.NoError(t, err) 45 assert.Equal(t, v.Version, ver) 46 assert.Equal(t, v.Metadata, metadata) 47 }