github.com/ipld/go-ipld-prime@v0.21.0/codec/dagcbor/roundtripCidlink_test.go (about) 1 package dagcbor 2 3 import ( 4 "bytes" 5 "io" 6 "testing" 7 8 qt "github.com/frankban/quicktest" 9 10 cid "github.com/ipfs/go-cid" 11 "github.com/ipld/go-ipld-prime/datamodel" 12 "github.com/ipld/go-ipld-prime/linking" 13 cidlink "github.com/ipld/go-ipld-prime/linking/cid" 14 "github.com/ipld/go-ipld-prime/node/basicnode" 15 nodetests "github.com/ipld/go-ipld-prime/node/tests" 16 ) 17 18 func TestRoundtripCidlink(t *testing.T) { 19 lp := cidlink.LinkPrototype{Prefix: cid.Prefix{ 20 Version: 1, 21 Codec: 0x71, 22 MhType: 0x13, 23 MhLength: 4, 24 }} 25 lsys := cidlink.DefaultLinkSystem() 26 27 buf := bytes.Buffer{} 28 lsys.StorageWriteOpener = func(lnkCtx linking.LinkContext) (io.Writer, linking.BlockWriteCommitter, error) { 29 return &buf, func(lnk datamodel.Link) error { return nil }, nil 30 } 31 lsys.StorageReadOpener = func(lnkCtx linking.LinkContext, lnk datamodel.Link) (io.Reader, error) { 32 return bytes.NewReader(buf.Bytes()), nil 33 } 34 35 lnk, err := lsys.Store(linking.LinkContext{}, lp, n) 36 qt.Assert(t, err, qt.IsNil) 37 38 n2, err := lsys.Load(linking.LinkContext{}, lnk, basicnode.Prototype.Any) 39 qt.Assert(t, err, qt.IsNil) 40 qt.Check(t, n2, nodetests.NodeContentEquals, nSorted) 41 }