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 }