MCPcopy
hub / github.com/nats-io/nats.go / TestSubscribe_ClosedHandler

Function TestSubscribe_ClosedHandler

test/sub_test.go:1615–1656  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1613}
1614
1615func TestSubscribe_ClosedHandler(t *testing.T) {
1616 s := RunDefaultServer()
1617 defer s.Shutdown()
1618
1619 nc := NewDefaultConnection(t)
1620 defer nc.Close()
1621
1622 ch := make(chan string, 1)
1623 sub, err := nc.Subscribe("foo", func(_ *nats.Msg) {})
1624 if err != nil {
1625 t.Fatalf("Error subscribing: %v", err)
1626 }
1627 sub.SetClosedHandler(func(subj string) {
1628 ch <- subj
1629 })
1630 sub.Unsubscribe()
1631 select {
1632 case subj := <-ch:
1633 if subj != "foo" {
1634 t.Fatalf("Expected 'foo', got '%v'", subj)
1635 }
1636 case <-time.After(1 * time.Second):
1637 t.Fatal("Did not receive closed callback")
1638 }
1639
1640 sub, err = nc.Subscribe("bar", func(_ *nats.Msg) {})
1641 if err != nil {
1642 t.Fatalf("Error subscribing: %v", err)
1643 }
1644 sub.SetClosedHandler(func(subj string) {
1645 ch <- subj
1646 })
1647 sub.Drain()
1648 select {
1649 case subj := <-ch:
1650 if subj != "bar" {
1651 t.Fatalf("Expected 'bar', got '%v'", subj)
1652 }
1653 case <-time.After(1 * time.Second):
1654 t.Fatal("Did not receive closed callback")
1655 }
1656}
1657
1658func TestSubscriptionEvents(t *testing.T) {
1659 t.Run("default events", func(t *testing.T) {

Callers

nothing calls this directly

Calls 8

FatalfMethod · 0.80
UnsubscribeMethod · 0.80
RunDefaultServerFunction · 0.70
NewDefaultConnectionFunction · 0.70
SubscribeMethod · 0.65
DrainMethod · 0.65
CloseMethod · 0.45
SetClosedHandlerMethod · 0.45

Tested by

no test coverage detected