MCPcopy
hub / github.com/apache/answer / TestQueue_SendAndReceive

Function TestQueue_SendAndReceive

internal/base/queue/queue_test.go:36–57  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

34}
35
36func TestQueue_SendAndReceive(t *testing.T) {
37 q := New[*testMessage]("test", 10)
38 defer q.Close()
39
40 received := make(chan *testMessage, 1)
41 q.RegisterHandler(func(ctx context.Context, msg *testMessage) error {
42 received <- msg
43 return nil
44 })
45
46 msg := &testMessage{ID: 1, Data: "hello"}
47 q.Send(context.Background(), msg)
48
49 select {
50 case r := <-received:
51 if r.ID != msg.ID || r.Data != msg.Data {
52 t.Errorf("received message mismatch: got %+v, want %+v", r, msg)
53 }
54 case <-time.After(time.Second):
55 t.Fatal("timeout waiting for message")
56 }
57}
58
59func TestQueue_MultipleMessages(t *testing.T) {
60 q := New[*testMessage]("test", 10)

Callers

nothing calls this directly

Calls 3

CloseMethod · 0.65
RegisterHandlerMethod · 0.65
SendMethod · 0.65

Tested by

no test coverage detected