compressor_test.go 1.1 KB

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