FixedThreadPool,
DynamicThreadPool,
WorkerChoiceStrategies
-} = require('../../../lib/index')
+} = require('../../../lib')
const {
WorkerChoiceStrategyContext
} = require('../../../lib/pools/selection-strategies/worker-choice-strategy-context')
expect(chosenWorkerKey).toBe(0)
})
+ it('Verify that execute() throws error if null or undefined is returned', () => {
+ const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+ fixedPool
+ )
+ const WorkerChoiceStrategyUndefinedStub = sinon.createStubInstance(
+ RoundRobinWorkerChoiceStrategy,
+ {
+ choose: sinon.stub().returns(undefined)
+ }
+ )
+ const WorkerChoiceStrategyNullStub = sinon.createStubInstance(
+ RoundRobinWorkerChoiceStrategy,
+ {
+ choose: sinon.stub().returns(null)
+ }
+ )
+ expect(workerChoiceStrategyContext.workerChoiceStrategy).toBe(
+ WorkerChoiceStrategies.ROUND_ROBIN
+ )
+ workerChoiceStrategyContext.workerChoiceStrategies.set(
+ workerChoiceStrategyContext.workerChoiceStrategy,
+ WorkerChoiceStrategyUndefinedStub
+ )
+ expect(() => workerChoiceStrategyContext.execute()).toThrowError(
+ new Error('Worker node key chosen is null or undefined')
+ )
+ workerChoiceStrategyContext.workerChoiceStrategies.set(
+ workerChoiceStrategyContext.workerChoiceStrategy,
+ WorkerChoiceStrategyNullStub
+ )
+ expect(() => workerChoiceStrategyContext.execute()).toThrowError(
+ new Error('Worker node key chosen is null or undefined')
+ )
+ })
+
it('Verify that execute() return the worker chosen by the strategy with dynamic pool', () => {
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool
)
- expect(
- workerChoiceStrategyContext.workerChoiceStrategies.get(
- workerChoiceStrategy
- ).isDynamicPool
- ).toBe(false)
expect(
workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
)
- expect(
- workerChoiceStrategyContext.workerChoiceStrategies.get(
- workerChoiceStrategy
- ).isDynamicPool
- ).toBe(true)
expect(
workerChoiceStrategyContext.workerChoiceStrategies.get(
workerChoiceStrategy
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool
)
- expect(
- workerChoiceStrategyContext.workerChoiceStrategies.get(
- workerChoiceStrategy
- ).isDynamicPool
- ).toBe(false)
workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
expect(
workerChoiceStrategyContext.workerChoiceStrategies.get(
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
)
- expect(
- workerChoiceStrategyContext.workerChoiceStrategies.get(
- workerChoiceStrategy
- ).isDynamicPool
- ).toBe(true)
workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
expect(
workerChoiceStrategyContext.workerChoiceStrategies.get(
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool
)
- expect(
- workerChoiceStrategyContext.workerChoiceStrategies.get(
- workerChoiceStrategy
- ).isDynamicPool
- ).toBe(false)
workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
expect(
workerChoiceStrategyContext.workerChoiceStrategies.get(
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
)
- expect(
- workerChoiceStrategyContext.workerChoiceStrategies.get(
- workerChoiceStrategy
- ).isDynamicPool
- ).toBe(true)
workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
expect(
workerChoiceStrategyContext.workerChoiceStrategies.get(
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool
)
- expect(
- workerChoiceStrategyContext.workerChoiceStrategies.get(
- workerChoiceStrategy
- ).isDynamicPool
- ).toBe(false)
workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
expect(
workerChoiceStrategyContext.workerChoiceStrategies.get(
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
)
- expect(
- workerChoiceStrategyContext.workerChoiceStrategies.get(
- workerChoiceStrategy
- ).isDynamicPool
- ).toBe(true)
workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
expect(
workerChoiceStrategyContext.workerChoiceStrategies.get(
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool
)
- expect(
- workerChoiceStrategyContext.workerChoiceStrategies.get(
- workerChoiceStrategy
- ).isDynamicPool
- ).toBe(false)
workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
expect(
workerChoiceStrategyContext.workerChoiceStrategies.get(
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
)
- expect(
- workerChoiceStrategyContext.workerChoiceStrategies.get(
- workerChoiceStrategy
- ).isDynamicPool
- ).toBe(true)
workerChoiceStrategyContext.setWorkerChoiceStrategy(workerChoiceStrategy)
expect(
workerChoiceStrategyContext.workerChoiceStrategies.get(
)
})
- it.only('Verify that worker choice strategy options enable median run time pool statistics', () => {
+ it('Verify that worker choice strategy options enable median run time pool statistics', () => {
const wwrWorkerChoiceStrategy = WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
let workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool,