diff --git a/builder_test.go b/builder_test.go index 7a021ee..82c3b1c 100644 --- a/builder_test.go +++ b/builder_test.go @@ -6,7 +6,32 @@ import ( mh "github.com/multiformats/go-multihash" ) -func TestFormatV1(t *testing.T) { +func TestV0Builder(t *testing.T) { + data := []byte("this is some test content") + + // Construct c1 + format := V0Builder{} + c1, err := format.Sum(data) + if err != nil { + t.Fatal(err) + } + + // Construct c2 + hash, err := mh.Sum(data, mh.SHA2_256, -1) + if err != nil { + t.Fatal(err) + } + c2 := NewCidV0(hash) + + if !c1.Equals(c2) { + t.Fatal("cids mismatch") + } + if c1.Prefix() != c2.Prefix() { + t.Fatal("prefixes mismatch") + } +} + +func TestV1Builder(t *testing.T) { data := []byte("this is some test content") // Construct c1 @@ -31,27 +56,37 @@ func TestFormatV1(t *testing.T) { } } -func TestFormatV0(t *testing.T) { +func TestCodecChange(t *testing.T) { + t.Run("Prefix-CidV0", func(t *testing.T) { + p := Prefix{Version: 0, Codec: DagProtobuf, MhType: mh.SHA2_256, MhLength: mh.DefaultLengths[mh.SHA2_256]} + testCodecChange(t, p) + }) + t.Run("Prefix-CidV1", func(t *testing.T) { + p := Prefix{Version: 1, Codec: DagProtobuf, MhType: mh.SHA2_256, MhLength: mh.DefaultLengths[mh.SHA2_256]} + testCodecChange(t, p) + }) + t.Run("V0Builder", func(t *testing.T) { + testCodecChange(t, V0Builder{}) + }) + t.Run("V1Builder", func(t *testing.T) { + testCodecChange(t, V1Builder{Codec: DagProtobuf, HashFun: mh.SHA2_256}) + }) +} + +func testCodecChange(t *testing.T, b Builder) { data := []byte("this is some test content") - // Construct c1 - format := V0Builder{} - c1, err := format.Sum(data) + if b.GetCodec() != DagProtobuf { + t.Fatal("original builder not using Protobuf codec") + } + + b = b.WithCodec(Raw) + c, err := b.Sum(data) if err != nil { t.Fatal(err) } - // Construct c2 - hash, err := mh.Sum(data, mh.SHA2_256, -1) - if err != nil { - t.Fatal(err) - } - c2 := NewCidV0(hash) - - if !c1.Equals(c2) { - t.Fatal("cids mismatch") - } - if c1.Prefix() != c2.Prefix() { - t.Fatal("prefixes mismatch") + if c.Type() != Raw { + t.Fatal("new cid codec did not change to Raw") } }