kaiyan/queue/sender_test.go
2025-04-06 10:48:15 -04:00

40 lines
991 B
Go

package queue
import (
"testing"
"github.com/go-json-experiment/json"
)
func TestSenderUnique(t *testing.T) {
// Salt, channel, and user should all produce differences in the sender ID.
base := Sender([]byte("nijika"), "kessoku", "bocchi")
salt := Sender([]byte("kita"), "kessoku", "bocchi")
channel := Sender([]byte("nijika"), "sickhack", "bocchi")
user := Sender([]byte("nijika"), "kessoku", "ryō")
m := map[sender]struct{}{
base: {},
salt: {},
channel: {},
user: {},
}
if len(m) != 4 {
t.Errorf("collision:\nbase: %v\nsalt: %v\nchan: %v\nuser: %v", base, salt, channel, user)
}
}
func TestSenderRoundTrip(t *testing.T) {
want := Sender([]byte("nijika"), "kessoku", "bocchi")
b, err := json.Marshal(want)
if err != nil {
t.Errorf("encode failed: %v", err)
}
var got sender
if err := json.Unmarshal(b, &got); err != nil {
t.Errorf("decode failed: %v", err)
}
if want != got {
t.Errorf("round-trip failed:\nwant %v\ngot %v", want, got)
}
}