github.com/storacha/go-ucanto@v0.7.2/core/receipt/datamodel/archive_test.go (about)

     1  package datamodel_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/ipfs/go-cid"
     7  	cidlink "github.com/ipld/go-ipld-prime/linking/cid"
     8  	"github.com/storacha/go-ucanto/core/ipld/block"
     9  	"github.com/storacha/go-ucanto/core/ipld/codec/cbor"
    10  	"github.com/storacha/go-ucanto/core/ipld/hash/sha256"
    11  	adm "github.com/storacha/go-ucanto/core/receipt/datamodel"
    12  )
    13  
    14  func TestArchiveEncodeDecode(t *testing.T) {
    15  	l := cidlink.Link{Cid: cid.MustParse("bafkreiem4twkqzsq2aj4shbycd4yvoj2cx72vezicletlhi7dijjciqpui")}
    16  	m0 := adm.ArchiveModel{
    17  		UcanReceipt0_9_1: l,
    18  	}
    19  	mblk, err := block.Encode(&m0, adm.ArchiveType(), cbor.Codec, sha256.Hasher)
    20  	if err != nil {
    21  		t.Fatalf("encoding archive model: %s", err)
    22  	}
    23  
    24  	m1 := adm.ArchiveModel{}
    25  	err = block.Decode(mblk, &m1, adm.ArchiveType(), cbor.Codec, sha256.Hasher)
    26  	if err != nil {
    27  		t.Fatalf("decoding agent message: %s", err)
    28  	}
    29  
    30  	d1 := m1.UcanReceipt0_9_1
    31  	if d1.String() != l.String() {
    32  		t.Fatalf("failed round trip link")
    33  	}
    34  }