github.com/storacha/go-ucanto@v0.7.2/core/message/datamodel/agentmessage_test.go (about) 1 package datamodel_test 2 3 import ( 4 "testing" 5 6 "github.com/ipfs/go-cid" 7 "github.com/ipld/go-ipld-prime" 8 cidlink "github.com/ipld/go-ipld-prime/linking/cid" 9 "github.com/storacha/go-ucanto/core/ipld/block" 10 "github.com/storacha/go-ucanto/core/ipld/codec/cbor" 11 "github.com/storacha/go-ucanto/core/ipld/hash/sha256" 12 mdm "github.com/storacha/go-ucanto/core/message/datamodel" 13 ) 14 15 func TestEncodeDecode(t *testing.T) { 16 l := cidlink.Link{Cid: cid.MustParse("bafkreiem4twkqzsq2aj4shbycd4yvoj2cx72vezicletlhi7dijjciqpui")} 17 ex := []ipld.Link{l} 18 rp := mdm.ReportModel{ 19 Keys: []string{l.String()}, 20 Values: map[string]ipld.Link{l.String(): l}, 21 } 22 d0 := mdm.DataModel{Execute: ex, Report: &rp} 23 m0 := mdm.AgentMessageModel{UcantoMessage7: &d0} 24 mblk, err := block.Encode(&m0, mdm.Type(), cbor.Codec, sha256.Hasher) 25 if err != nil { 26 t.Fatalf("encoding agent message: %s", err) 27 } 28 29 m1 := mdm.AgentMessageModel{} 30 err = block.Decode(mblk, &m1, mdm.Type(), cbor.Codec, sha256.Hasher) 31 if err != nil { 32 t.Fatalf("decoding agent message: %s", err) 33 } 34 35 d1 := m1.UcantoMessage7 36 if d1.Execute[0] != l || d1.Execute[0] != d0.Execute[0] { 37 t.Fatalf("failed round trip execute field") 38 } 39 if d1.Report.Values[l.String()] != l || d1.Report.Values[l.String()] != d0.Report.Values[l.String()] { 40 t.Fatalf("failed round trip report field") 41 } 42 }