From 0f358a9b77e68e6d0bc5a7961a3b45bf4c30e83e Mon Sep 17 00:00:00 2001 From: pizihao <48643103+pizihao@users.noreply.github.com> Date: Sun, 16 Oct 2022 19:25:52 +0800 Subject: [PATCH] fix : supplement unit test for ThreadPoolManager (#805) --- .../common/executor/ThreadPoolManager.java | 3 + .../executor/ThreadPoolManagerTest.java | 56 ++++++++++++++++++- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java b/hippo4j-common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java index fd29b8f9..b38d104f 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/executor/ThreadPoolManager.java @@ -42,6 +42,9 @@ public class ThreadPoolManager { return INSTANCE; } + private ThreadPoolManager() { + } + static { INSTANCE.init(); } diff --git a/hippo4j-common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java b/hippo4j-common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java index de10bbd9..d508d347 100644 --- a/hippo4j-common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java +++ b/hippo4j-common/src/test/java/cn/hippo4j/common/executor/ThreadPoolManagerTest.java @@ -17,5 +17,59 @@ package cn.hippo4j.common.executor; -public final class ThreadPoolManagerTest { + +import cn.hippo4j.common.toolkit.ReflectUtil; +import org.junit.Assert; +import org.junit.Test; + +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; + +public class ThreadPoolManagerTest { + + // tenantId = schedule,group = schedule + ScheduledExecutorService executorService1 = Executors.newScheduledThreadPool(1); + + // tenantId = schedule,group = schedule + ScheduledExecutorService executorService2 = Executors.newScheduledThreadPool(10); + + // tenantId = executor,group = executor + ExecutorService executorService3 = Executors.newFixedThreadPool(8); + + // tenantId = executor,group = executor + ExecutorService executorService4 = Executors.newFixedThreadPool(16); + + static final String schedule = "schedule"; + + static final String executor = "executor"; + + @Test + public void getInstance() { + ThreadPoolManager poolManager = ThreadPoolManager.getInstance(); + Assert.assertNotNull(poolManager); + } + + @Test + public void register() { + ThreadPoolManager poolManager = ThreadPoolManager.getInstance(); + poolManager.register(schedule, schedule, executorService1); + poolManager.register(schedule, schedule, executorService2); + poolManager.register(executor, executor, executorService3); + poolManager.register(executor, executor, executorService4); + + Map>> manager = (Map>>) ReflectUtil.getFieldValue(poolManager, "resourcesManager"); + + Map> scheduleMap = manager.get(schedule); + Assert.assertEquals(1, scheduleMap.size()); + Set scheduleSet = scheduleMap.get(schedule); + Assert.assertEquals(2, scheduleSet.size()); + + Map> executorMap = manager.get(executor); + Assert.assertEquals(1, executorMap.size()); + Set executorSet = executorMap.get(executor); + Assert.assertEquals(2, executorSet.size()); + } }