// Test to make sure that we can send and async receive messages on // different subjects within a callback. func TestAsyncSubscriberStarvation(t *testing.T) { s := RunDefaultServer() defer s.Shutdown() nc := NewDefaultConnection(t) defer nc.Close() // Helper nc.Subscribe("helper", func(m *nats.Msg) { nc.Publish(m.Reply, []byte("Hello")) }) ch := make(chan bool) // Kickoff nc.Subscribe("start", func(m *nats.Msg) { // Helper Response response := nats.NewInbox() nc.Subscribe(response, func(_ *nats.Msg) { ch <- true }) nc.PublishRequest("helper", response, []byte("Help Me!")) }) nc.Publish("start", []byte("Begin")) nc.Flush() if e := Wait(ch); e != nil { t.Fatal("Was stalled inside of callback waiting on another callback") } }
func TestInbox(t *testing.T) { inbox := nats.NewInbox() if matched, _ := regexp.Match(`_INBOX.\S`, []byte(inbox)); !matched { t.Fatal("Bad INBOX format") } }