func Test_Initialize(t *testing.T) { repo, err := Initialize(dir) assert.Nil(t, err) // Create 3 queues and push some data queueNames := []string{"test1", "test2", "test3"} var q *queue.Queue totalItems := 3 for i := 0; i < len(queueNames); i++ { q, _ = repo.GetQueue(queueNames[i]) for j := 0; j < totalItems; j++ { q.Enqueue([]byte("value")) } // Get one element out _, _ = q.Dequeue() } // Close all queues and destroy repo repo.CloseAllQueues() repo = nil // Initialize repo again and check loaded queues repo, err = Initialize(dir) assert.Nil(t, err) assert.Equal(t, repo.Count(), 3, "Invalid repo count after initialization") for i := 0; i < len(queueNames); i++ { q, _ = repo.GetQueue(queueNames[i]) assert.Equal(t, q.Head(), uint64(1), "Invalid queue initialization") assert.Equal(t, q.Tail(), uint64(totalItems), "Invalid queue initialization") assert.Equal(t, q.Length(), uint64(totalItems-1), "Invalid queue initialization") } repo.DeleteAllQueues() }