func TestIDofIDSlice(t *testing.T) { is := is.New(t) var b, s []byte for i := 0; i < 64; i++ { b = append(b, 0xFF) s = append(s, 0x00) } bigBig := big.NewInt(0) bigSmall := big.NewInt(0) bigBig = bigBig.SetBytes(b) bigSmall = bigSmall.SetBytes(s) bigID := asset.ID(*bigBig) smallID := asset.ID(*bigSmall) encoder := asset.NewIDEncoder() is.OK(encoder) _, err := io.Copy(encoder, strings.NewReader(`c41111111111111111111111111111111111111111111111111111111111111111111111111111111111111111c467RPWkcUr5dga8jgywjSup7CMoA9FNqkNjEFgAkEpF9vNktFnx77e2Js11EDL3BNu9MaKFUbacZRt1HYym4b8RNp`)) is.NoErr(err) id := encoder.ID() var idSlice asset.IDSlice idSlice.Push(&bigID) idSlice.Push(&smallID) sliceID, err := idSlice.ID() is.NoErr(err) is.Equal(sliceID.String(), id.String()) }
func TestIDEncoderReset(t *testing.T) { is := is.New(t) e := asset.NewIDEncoder() is.OK(e) for i := 0; i < 10; i++ { s := strconv.Itoa(i) e2 := asset.NewIDEncoder() _, err := io.Copy(e, strings.NewReader(s)) is.NoErr(err) _, err2 := io.Copy(e2, strings.NewReader(s)) is.NoErr(err2) id1 := e.ID() id2 := e2.ID() is.Equal(id1, id2) e.Reset() } }
func encode(src io.Reader) *asset.ID { e := asset.NewIDEncoder() _, err := io.Copy(e, src) if err != nil { panic(err) } return e.ID() }
func TestIDEncoder(t *testing.T) { is := is.New(t) e := asset.NewIDEncoder() is.OK(e) _, err := io.Copy(e, strings.NewReader(`This is a pretend asset file, for testing asset id generation. `)) is.NoErr(err) id := e.ID() is.OK(id) is.Equal(id.String(), `c43UBJqUTjQyrcRv43pgt1UWqysgNud7a7Kohjp1Z4w1gD8LGv4p1FK48kC8ufPPRpbEtc8inVhxuFQ453GcfRFE9d`) // Added test for mutability bug. Calling String() should not alter id! is.Equal(id.String(), `c43UBJqUTjQyrcRv43pgt1UWqysgNud7a7Kohjp1Z4w1gD8LGv4p1FK48kC8ufPPRpbEtc8inVhxuFQ453GcfRFE9d`) }