mirror of https://github.com/bjdgyc/anylink.git
42 lines
1.0 KiB
Go
42 lines
1.0 KiB
Go
package fingerprint
|
|
|
|
import (
|
|
"crypto"
|
|
"errors"
|
|
"testing"
|
|
)
|
|
|
|
func TestHashFromString(t *testing.T) {
|
|
t.Run("InvalidHashAlgorithm", func(t *testing.T) {
|
|
_, err := HashFromString("invalid-hash-algorithm")
|
|
if !errors.Is(err, errInvalidHashAlgorithm) {
|
|
t.Errorf("Expected error '%v' for invalid hash name, got '%v'", errInvalidHashAlgorithm, err)
|
|
}
|
|
})
|
|
t.Run("ValidHashAlgorithm", func(t *testing.T) {
|
|
h, err := HashFromString("sha-512")
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error for valid hash name, got '%v'", err)
|
|
}
|
|
if h != crypto.SHA512 {
|
|
t.Errorf("Expected hash ID of %d, got %d", int(crypto.SHA512), int(h))
|
|
}
|
|
})
|
|
}
|
|
|
|
func TestStringFromHash_Roundtrip(t *testing.T) {
|
|
for _, h := range nameToHash() {
|
|
s, err := StringFromHash(h)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error for valid hash algorithm, got '%v'", err)
|
|
}
|
|
h2, err := HashFromString(s)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error for valid hash name, got '%v'", err)
|
|
}
|
|
if h != h2 {
|
|
t.Errorf("Hash value doesn't match, expected: 0x%x, got 0x%x", h, h2)
|
|
}
|
|
}
|
|
}
|