go_study/fabric-main/common/ledger/blkstorage/protobuf_util_test.go

37 lines
800 B
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package blkstorage
import (
"testing"
"github.com/golang/protobuf/proto"
"github.com/stretchr/testify/require"
)
func TestBuffer(t *testing.T) {
pb := proto.NewBuffer(nil)
pb.EncodeVarint(10)
pos1 := len(pb.Bytes())
pb.EncodeRawBytes([]byte("JunkText"))
pos2 := len(pb.Bytes())
pb.EncodeRawBytes([]byte("YetAnotherJunkText"))
pos3 := len(pb.Bytes())
pb.EncodeVarint(1000000)
pos4 := len(pb.Bytes())
b := newBuffer(pb.Bytes())
b.DecodeVarint()
require.Equal(t, pos1, b.GetBytesConsumed())
b.DecodeRawBytes(false)
require.Equal(t, pos2, b.GetBytesConsumed())
b.DecodeRawBytes(false)
require.Equal(t, pos3, b.GetBytesConsumed())
b.DecodeVarint()
require.Equal(t, pos4, b.GetBytesConsumed())
}