35 lines
879 B
Go
35 lines
879 B
Go
|
package webfinger
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"testing"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestRoundTrip(t *testing.T) {
|
||
|
jrd := Resource{
|
||
|
Subject: "acct:ariadne@jejune.dev",
|
||
|
Links: []Link{
|
||
|
{Rel: "application/activity+json", Href: "https://jejune.dev/.jejune/ariadne"},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
encbuf := &bytes.Buffer{}
|
||
|
enc, err := NewEncoder(encbuf)
|
||
|
require.NoErrorf(t, err, "got error while constructing the encoder: %s", err)
|
||
|
|
||
|
err = enc.Encode(&jrd)
|
||
|
require.NoErrorf(t, err, "got error while encoding: %s", err)
|
||
|
|
||
|
dec, err := NewDecoder(encbuf)
|
||
|
require.NoErrorf(t, err, "got error while constructing the decoder: %s", err)
|
||
|
|
||
|
var decjrd Resource
|
||
|
err = dec.Decode(&decjrd)
|
||
|
require.NoErrorf(t, err, "got error while decoding: %s", err)
|
||
|
|
||
|
require.Equal(t, jrd.Subject, decjrd.Subject)
|
||
|
require.Equal(t, 1, len(decjrd.Links))
|
||
|
require.Equal(t, jrd.Links[0], decjrd.Links[0])
|
||
|
}
|