message_util_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package common
  2. import (
  3. "encoding/base64"
  4. "fmt"
  5. "io/ioutil"
  6. "path"
  7. "reflect"
  8. "testing"
  9. )
  10. func TestMessageDecode(t *testing.T) {
  11. docsFolder, err := GetLoc("/docs/")
  12. if err != nil {
  13. t.Errorf("Cannot find docs folder: %v", err)
  14. }
  15. image, err := ioutil.ReadFile(path.Join(docsFolder, "cover.jpg"))
  16. if err != nil {
  17. t.Errorf("Cannot read image: %v", err)
  18. }
  19. b64img := base64.StdEncoding.EncodeToString(image)
  20. var tests = []struct {
  21. payload []byte
  22. format string
  23. result map[string]interface{}
  24. }{
  25. {
  26. payload: image,
  27. format: "binary",
  28. result: map[string]interface{}{
  29. "self": image,
  30. },
  31. }, {
  32. payload: []byte(fmt.Sprintf(`{"format":"jpg","content":"%s"}`, b64img)),
  33. format: "json",
  34. result: map[string]interface{}{
  35. "format": "jpg",
  36. "content": b64img,
  37. },
  38. },
  39. }
  40. for i, tt := range tests {
  41. result, err := MessageDecode(tt.payload, tt.format)
  42. if err != nil {
  43. t.Errorf("%d decode error: %v", i, err)
  44. }
  45. if !reflect.DeepEqual(tt.result, result) {
  46. t.Errorf("%d result mismatch:\n\nexp=%s\n\ngot=%s\n\n", i, tt.result, result)
  47. }
  48. }
  49. }