Commit | Line | Data |
---|---|---|
a3809289 | 1 | const { expect } = require('expect') |
c15273f2 | 2 | // const sinon = require('sinon') |
a3809289 JB |
3 | const { |
4 | SelectionStrategiesUtils | |
5 | } = require('../../../lib/pools/selection-strategies/selection-strategies-utils') | |
6 | const { | |
7 | FixedThreadPool, | |
8 | WorkerChoiceStrategies | |
9 | } = require('../../../lib/index') | |
10 | const { | |
11 | RoundRobinWorkerChoiceStrategy | |
12 | } = require('../../../lib/pools/selection-strategies/round-robin-worker-choice-strategy') | |
13 | const { | |
14 | LessRecentlyUsedWorkerChoiceStrategy | |
15 | } = require('../../../lib/pools/selection-strategies/less-recently-used-worker-choice-strategy') | |
23ff945a JB |
16 | const { |
17 | FairShareWorkerChoiceStrategy | |
18 | } = require('../../../lib/pools/selection-strategies/fair-share-worker-choice-strategy') | |
c15273f2 JB |
19 | const { |
20 | WeightedRoundRobinWorkerChoiceStrategy | |
21 | } = require('../../../lib/pools/selection-strategies/weighted-round-robin-choice-strategy') | |
a3809289 JB |
22 | |
23 | describe('Selection strategies utils test suite', () => { | |
c15273f2 | 24 | const max = 3 |
a3809289 | 25 | let pool |
c15273f2 JB |
26 | |
27 | before(() => { | |
28 | pool = new FixedThreadPool(max, './tests/worker-files/thread/testWorker.js') | |
a3809289 JB |
29 | }) |
30 | ||
c15273f2 JB |
31 | // afterEach(() => { |
32 | // sinon.restore() | |
33 | // }) | |
34 | ||
35 | after(() => { | |
36 | pool.destroy() | |
a3809289 JB |
37 | }) |
38 | ||
39 | it('Verify that getWorkerChoiceStrategy() default return ROUND_ROBIN strategy', () => { | |
40 | const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy(pool) | |
41 | expect(strategy).toBeInstanceOf(RoundRobinWorkerChoiceStrategy) | |
42 | }) | |
43 | ||
44 | it('Verify that getWorkerChoiceStrategy() can return ROUND_ROBIN strategy', () => { | |
45 | const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy( | |
46 | pool, | |
47 | WorkerChoiceStrategies.ROUND_ROBIN | |
48 | ) | |
49 | expect(strategy).toBeInstanceOf(RoundRobinWorkerChoiceStrategy) | |
50 | }) | |
51 | ||
52 | it('Verify that getWorkerChoiceStrategy() can return LESS_RECENTLY_USED strategy', () => { | |
53 | const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy( | |
54 | pool, | |
55 | WorkerChoiceStrategies.LESS_RECENTLY_USED | |
56 | ) | |
57 | expect(strategy).toBeInstanceOf(LessRecentlyUsedWorkerChoiceStrategy) | |
58 | }) | |
59 | ||
23ff945a JB |
60 | it('Verify that getWorkerChoiceStrategy() can return FAIR_SHARE strategy', () => { |
61 | const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy( | |
62 | pool, | |
63 | WorkerChoiceStrategies.FAIR_SHARE | |
64 | ) | |
65 | expect(strategy).toBeInstanceOf(FairShareWorkerChoiceStrategy) | |
66 | }) | |
67 | ||
c15273f2 JB |
68 | it('Verify that getWorkerChoiceStrategy() can return WEIGHTED_ROUND_ROBIN strategy', () => { |
69 | const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy( | |
70 | pool, | |
71 | WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN | |
72 | ) | |
73 | expect(strategy).toBeInstanceOf(WeightedRoundRobinWorkerChoiceStrategy) | |
74 | }) | |
23ff945a | 75 | |
a3809289 JB |
76 | it('Verify that getWorkerChoiceStrategy() throw error on unknown strategy', () => { |
77 | expect(() => { | |
78 | SelectionStrategiesUtils.getWorkerChoiceStrategy(pool, 'UNKNOWN_STRATEGY') | |
79 | }).toThrowError( | |
80 | new Error("Worker choice strategy 'UNKNOWN_STRATEGY' not found") | |
81 | ) | |
82 | }) | |
83 | }) |