34 lines
775 B
Go

package registerreward
import (
"testing"
"time"
)
func TestRegisterRewardNoticeHubPublish(t *testing.T) {
hub := newRegisterRewardNoticeHub()
stream, cancel := hub.subscribe(1001)
defer cancel()
expected := RegisterRewardNoticeEvent{
NoticeType: "REGISTER_REWARD_GRANTED",
UserID: 1001,
EventID: "REGISTER_REWARD:LIKEI:1001",
SentAt: time.Now(),
}
hub.publish(expected)
select {
case got := <-stream:
if got.UserID != expected.UserID {
t.Fatalf("publish() userId = %d, want %d", got.UserID, expected.UserID)
}
if got.NoticeType != expected.NoticeType {
t.Fatalf("publish() noticeType = %s, want %s", got.NoticeType, expected.NoticeType)
}
case <-time.After(time.Second):
t.Fatal("publish() timeout waiting for event")
}
}