72 lines
1.3 KiB
Go
72 lines
1.3 KiB
Go
package tag
|
|
|
|
import (
|
|
"crypto/ed25519"
|
|
"encoding/json"
|
|
"net/url"
|
|
"testing"
|
|
|
|
"lukechampine.com/frand"
|
|
|
|
"github.com/mleku/transit/chk"
|
|
"github.com/mleku/transit/id"
|
|
"github.com/mleku/transit/log"
|
|
"github.com/mleku/transit/pubkey"
|
|
)
|
|
|
|
func TestNew(t *testing.T) {
|
|
// root
|
|
root := T{"root", generateId()}
|
|
var b []byte
|
|
var err error
|
|
if b, err = json.Marshal(&root); chk.E(err) {
|
|
t.Fatal(err)
|
|
}
|
|
log.I.F("%s", b)
|
|
// parent
|
|
parent := T{"parent", generateId()}
|
|
if b, err = json.Marshal(&parent); chk.E(err) {
|
|
t.Fatal(err)
|
|
}
|
|
log.I.F("%s", b)
|
|
// event
|
|
eid := T{"event", generateId()}
|
|
if b, err = json.Marshal(&eid); chk.E(err) {
|
|
t.Fatal(err)
|
|
}
|
|
log.I.F("%s", b)
|
|
// user
|
|
pk := T{"user", generatePubkey()}
|
|
if b, err = json.Marshal(&pk); chk.E(err) {
|
|
t.Fatal(err)
|
|
}
|
|
log.I.F("%s", b)
|
|
// hashtag
|
|
hashtag := "winning"
|
|
ht := T{"hashtag", hashtag}
|
|
if b, err = json.Marshal(&ht); chk.E(err) {
|
|
t.Fatal(err)
|
|
}
|
|
log.I.F("%s", b)
|
|
// url
|
|
var u *url.URL
|
|
if u, err = url.Parse("http://example.com"); chk.E(err) {
|
|
t.Fatal(err)
|
|
}
|
|
ut := T{"url", u}
|
|
if b, err = json.Marshal(&ut); chk.E(err) {
|
|
t.Fatal(err)
|
|
}
|
|
log.I.F("%s", b)
|
|
|
|
}
|
|
|
|
func generateId() (i *id.I) { return id.New(frand.Bytes(32)) }
|
|
|
|
func generatePubkey() (p *pubkey.P) {
|
|
var pub ed25519.PublicKey
|
|
pub, _, _ = ed25519.GenerateKey(frand.Reader)
|
|
p = pubkey.New(pub)
|
|
return
|
|
}
|