Add test for pool

This commit is contained in:
Deluan 2020-10-27 12:27:26 -04:00
parent 8dfa929666
commit acba4b16ee
1 changed files with 29 additions and 1 deletions

View File

@ -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)
}