package blocks import ( "bytes" "fmt" ds "github.com/jbenet/datastore.go" u "github.com/jbenet/go-ipfs/util" "testing" ) func TestBlocks(t *testing.T) { d := ds.NewMapDatastore() bs, err := NewBlockService(d) if err != nil { t.Error("failed to construct block service", err) return } b, err := NewBlock([]byte("beep boop")) if err != nil { t.Error("failed to construct block", err) return } h, err := u.Hash([]byte("beep boop")) if err != nil { t.Error("failed to hash data", err) return } if !bytes.Equal(b.Multihash, h) { t.Error("Block Multihash and data multihash not equal") } if b.Key() != u.Key(h) { t.Error("Block key and data multihash key not equal") } err = bs.AddBlock(b) if err != nil { t.Error("failed to add block to BlockService", err) return } b2, err := bs.GetBlock(b.Key()) if err != nil { t.Error("failed to retrieve block from BlockService", err) return } if b.Key() != b2.Key() { t.Error("Block keys not equal.") } if !bytes.Equal(b.Data, b2.Data) { t.Error("Block data is not equal.") } fmt.Printf("key: %s\n", b.Key()) fmt.Printf("data: %v\n", b.Data) }