From acba4b16eec10f84dcb413be690ca7f5e3ed97ba Mon Sep 17 00:00:00 2001 From: Deluan Date: Tue, 27 Oct 2020 12:27:26 -0400 Subject: [PATCH] Add test for pool --- core/pool/pool_test.go | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/core/pool/pool_test.go b/core/pool/pool_test.go index a6ce3fc29..d7fe4450e 100644 --- a/core/pool/pool_test.go +++ b/core/pool/pool_test.go @@ -16,6 +16,34 @@ func TestCore(t *testing.T) { RunSpecs(t, "Core Suite") } -var _ = Describe("Pool", func() { +type testItem struct { + ID int +} +type results []int + +func (r results) Len() int { return len(r) } + +var processed results + +var _ = Describe("Pool", func() { + var pool *Pool + + BeforeEach(func() { + processed = nil + pool, _ = NewPool("test", 2, &testItem{}, execute) + }) + + It("processes items", func() { + for i := 0; i < 5; i++ { + pool.Submit(&testItem{ID: i}) + } + Eventually(processed.Len).Should(Equal(5)) + Expect(processed).To(ContainElements(0, 1, 2, 3, 4)) + }) }) + +func execute(workload interface{}) { + item := workload.(*testItem) + processed = append(processed, item.ID) +}