Merge branch 'eliquious-fix-multiple-audience-bug'
diff --git a/jwt/claims_test.go b/jwt/claims_test.go
index e22cb07..c5edd70 100644
--- a/jwt/claims_test.go
+++ b/jwt/claims_test.go
@@ -1 +1,85 @@
-package jwt
+package jwt_test
+
+import (
+	"testing"
+
+	"github.com/SermoDigital/jose/crypto"
+	"github.com/SermoDigital/jose/jws"
+)
+
+func TestMultipleAudienceBug_AfterMarshal(t *testing.T) {
+
+	// Create JWS claims
+	claims := jws.Claims{}
+	claims.SetAudience("example.com", "api.example.com")
+
+	token := jws.NewJWT(claims, crypto.SigningMethodHS256)
+	serializedToken, _ := token.Serialize([]byte("abcdef"))
+
+	// Unmarshal JSON
+	newToken, _ := jws.ParseJWT(serializedToken)
+
+	c := newToken.Claims()
+
+	// Get Audience
+	aud, ok := c.Audience()
+	if !ok {
+
+		// Fails
+		t.Fail()
+	}
+
+	t.Logf("aud Value: %s", aud)
+	t.Logf("aud Type : %T", aud)
+}
+
+func TestMultipleAudienceFix_AfterMarshal(t *testing.T) {
+	// Create JWS claims
+	claims := jws.Claims{}
+	claims.SetAudience("example.com", "api.example.com")
+
+	token := jws.NewJWT(claims, crypto.SigningMethodHS256)
+	serializedToken, _ := token.Serialize([]byte("abcdef"))
+
+	// Unmarshal JSON
+	newToken, _ := jws.ParseJWT(serializedToken)
+
+	c := newToken.Claims()
+
+	// Get Audience
+	aud, ok := c.Audience()
+	if !ok {
+
+		// Fails
+		t.Fail()
+	}
+
+	t.Logf("aud len(): %d", len(aud))
+	t.Logf("aud Value: %s", aud)
+	t.Logf("aud Type : %T", aud)
+}
+
+func TestSingleAudienceFix_AfterMarshal(t *testing.T) {
+	// Create JWS claims
+	claims := jws.Claims{}
+	claims.SetAudience("example.com")
+
+	token := jws.NewJWT(claims, crypto.SigningMethodHS256)
+	serializedToken, _ := token.Serialize([]byte("abcdef"))
+
+	// Unmarshal JSON
+	newToken, _ := jws.ParseJWT(serializedToken)
+	c := newToken.Claims()
+
+	// Get Audience
+	aud, ok := c.Audience()
+	if !ok {
+
+		// Fails
+		t.Fail()
+	}
+
+	t.Logf("aud len(): %d", len(aud))
+	t.Logf("aud Value: %s", aud)
+	t.Logf("aud Type : %T", aud)
+}