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

Function TestConsumerPushVsPull

jetstream/test/stream_test.go:519–563  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

517}
518
519func TestConsumerPushVsPull(t *testing.T) {
520 srv := RunBasicJetStreamServer()
521 defer shutdownJSServerAndRemoveStorage(t, srv)
522 nc, err := nats.Connect(srv.ClientURL())
523 if err != nil {
524 t.Fatalf("Unexpected error: %v", err)
525 }
526
527 js, err := jetstream.New(nc)
528 if err != nil {
529 t.Fatalf("Unexpected error: %v", err)
530 }
531 defer nc.Close()
532
533 ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
534 defer cancel()
535 s, err := js.CreateStream(ctx, jetstream.StreamConfig{Name: "foo", Subjects: []string{"FOO.*"}})
536 if err != nil {
537 t.Fatalf("Unexpected error: %v", err)
538 }
539 _, err = s.CreateOrUpdateConsumer(ctx, jetstream.ConsumerConfig{Name: "pull"})
540 if err != nil {
541 t.Fatalf("Unexpected error: %v", err)
542 }
543
544 _, err = s.CreatePushConsumer(ctx, jetstream.ConsumerConfig{Name: "push", DeliverSubject: "foo"})
545 if err != nil {
546 t.Fatalf("Unexpected error: %v", err)
547 }
548
549 _, err = s.CreatePushConsumer(ctx, jetstream.ConsumerConfig{})
550 if !errors.Is(err, jetstream.ErrNotPushConsumer) {
551 t.Fatalf("Expected error: %v; got: %v", jetstream.ErrNotPushConsumer, err)
552 }
553
554 _, err = s.Consumer(ctx, "push")
555 if !errors.Is(err, jetstream.ErrNotPullConsumer) {
556 t.Fatalf("Expected error: %v; got: %v", jetstream.ErrNotPullConsumer, err)
557 }
558
559 _, err = s.PushConsumer(ctx, "pull")
560 if !errors.Is(err, jetstream.ErrNotPushConsumer) {
561 t.Fatalf("Expected error: %v; got: %v", jetstream.ErrNotPushConsumer, err)
562 }
563}
564
565func TestDeleteConsumer(t *testing.T) {
566 tests := []struct {

Callers

nothing calls this directly

Calls 12

NewFunction · 0.92
ConnectMethod · 0.80
FatalfMethod · 0.80
RunBasicJetStreamServerFunction · 0.70
CreateStreamMethod · 0.65
CreatePushConsumerMethod · 0.65
ConsumerMethod · 0.65
PushConsumerMethod · 0.65
CloseMethod · 0.45
IsMethod · 0.45

Tested by

no test coverage detected