mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 15:51:54 +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)
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |