+ })
+
+ it('Verify that setWorkerChoiceStrategy() works with LESS_BUSY and dynamic pool', () => {
+ const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+ dynamicPool
+ )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.LESS_BUSY
+ ).isDynamicPool
+ ).toBe(true)
+ workerChoiceStrategyContext.setWorkerChoiceStrategy(
+ WorkerChoiceStrategies.LESS_BUSY
+ )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.LESS_BUSY
+ )
+ ).toBeInstanceOf(LessBusyWorkerChoiceStrategy)
+ expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
+ WorkerChoiceStrategies.LESS_BUSY
+ )
+ })
+
+ it('Verify that setWorkerChoiceStrategy() works with FAIR_SHARE and fixed pool', () => {
+ const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+ fixedPool
+ )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.FAIR_SHARE
+ ).isDynamicPool
+ ).toBe(false)
+ workerChoiceStrategyContext.setWorkerChoiceStrategy(
+ WorkerChoiceStrategies.FAIR_SHARE
+ )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.FAIR_SHARE
+ )
+ ).toBeInstanceOf(FairShareWorkerChoiceStrategy)
+ expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
+ WorkerChoiceStrategies.FAIR_SHARE
+ )
+ })
+
+ it('Verify that setWorkerChoiceStrategy() works with FAIR_SHARE and dynamic pool', () => {
+ const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+ dynamicPool
+ )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.FAIR_SHARE
+ ).isDynamicPool
+ ).toBe(true)
+ workerChoiceStrategyContext.setWorkerChoiceStrategy(
+ WorkerChoiceStrategies.FAIR_SHARE
+ )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.FAIR_SHARE
+ )
+ ).toBeInstanceOf(FairShareWorkerChoiceStrategy)
+ expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
+ WorkerChoiceStrategies.FAIR_SHARE
+ )
+ })
+
+ it('Verify that setWorkerChoiceStrategy() works with WEIGHTED_ROUND_ROBIN and fixed pool', () => {
+ const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+ fixedPool
+ )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ ).isDynamicPool
+ ).toBe(false)
+ workerChoiceStrategyContext.setWorkerChoiceStrategy(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ )
+ ).toBeInstanceOf(WeightedRoundRobinWorkerChoiceStrategy)
+ expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ )
+ })
+
+ it('Verify that setWorkerChoiceStrategy() works with WEIGHTED_ROUND_ROBIN and dynamic pool', () => {
+ const workerChoiceStrategyContext = new WorkerChoiceStrategyContext(
+ dynamicPool
+ )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ ).isDynamicPool
+ ).toBe(true)
+ workerChoiceStrategyContext.setWorkerChoiceStrategy(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ )
+ expect(
+ workerChoiceStrategyContext.workerChoiceStrategies.get(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN
+ )
+ ).toBeInstanceOf(WeightedRoundRobinWorkerChoiceStrategy)
+ expect(workerChoiceStrategyContext.workerChoiceStrategyType).toBe(
+ WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN