digest_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package model
  2. import "testing"
  3. // - test scan
  4. // - test marshal text
  5. // - test unmarshal text
  6. // - test log value
  7. // - test string
  8. // - test type
  9. // - test digest
  10. // - test valid
  11. // - test driver valuer
  12. // - test sql scanner
  13. // - test parse digest
  14. var testDigests = map[string]Digest{
  15. "": {},
  16. "sha256-1234": {typ: "sha256", digest: "1234"},
  17. "sha256-5678": {typ: "sha256", digest: "5678"},
  18. "blake2-9abc": {typ: "blake2", digest: "9abc"},
  19. "-1234": {},
  20. "sha256-": {},
  21. "sha256-1234-5678": {},
  22. "sha256-P": {}, // invalid hex
  23. "sha256-1234P": {},
  24. "---": {},
  25. }
  26. func TestDigestParse(t *testing.T) {
  27. // Test cases.
  28. for s, want := range testDigests {
  29. got := ParseDigest(s)
  30. t.Logf("ParseDigest(%q) = %#v", s, got)
  31. if got != want {
  32. t.Errorf("ParseDigest(%q) = %q; want %q", s, got, want)
  33. }
  34. }
  35. }
  36. func TestDigestString(t *testing.T) {
  37. // Test cases.
  38. for s, d := range testDigests {
  39. want := s
  40. if !d.Valid() {
  41. want = ""
  42. }
  43. got := d.String()
  44. if got != want {
  45. t.Errorf("ParseDigest(%q).String() = %q; want %q", s, got, want)
  46. }
  47. got = ParseDigest(s).String()
  48. if got != want {
  49. t.Errorf("roundtrip ParseDigest(%q).String() = %q; want %q", s, got, want)
  50. }
  51. }
  52. }