func Test_NewRepository(t *testing.T) { repo, err := NewRepository(dir) assert.Nil(t, err) // Create 3 queues and push some data queueNames := []string{"test1", "test2", "test3"} var q *cgroup.CGQueue 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.GetNext() } // Close all queues and destroy repo repo.CloseAllQueues() repo = nil // NewRepository repo again and check loaded queues repo, err = NewRepository(dir) assert.Nil(t, err) assert.Equal(t, 3, repo.Count(), "Invalid repo count after initialization") for i := 0; i < len(queueNames); i++ { q, _ = repo.GetQueue(queueNames[i]) assert.EqualValues(t, 1, q.Head(), "Invalid queue initialization") assert.EqualValues(t, totalItems, q.Tail(), "Invalid queue initialization") assert.EqualValues(t, totalItems-1, q.Length(), "Invalid queue initialization") } repo.DeleteAllQueues() }