topic_test.go 589 B

123456789101112131415161718192021222324252627282930
  1. package server
  2. import (
  3. "github.com/stretchr/testify/require"
  4. "sync/atomic"
  5. "testing"
  6. )
  7. func TestTopic_CancelSubscribers(t *testing.T) {
  8. t.Parallel()
  9. subFn := func(v *visitor, msg *message) error {
  10. return nil
  11. }
  12. canceled1 := atomic.Bool{}
  13. cancelFn1 := func() {
  14. canceled1.Store(true)
  15. }
  16. canceled2 := atomic.Bool{}
  17. cancelFn2 := func() {
  18. canceled2.Store(true)
  19. }
  20. to := newTopic("mytopic")
  21. to.Subscribe(subFn, "", cancelFn1)
  22. to.Subscribe(subFn, "u_phil", cancelFn2)
  23. to.CancelSubscribers("u_phil")
  24. require.True(t, canceled1.Load())
  25. require.False(t, canceled2.Load())
  26. }