package ident_test import ( "encoding/base64" "strings" "testing" "time" "git.gensokyo.uk/cofront/cof-spec/ident" ) func TestS(t *testing.T) { t.Parallel() rTestCases[ident.S, *ident.S]{ {"short", ident.S{}, nil, &ident.UnexpectedSizeError{ Data: nil, Want: ident.EncodedSizeSystem, }}, {"malformed", ident.S{}, []byte{ 0xfe, 0xe1, 0xde, 0xad, 0xfe, 0xe1, 0xde, 0xad, 0xfe, 0xe1, 0xde, 0xad, 0xfe, 0xe1, 0xde, 0xad, 0xfe, 0xe1, 0xde, 0xad, 0xfe, 0xe1, 0xde, 0xad, 0xfe, 0xe1, 0xde, 0xad, 0xfe, 0xe1, 0xde, 0xad, }, base64.CorruptInputError(0)}, {"newline", ident.S{}, []byte( "AAAA" + strings.Repeat("\n", ident.EncodedSizeSystem-4), ), ident.ErrNewline}, {"valid", ident.S{ Site: ident.TrivialSite, Host: ident.TrivialHost, Time: uint64(time.Date( 0xfd, 7, 15, 23, 59, 59, 0xcafe, time.UTC, ).UnixNano()), ID: 0xfee1dead0badf00d, }, base64.URLEncoding.AppendEncode(nil, []byte{ /* site: */ 0xfe, 0xca, 0xed, 0xfe, /* host: */ 0xbe, 0xba, 0xfe, 0xca, /* time: */ 0xfe, 0, 0x43, 0xce, 0xf1, 0x92, 0x4a, 0x10, /* id: */ 0xd, 0xf0, 0xad, 0xb, 0xad, 0xde, 0xe1, 0xfe, }), nil}, }.run(t) }