github.com/nutsdb/nutsdb@v1.0.4/bucket_test.go (about)

     1  package nutsdb
     2  
     3  import (
     4  	"github.com/stretchr/testify/assert"
     5  	"testing"
     6  )
     7  
     8  func TestBucket_DecodeAndDecode(t *testing.T) {
     9  	bucket := &Bucket{
    10  		Meta: &BucketMeta{
    11  			Op: BucketInsertOperation,
    12  		},
    13  		Id:   1,
    14  		Ds:   DataStructureBTree,
    15  		Name: "bucket_1",
    16  	}
    17  	bytes := bucket.Encode()
    18  
    19  	bucketMeta := &BucketMeta{}
    20  	bucketMeta.Decode(bytes[:BucketMetaSize])
    21  	assert.Equal(t, bucketMeta.Op, BucketInsertOperation)
    22  	assert.Equal(t, int64(8+2+8), int64(bucketMeta.Size))
    23  	decodeBucket := &Bucket{Meta: bucketMeta}
    24  
    25  	err := decodeBucket.Decode(bytes[BucketMetaSize:])
    26  	assert.Nil(t, err)
    27  	assert.Equal(t, BucketId(1), decodeBucket.Id)
    28  	assert.Equal(t, decodeBucket.Name, "bucket_1")
    29  
    30  	crc := decodeBucket.GetCRC(bytes[:BucketMetaSize], bytes[BucketMetaSize:])
    31  	assert.Equal(t, decodeBucket.Meta.Crc, crc)
    32  }