choose: sinon.stub().returns(0)
}
)
- workerChoiceStrategyContext.workerChoiceStrategy = WorkerChoiceStrategyStub
+ expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
+ WorkerChoiceStrategies.ROUND_ROBIN
+ )
+ workerChoiceStrategyContext.workerChoiceStrategies.set(
+ workerChoiceStrategyContext.workerChoiceStrategyType,
+ WorkerChoiceStrategyStub
+ )
const chosenWorkerKey = workerChoiceStrategyContext.execute()
expect(
- workerChoiceStrategyContext.workerChoiceStrategy.choose.calledOnce
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ workerChoiceStrategyContext.workerChoiceStrategyType
+ ).choose.calledOnce
).toBe(true)
expect(chosenWorkerKey).toBe(0)
})
choose: sinon.stub().returns(0)
}
)
- workerChoiceStrategyContext.workerChoiceStrategy = WorkerChoiceStrategyStub
+ expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
+ WorkerChoiceStrategies.ROUND_ROBIN
+ )
+ workerChoiceStrategyContext.workerChoiceStrategies.set(
+ workerChoiceStrategyContext.workerChoiceStrategyType,
+ WorkerChoiceStrategyStub
+ )
const chosenWorkerKey = workerChoiceStrategyContext.execute()
expect(
- workerChoiceStrategyContext.workerChoiceStrategy.choose.calledOnce
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ workerChoiceStrategyContext.workerChoiceStrategyType
+ ).choose.calledOnce
).toBe(true)
expect(chosenWorkerKey).toBe(0)
})
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- RoundRobinWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.ROUND_ROBIN
+ ).isDynamicPool
+ ).toBe(false)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.ROUND_ROBIN
+ )
+ ).toBeInstanceOf(RoundRobinWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.ROUND_ROBIN
)
workerChoiceStrategyContext.setWorkerChoiceStrategy(
- fixedPool,
WorkerChoiceStrategies.ROUND_ROBIN
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- RoundRobinWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.ROUND_ROBIN
+ )
+ ).toBeInstanceOf(RoundRobinWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.ROUND_ROBIN
)
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- RoundRobinWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.ROUND_ROBIN
+ ).isDynamicPool
+ ).toBe(true)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.ROUND_ROBIN
+ )
+ ).toBeInstanceOf(RoundRobinWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.ROUND_ROBIN
)
workerChoiceStrategyContext.setWorkerChoiceStrategy(
- dynamicPool,
WorkerChoiceStrategies.ROUND_ROBIN
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- RoundRobinWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.ROUND_ROBIN
+ )
+ ).toBeInstanceOf(RoundRobinWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.ROUND_ROBIN
)
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool
)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.LESS_USED
+ ).isDynamicPool
+ ).toBe(false)
workerChoiceStrategyContext.setWorkerChoiceStrategy(
- fixedPool,
WorkerChoiceStrategies.LESS_USED
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- LessUsedWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.LESS_USED
+ )
+ ).toBeInstanceOf(LessUsedWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.LESS_USED
)
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.LESS_USED
+ ).isDynamicPool
+ ).toBe(true)
workerChoiceStrategyContext.setWorkerChoiceStrategy(
- dynamicPool,
WorkerChoiceStrategies.LESS_USED
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- LessUsedWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.LESS_USED
+ )
+ ).toBeInstanceOf(LessUsedWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.LESS_USED
)
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool
)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.LESS_BUSY
+ ).isDynamicPool
+ ).toBe(false)
workerChoiceStrategyContext.setWorkerChoiceStrategy(
- fixedPool,
WorkerChoiceStrategies.LESS_BUSY
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- LessBusyWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.LESS_BUSY
+ )
+ ).toBeInstanceOf(LessBusyWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.LESS_BUSY
)
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.LESS_BUSY
+ ).isDynamicPool
+ ).toBe(true)
workerChoiceStrategyContext.setWorkerChoiceStrategy(
- dynamicPool,
WorkerChoiceStrategies.LESS_BUSY
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- LessBusyWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.LESS_BUSY
+ )
+ ).toBeInstanceOf(LessBusyWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.LESS_BUSY
)
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool
)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.FAIR_SHARE
+ ).isDynamicPool
+ ).toBe(false)
workerChoiceStrategyContext.setWorkerChoiceStrategy(
- fixedPool,
WorkerChoiceStrategies.FAIR_SHARE
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- FairShareWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.FAIR_SHARE
+ )
+ ).toBeInstanceOf(FairShareWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.FAIR_SHARE
)
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.FAIR_SHARE
+ ).isDynamicPool
+ ).toBe(true)
workerChoiceStrategyContext.setWorkerChoiceStrategy(
- dynamicPool,
WorkerChoiceStrategies.FAIR_SHARE
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- FairShareWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.FAIR_SHARE
+ )
+ ).toBeInstanceOf(FairShareWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.FAIR_SHARE
)
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
fixedPool
)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ ).isDynamicPool
+ ).toBe(false)
workerChoiceStrategyContext.setWorkerChoiceStrategy(
- fixedPool,
WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- WeightedRoundRobinWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ )
+ ).toBeInstanceOf(WeightedRoundRobinWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
)
const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
dynamicPool
)
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ ).isDynamicPool
+ ).toBe(true)
workerChoiceStrategyContext.setWorkerChoiceStrategy(
- dynamicPool,
WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
)
- expect(workerChoiceStrategyContext.workerChoiceStrategy).toBeInstanceOf(
- WeightedRoundRobinWorkerChoiceStrategy
- )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ )
+ ).toBeInstanceOf(WeightedRoundRobinWorkerChoiceStrategy)
expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
)
})
-
- it('Verify that getWorkerChoiceStrategy() default return ROUND_ROBIN strategy', () => {
- const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- fixedPool
- )
- const strategy =
- workerChoiceStrategyContext.getWorkerChoiceStrategy(fixedPool)
- expect(strategy).toBeInstanceOf(RoundRobinWorkerChoiceStrategy)
- })
-
- it('Verify that getWorkerChoiceStrategy() can return ROUND_ROBIN strategy', () => {
- const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- fixedPool
- )
- const strategy = workerChoiceStrategyContext.getWorkerChoiceStrategy(
- fixedPool,
- WorkerChoiceStrategies.ROUND_ROBIN
- )
- expect(strategy).toBeInstanceOf(RoundRobinWorkerChoiceStrategy)
- })
-
- it('Verify that getWorkerChoiceStrategy() can return LESS_USED strategy', () => {
- const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- fixedPool
- )
- const strategy = workerChoiceStrategyContext.getWorkerChoiceStrategy(
- fixedPool,
- WorkerChoiceStrategies.LESS_USED
- )
- expect(strategy).toBeInstanceOf(LessUsedWorkerChoiceStrategy)
- })
-
- it('Verify that getWorkerChoiceStrategy() can return LESS_BUSY strategy', () => {
- const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- fixedPool
- )
- const strategy = workerChoiceStrategyContext.getWorkerChoiceStrategy(
- fixedPool,
- WorkerChoiceStrategies.LESS_BUSY
- )
- expect(strategy).toBeInstanceOf(LessBusyWorkerChoiceStrategy)
- })
-
- it('Verify that getWorkerChoiceStrategy() can return FAIR_SHARE strategy', () => {
- const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- fixedPool
- )
- const strategy = workerChoiceStrategyContext.getWorkerChoiceStrategy(
- fixedPool,
- WorkerChoiceStrategies.FAIR_SHARE
- )
- expect(strategy).toBeInstanceOf(FairShareWorkerChoiceStrategy)
- })
-
- it('Verify that getWorkerChoiceStrategy() can return WEIGHTED_ROUND_ROBIN strategy', () => {
- const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- fixedPool
- )
- const strategy = workerChoiceStrategyContext.getWorkerChoiceStrategy(
- fixedPool,
- WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
- )
- expect(strategy).toBeInstanceOf(WeightedRoundRobinWorkerChoiceStrategy)
- })
-
- it('Verify that getWorkerChoiceStrategy() throw error on unknown strategy', () => {
- const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
- fixedPool
- )
- expect(() => {
- workerChoiceStrategyContext.getWorkerChoiceStrategy(
- fixedPool,
- 'UNKNOWN_STRATEGY'
- )
- }).toThrowError(
- new Error("Worker choice strategy 'UNKNOWN_STRATEGY' not found")
- )
- })
})