| package jws | 
 |  | 
 | import ( | 
 | 	"encoding/json" | 
 | 	"testing" | 
 |  | 
 | 	"github.com/SermoDigital/jose" | 
 | ) | 
 |  | 
 | func TestPayloadMarshal(t *testing.T) { | 
 | 	p := &payload{v: "Test string!"} | 
 |  | 
 | 	enc, err := json.Marshal(p) | 
 | 	if err != nil { | 
 | 		t.Error(err) | 
 | 	} | 
 |  | 
 | 	var pp payload | 
 | 	if err = json.Unmarshal(enc, &pp); err != nil { | 
 | 		t.Error(err) | 
 | 	} | 
 |  | 
 | 	if pp.v != "Test string!" { | 
 | 		Error(t, "Test string!", pp.v) | 
 | 	} | 
 | } | 
 |  | 
 | func TestComplexPayloadMarshal(t *testing.T) { | 
 | 	p := payload{ | 
 | 		v: map[string]interface{}{ | 
 | 			"alg": "HM256", | 
 | 			"typ": "JWT", | 
 | 		}, | 
 | 	} | 
 |  | 
 | 	enc, err := json.Marshal(&p) | 
 | 	if err != nil { | 
 | 		t.Error(err) | 
 | 	} | 
 |  | 
 | 	var pp payload | 
 | 	if err = json.Unmarshal(enc, &pp); err != nil { | 
 | 		t.Error(err) | 
 | 	} | 
 |  | 
 | 	h, ok := pp.v.(map[string]interface{}) | 
 | 	if !ok { | 
 | 		ErrorTypes(t, map[string]interface{}{}, pp.v) | 
 | 	} | 
 |  | 
 | 	ph := jose.Protected(h) | 
 |  | 
 | 	if alg := ph.Get("alg"); alg != "HM256" { | 
 | 		Error(t, "HM256", alg) | 
 | 	} | 
 |  | 
 | 	if typ := ph.Get("typ"); typ != "JWT" { | 
 | 		Error(t, "JWT", typ) | 
 | 	} | 
 | } |