compression_test.go 1006 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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", CompressMetadata},
  10. {"false", CompressNever},
  11. {"never", CompressNever},
  12. {"metadata", CompressMetadata},
  13. {"filedata", CompressFiledata},
  14. {"always", CompressAlways},
  15. {"whatever", CompressNever},
  16. }
  17. mTestcases := []struct {
  18. s string
  19. c Compression
  20. }{
  21. {"never", CompressNever},
  22. {"metadata", CompressMetadata},
  23. {"filedata", CompressFiledata},
  24. {"always", CompressAlways},
  25. }
  26. var c Compression
  27. for _, tc := range uTestcases {
  28. err := c.UnmarshalText([]byte(tc.s))
  29. if err != nil {
  30. t.Error(err)
  31. }
  32. if c != tc.c {
  33. t.Errorf("%s unmarshalled to %d, not %d", tc.s, c, tc.c)
  34. }
  35. }
  36. for _, tc := range mTestcases {
  37. bs, err := tc.c.MarshalText()
  38. if err != nil {
  39. t.Error(err)
  40. }
  41. if s := string(bs); s != tc.s {
  42. t.Errorf("%d marshalled to %q, not %q", tc.c, s, tc.s)
  43. }
  44. }
  45. }