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") } }