mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-05 00:54:35 +08:00
53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
|
|
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||
|
|
|
||
|
|
package bfs_test
|
||
|
|
|
||
|
|
import (
|
||
|
|
"bytes"
|
||
|
|
"github.com/TeaOSLab/EdgeNode/internal/utils/bfs"
|
||
|
|
"github.com/iwind/TeaGo/assert"
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestMetaBlock(t *testing.T) {
|
||
|
|
var a = assert.NewAssertion(t)
|
||
|
|
|
||
|
|
{
|
||
|
|
var srcHash = bfs.Hash("a")
|
||
|
|
b, err := bfs.EncodeMetaBlock(bfs.MetaActionNew, srcHash, []byte{1, 2, 3})
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
t.Log(b)
|
||
|
|
|
||
|
|
{
|
||
|
|
action, hash, data, decodeErr := bfs.DecodeMetaBlock(b)
|
||
|
|
if decodeErr != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
a.IsTrue(action == bfs.MetaActionNew)
|
||
|
|
a.IsTrue(hash == srcHash)
|
||
|
|
a.IsTrue(bytes.Equal(data, []byte{1, 2, 3}))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
{
|
||
|
|
var srcHash = bfs.Hash("bcd")
|
||
|
|
|
||
|
|
b, err := bfs.EncodeMetaBlock(bfs.MetaActionRemove, srcHash, []byte{1, 2, 3})
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
t.Log(b)
|
||
|
|
{
|
||
|
|
action, hash, data, decodeErr := bfs.DecodeMetaBlock(b)
|
||
|
|
if decodeErr != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
a.IsTrue(action == bfs.MetaActionRemove)
|
||
|
|
a.IsTrue(hash == srcHash)
|
||
|
|
a.IsTrue(len(data) == 0)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|