compressor_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package gocql
  2. import (
  3. "bytes"
  4. "testing"
  5. "github.com/golang/snappy"
  6. )
  7. func TestSnappyCompressor(t *testing.T) {
  8. c := SnappyCompressor{}
  9. if c.Name() != "snappy" {
  10. t.Fatalf("expected name to be 'snappy', got %v", c.Name())
  11. }
  12. str := "My Test String"
  13. //Test Encoding
  14. expected := snappy.Encode(nil, []byte(str))
  15. if res, err := c.Encode([]byte(str)); err != nil {
  16. t.Fatalf("failed to encode '%v' with error %v", str, err)
  17. } else if bytes.Compare(expected, res) != 0 {
  18. t.Fatal("failed to match the expected encoded value with the result encoded value.")
  19. }
  20. val, err := c.Encode([]byte(str))
  21. if err != nil {
  22. t.Fatalf("failed to encode '%v' with error '%v'", str, err)
  23. }
  24. //Test Decoding
  25. if expected, err := snappy.Decode(nil, val); err != nil {
  26. t.Fatalf("failed to decode '%v' with error %v", val, err)
  27. } else if res, err := c.Decode(val); err != nil {
  28. t.Fatalf("failed to decode '%v' with error %v", val, err)
  29. } else if bytes.Compare(expected, res) != 0 {
  30. t.Fatal("failed to match the expected decoded value with the result decoded value.")
  31. }
  32. }