Skip to content

Commit f016e40

Browse files
committed
Adds a test to verify queue behaviour after restore
1 parent 45a7bac commit f016e40

File tree

2 files changed

+56
-14
lines changed

2 files changed

+56
-14
lines changed

internal/queue/queue_service.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,11 @@ func (qs *QueueService) RevertDequeue(consumerId int) {
4545
index := qs.consumerIndex.ReadIndex(consumerId)
4646
qs.consumerIndex.WriteIndex(consumerId, index-1)
4747
}
48+
49+
func (qs *QueueService) Close() error {
50+
err := qs.queue.Close()
51+
if err != nil {
52+
return err
53+
}
54+
return qs.consumerIndex.Close()
55+
}

internal/queue/queue_service_test.go

Lines changed: 48 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,53 @@ func TestEnqueue(t *testing.T) {
2424
assert.NoError(t, queueService.Enqueue([]byte("Hello World 2")))
2525
assert.NoError(t, queueService.Enqueue([]byte("Hello World 3")))
2626

27-
_, err = queueService.Dequeue(1)
27+
data, _ := queueService.Dequeue(1)
28+
assert.Equal(t, []byte("Hello World"), data)
29+
30+
data, _ = queueService.Dequeue(1)
31+
assert.Equal(t, []byte("Hello World 1"), data)
32+
33+
data, _ = queueService.Dequeue(1)
34+
assert.Equal(t, []byte("Hello World 2"), data)
35+
36+
data, _ = queueService.Dequeue(2)
37+
assert.Equal(t, []byte("Hello World"), data)
38+
39+
data, _ = queueService.Dequeue(1)
40+
assert.Equal(t, []byte("Hello World 3"), data)
41+
}
42+
43+
func TestDequeueFromARestoredQueue(t *testing.T) {
44+
segmentPath := createTempDir("testEnqueue/segments")
45+
metaDataPath := createTempDir("testEnqueue/metadata")
46+
defer os.RemoveAll(segmentPath)
47+
defer os.RemoveAll(metaDataPath)
48+
cfg := config.NewConfig(segmentPath, metaDataPath, 1024, time.Second)
49+
50+
queueService, err := NewQueueService(cfg)
2851
assert.NoError(t, err)
29-
//assert.Equal(t, []byte("Hello World"), data)
30-
//
31-
//data, _ = queueService.Dequeue(1)
32-
//assert.Equal(t, []byte("Hello World 1"), data)
33-
//
34-
//data, _ = queueService.Dequeue(1)
35-
//assert.Equal(t, []byte("Hello World 2"), data)
36-
//
37-
//data, _ = queueService.Dequeue(2)
38-
//assert.Equal(t, []byte("Hello World"), data)
39-
//
40-
//data, _ = queueService.Dequeue(1)
41-
//assert.Equal(t, []byte("Hello World 3"), data)
52+
53+
assert.NoError(t, queueService.Enqueue([]byte("Hello World")))
54+
assert.NoError(t, queueService.Enqueue([]byte("Hello World 1")))
55+
assert.NoError(t, queueService.Enqueue([]byte("Hello World 2")))
56+
assert.NoError(t, queueService.Enqueue([]byte("Hello World 3")))
57+
58+
data, _ := queueService.Dequeue(1)
59+
assert.Equal(t, []byte("Hello World"), data)
60+
61+
data, _ = queueService.Dequeue(1)
62+
assert.Equal(t, []byte("Hello World 1"), data)
63+
64+
assert.NoError(t, queueService.Close())
65+
queueService, err = NewQueueService(cfg)
66+
assert.NoError(t, err)
67+
68+
data, _ = queueService.Dequeue(1)
69+
assert.Equal(t, []byte("Hello World 2"), data)
70+
71+
data, _ = queueService.Dequeue(2)
72+
assert.Equal(t, []byte("Hello World"), data)
73+
74+
data, _ = queueService.Dequeue(1)
75+
assert.Equal(t, []byte("Hello World 3"), data)
4276
}

0 commit comments

Comments
 (0)