refactor: apply stricter strategy design pattern requirements on worker
[poolifier.git] / tests / pools / selection-strategies / selection-strategies-utils.test.js
index 945f6ebad001426dae7d11b5635ae52c9a61c6b1..8715074521b0144555a0e90da9556e7749068d27 100644 (file)
@@ -1,7 +1,7 @@
 const { expect } = require('expect')
 // const sinon = require('sinon')
 const {
-  SelectionStrategiesUtils
+  getWorkerChoiceStrategy
 } = require('../../../lib/pools/selection-strategies/selection-strategies-utils')
 const {
   FixedThreadPool,
@@ -11,8 +11,11 @@ const {
   RoundRobinWorkerChoiceStrategy
 } = require('../../../lib/pools/selection-strategies/round-robin-worker-choice-strategy')
 const {
-  LessRecentlyUsedWorkerChoiceStrategy
-} = require('../../../lib/pools/selection-strategies/less-recently-used-worker-choice-strategy')
+  LessUsedWorkerChoiceStrategy
+} = require('../../../lib/pools/selection-strategies/less-used-worker-choice-strategy')
+const {
+  LessBusyWorkerChoiceStrategy
+} = require('../../../lib/pools/selection-strategies/less-busy-worker-choice-strategy')
 const {
   FairShareWorkerChoiceStrategy
 } = require('../../../lib/pools/selection-strategies/fair-share-worker-choice-strategy')
@@ -37,28 +40,36 @@ describe('Selection strategies utils test suite', () => {
   })
 
   it('Verify that getWorkerChoiceStrategy() default return ROUND_ROBIN strategy', () => {
-    const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy(pool)
+    const strategy = getWorkerChoiceStrategy(pool)
     expect(strategy).toBeInstanceOf(RoundRobinWorkerChoiceStrategy)
   })
 
   it('Verify that getWorkerChoiceStrategy() can return ROUND_ROBIN strategy', () => {
-    const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy(
+    const strategy = getWorkerChoiceStrategy(
       pool,
       WorkerChoiceStrategies.ROUND_ROBIN
     )
     expect(strategy).toBeInstanceOf(RoundRobinWorkerChoiceStrategy)
   })
 
-  it('Verify that getWorkerChoiceStrategy() can return LESS_RECENTLY_USED strategy', () => {
-    const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy(
+  it('Verify that getWorkerChoiceStrategy() can return LESS_USED strategy', () => {
+    const strategy = getWorkerChoiceStrategy(
+      pool,
+      WorkerChoiceStrategies.LESS_USED
+    )
+    expect(strategy).toBeInstanceOf(LessUsedWorkerChoiceStrategy)
+  })
+
+  it('Verify that getWorkerChoiceStrategy() can return LESS_BUSY strategy', () => {
+    const strategy = getWorkerChoiceStrategy(
       pool,
-      WorkerChoiceStrategies.LESS_RECENTLY_USED
+      WorkerChoiceStrategies.LESS_BUSY
     )
-    expect(strategy).toBeInstanceOf(LessRecentlyUsedWorkerChoiceStrategy)
+    expect(strategy).toBeInstanceOf(LessBusyWorkerChoiceStrategy)
   })
 
   it('Verify that getWorkerChoiceStrategy() can return FAIR_SHARE strategy', () => {
-    const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy(
+    const strategy = getWorkerChoiceStrategy(
       pool,
       WorkerChoiceStrategies.FAIR_SHARE
     )
@@ -66,7 +77,7 @@ describe('Selection strategies utils test suite', () => {
   })
 
   it('Verify that getWorkerChoiceStrategy() can return WEIGHTED_ROUND_ROBIN strategy', () => {
-    const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy(
+    const strategy = getWorkerChoiceStrategy(
       pool,
       WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
     )
@@ -75,7 +86,7 @@ describe('Selection strategies utils test suite', () => {
 
   it('Verify that getWorkerChoiceStrategy() throw error on unknown strategy', () => {
     expect(() => {
-      SelectionStrategiesUtils.getWorkerChoiceStrategy(pool, 'UNKNOWN_STRATEGY')
+      getWorkerChoiceStrategy(pool, 'UNKNOWN_STRATEGY')
     }).toThrowError(
       new Error("Worker choice strategy 'UNKNOWN_STRATEGY' not found")
     )