2
0
mirror of https://github.com/hibiken/asynq.git synced 2025-10-04 05:32:01 +08:00

Add String and MarshalJSON methods to Payload type

This commit is contained in:
Ken Hibino
2020-09-19 20:52:21 -07:00
parent a2d4ead989
commit fadcae76d6
3 changed files with 43 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ package asynq
import (
"encoding/json"
"fmt"
"testing"
"time"
@@ -645,3 +646,30 @@ func TestPayloadHas(t *testing.T) {
t.Errorf("Payload.Has(%q) = true, want false", "name")
}
}
func TestPayloadDebuggingStrings(t *testing.T) {
data := map[string]interface{}{
"foo": 123,
"bar": "hello",
"baz": false,
}
payload := Payload{data: data}
if payload.String() != fmt.Sprint(data) {
t.Errorf("Payload.String() = %q, want %q",
payload.String(), fmt.Sprint(data))
}
got, err := payload.MarshalJSON()
if err != nil {
t.Fatal(err)
}
want, err := json.Marshal(data)
if err != nil {
t.Fatal(err)
}
if diff := cmp.Diff(got, want); diff != "" {
t.Errorf("Payload.MarhsalJSON() = %s, want %s; (-want,+got)\n%s",
got, want, diff)
}
}