From ded5cc990b24131aaa11baed1f30f5f65e84f327 Mon Sep 17 00:00:00 2001 From: Jakub Sztandera Date: Sun, 21 Aug 2016 01:11:23 +0200 Subject: [PATCH] test: add metadata node testcase to dagreader.go License: MIT Signed-off-by: Jakub Sztandera --- unixfs/io/dagreader_test.go | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/unixfs/io/dagreader_test.go b/unixfs/io/dagreader_test.go index 1321da4a65b..1d147b4c304 100644 --- a/unixfs/io/dagreader_test.go +++ b/unixfs/io/dagreader_test.go @@ -3,6 +3,7 @@ package io import ( "io/ioutil" "os" + "strings" "testing" mdag "github.com/ipfs/go-ipfs/merkledag" @@ -154,7 +155,46 @@ func TestBadPBData(t *testing.T) { if err == nil { t.Fatal("excepted error, got nil") } +} + +func TestMetadataNode(t *testing.T) { + dserv := testu.GetDAGServ() + rdata, rnode := testu.GetRandomNode(t, dserv, 512) + _, err := dserv.Add(rnode) + if err != nil { + t.Fatal(err) + } + + ctx, closer := context.WithCancel(context.Background()) + defer closer() + data, err := unixfs.BytesForMetadata(&unixfs.Metadata{"text", 125}) + if err != nil { + t.Fatal(err) + } + node := mdag.NodeWithData(data) + + _, err = NewDagReader(ctx, node, dserv) + if err == nil { + t.Fatal("expected an error") + } + if !strings.Contains(err.Error(), "incorrectly formatted") { + t.Fatal("expected different error") + } + + node.AddNodeLink("", rnode) + + reader, err := NewDagReader(ctx, node, dserv) + if err != nil { + t.Fatal(err) + } + readdata, err := ioutil.ReadAll(reader) + if err != nil { + t.Fatal(err) + } + if err := testu.ArrComp(rdata, readdata); err != nil { + t.Fatal(err) + } } func readByte(t testing.TB, reader *DagReader) byte {