From 634255725ae36f1929c7ef7110966e58a9131ae2 Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Fri, 12 Apr 2024 09:02:08 -0600 Subject: [PATCH] test q --- queue_test.go | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 queue_test.go diff --git a/queue_test.go b/queue_test.go new file mode 100644 index 0000000..18d0329 --- /dev/null +++ b/queue_test.go @@ -0,0 +1,41 @@ +package main + +import ( + "context" + "path" + "strconv" + "testing" + "time" +) + +func TestQueue(t *testing.T) { + ctx, can := context.WithTimeout(context.Background(), time.Second*10) + defer can() + + db, err := NewDB(path.Join(t.TempDir(), "q")) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + q := NewQueue(db) + + for i := 0; i < 39; i++ { + if err := q.Push(ctx, Message{ID: strconv.Itoa(i), TS: uint64(i)}); err != nil { + t.Fatal(i, err) + } + } + + found := map[uint64]struct{}{} + for i := 0; i < 39; i++ { + if m, err := q.PeekFirst(ctx); err != nil { + t.Fatal(i, err) + } else if _, ok := found[m.TS]; ok { + t.Error(i, m.TS) + } else if err := q.Ack(ctx, m.ID); err != nil { + t.Fatal(i, err) + } else { + found[m.TS] = struct{}{} + } + } +}