compression_test.go 968 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright (C) 2015 The Protocol Authors.
  2. package protocol
  3. import "testing"
  4. func TestCompressionMarshal(t *testing.T) {
  5. uTestcases := []struct {
  6. s string
  7. c Compression
  8. }{
  9. {"true", CompressionMetadata},
  10. {"false", CompressionNever},
  11. {"never", CompressionNever},
  12. {"metadata", CompressionMetadata},
  13. {"always", CompressionAlways},
  14. {"whatever", CompressionMetadata},
  15. }
  16. mTestcases := []struct {
  17. s string
  18. c Compression
  19. }{
  20. {"never", CompressionNever},
  21. {"metadata", CompressionMetadata},
  22. {"always", CompressionAlways},
  23. }
  24. var c Compression
  25. for _, tc := range uTestcases {
  26. err := c.UnmarshalText([]byte(tc.s))
  27. if err != nil {
  28. t.Error(err)
  29. }
  30. if c != tc.c {
  31. t.Errorf("%s unmarshalled to %d, not %d", tc.s, c, tc.c)
  32. }
  33. }
  34. for _, tc := range mTestcases {
  35. bs, err := tc.c.MarshalText()
  36. if err != nil {
  37. t.Error(err)
  38. }
  39. if s := string(bs); s != tc.s {
  40. t.Errorf("%d marshalled to %q, not %q", tc.c, s, tc.s)
  41. }
  42. }
  43. }