Commit | Line | Data |
---|---|---|
a3809289 JB |
1 | const { expect } = require('expect') |
2 | const sinon = require('sinon') | |
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') | |
16 | ||
17 | describe('Selection strategies utils test suite', () => { | |
18 | let pool | |
19 | beforeEach(() => { | |
20 | pool = sinon.createStubInstance(FixedThreadPool) | |
21 | }) | |
22 | ||
23 | afterEach(() => { | |
24 | sinon.restore() | |
25 | }) | |
26 | ||
27 | it('Verify that getWorkerChoiceStrategy() default return ROUND_ROBIN strategy', () => { | |
28 | const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy(pool) | |
29 | expect(strategy).toBeInstanceOf(RoundRobinWorkerChoiceStrategy) | |
30 | }) | |
31 | ||
32 | it('Verify that getWorkerChoiceStrategy() can return ROUND_ROBIN strategy', () => { | |
33 | const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy( | |
34 | pool, | |
35 | WorkerChoiceStrategies.ROUND_ROBIN | |
36 | ) | |
37 | expect(strategy).toBeInstanceOf(RoundRobinWorkerChoiceStrategy) | |
38 | }) | |
39 | ||
40 | it('Verify that getWorkerChoiceStrategy() can return LESS_RECENTLY_USED strategy', () => { | |
41 | const strategy = SelectionStrategiesUtils.getWorkerChoiceStrategy( | |
42 | pool, | |
43 | WorkerChoiceStrategies.LESS_RECENTLY_USED | |
44 | ) | |
45 | expect(strategy).toBeInstanceOf(LessRecentlyUsedWorkerChoiceStrategy) | |
46 | }) | |
47 | ||
48 | it('Verify that getWorkerChoiceStrategy() throw error on unknown strategy', () => { | |
49 | expect(() => { | |
50 | SelectionStrategiesUtils.getWorkerChoiceStrategy(pool, 'UNKNOWN_STRATEGY') | |
51 | }).toThrowError( | |
52 | new Error("Worker choice strategy 'UNKNOWN_STRATEGY' not found") | |
53 | ) | |
54 | }) | |
55 | }) |