Files
dolt/ref/ref_test.go
Chris Masone 3a5397a609 Fix input path of sha1 package in ref_test.go
This was incorrectly set to go/pkg/src/crypto/sha1,
but should just be crypto/sha1
2015-07-07 11:06:21 -07:00

72 lines
1.6 KiB
Go

package ref
import (
"testing"
"crypto/sha1"
"github.com/stretchr/testify/assert"
)
func TestParseError(t *testing.T) {
assert := assert.New(t)
r, err := Parse("foo")
assert.Error(err)
r, err = Parse("sha1")
assert.Error(err)
r, err = Parse("sha1-0")
assert.Error(err)
// too many digits
r, err = Parse("sha1-00000000000000000000000000000000000000000")
assert.Error(err)
// 'g' not valid hex
r, err = Parse("sha1- 000000000000000000000000000000000000000g")
assert.Error(err)
// sha2 not supported
r, err = Parse("sha2-0000000000000000000000000000000000000000")
assert.Error(err)
r, err = Parse("sha1-0000000000000000000000000000000000000000")
assert.NoError(err)
assert.NotNil(r)
}
func TestEquals(t *testing.T) {
assert := assert.New(t)
r0 := MustParse("sha1-0000000000000000000000000000000000000000")
r01 := MustParse("sha1-0000000000000000000000000000000000000000")
r1 := MustParse("sha1-0000000000000000000000000000000000000001")
assert.Equal(r0, r01)
assert.Equal(r01, r0)
assert.NotEqual(r0, r1)
assert.NotEqual(r1, r0)
}
func TestString(t *testing.T) {
s := "sha1-0123456789abcdef0123456789abcdef01234567"
r := MustParse(s)
assert.Equal(t, s, r.String())
}
func TestDigest(t *testing.T) {
r := New(Sha1Digest{})
d := r.Digest()
assert.Equal(t, r.Digest(), d)
// Digest() must return a copy otherwise things get weird.
d[0] = 0x01
assert.NotEqual(t, r.Digest(), d)
}
func TestFromHash(t *testing.T) {
h := sha1.New()
h.Write([]byte("abc"))
r := FromHash(h)
assert.Equal(t, "sha1-a9993e364706816aba3e25717850c26c9cd0d89d", r.String())
}