metadata_test.go 769 Bytes
Newer Older
1 2 3 4 5 6 7
package metadata

import (
	"math/rand"
	"reflect"
	"testing"

8
	cidlink "github.com/ipld/go-ipld-prime/linking/cid"
9 10 11 12 13 14

	"github.com/ipfs/go-graphsync/testutil"
)

func TestDecodeEncodeMetadata(t *testing.T) {
	cids := testutil.GenerateCids(10)
15
	initialMetadata := make(Metadata, 0, 10)
16 17 18
	for _, k := range cids {
		link := cidlink.Link{Cid: k}
		blockPresent := rand.Int31()%2 == 0
19
		initialMetadata = append(initialMetadata, Item{link, blockPresent})
20
	}
21
	encoded, err := EncodeMetadata(initialMetadata)
22 23 24
	if err != nil {
		t.Fatal("Error encoding")
	}
25
	decodedMetadata, err := DecodeMetadata(encoded)
26 27 28 29 30 31 32
	if err != nil {
		t.Fatal("Error decoding")
	}
	if !reflect.DeepEqual(initialMetadata, decodedMetadata) {
		t.Fatal("Metadata changed during encoding and decoding")
	}
}