From a700d287fe138ea45a793b8d83de96adc8344ef9 Mon Sep 17 00:00:00 2001 From: monsterxxp <37952446+monsterxxp@users.noreply.github.com> Date: Wed, 14 Sep 2022 21:35:54 +0800 Subject: [PATCH 1/5] add MapUtilTest test case (#699) --- .../hippo4j/config/toolkit/MapUtilTest.java | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/MapUtilTest.java b/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/MapUtilTest.java index a5574c98..e67f3910 100644 --- a/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/MapUtilTest.java +++ b/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/MapUtilTest.java @@ -17,8 +17,119 @@ package cn.hippo4j.config.toolkit; +import cn.hippo4j.common.toolkit.Assert; +import cn.hutool.core.collection.CollectionUtil; +import com.google.common.collect.ImmutableMap; +import org.junit.Test; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.BiFunction; + /** * MapUtil Test */ public class MapUtilTest { + + @Test + public void parseMapForFilterRetIsEmptyTest() { + Map map = ImmutableMap.of("abc", "123", "bcd", "456", "cde", "789"); + List ret = MapUtil.parseMapForFilter(map, "x"); + Assert.isTrue(CollectionUtil.isEmpty(ret)); + } + + @Test + public void parseMapForFilterRetIsNotEmptyTest() { + Map map = ImmutableMap.of("abc", "123", "bcd", "456", "cde", "789"); + List ret = MapUtil.parseMapForFilter(map, "b"); + Assert.isTrue(CollectionUtil.isNotEmpty(ret)); + } + + @Test + public void computeIfAbsentNotExistTargetTest() { + BiFunction mappingFunction = (a, b) -> a + b; + try { + MapUtil.computeIfAbsent(null, "key", mappingFunction, "param1", "param2"); + } catch (Exception e) { + if (e instanceof NullPointerException) { + Assert.isTrue(Objects.equals("target", e.getMessage())); + } + } + } + + @Test + public void computeIfAbsentNotExistKeyTest() { + Map map = new HashMap<>(); + map.put("abc", "123"); + BiFunction mappingFunction = (a, b) -> a + b; + try { + MapUtil.computeIfAbsent(map, null, mappingFunction, "param1", "param2"); + } catch (Exception e) { + if (e instanceof NullPointerException) { + Assert.isTrue(Objects.equals("key", e.getMessage())); + } + } + } + + @Test + public void computeIfAbsentNotExistMappingFunctionTest() { + Map map = new HashMap<>(); + map.put("abc", "123"); + try { + MapUtil.computeIfAbsent(map, "abc", null, "param1", "param2"); + } catch (Exception e) { + if (e instanceof NullPointerException) { + Assert.isTrue(Objects.equals("mappingFunction", e.getMessage())); + } + } + } + + @Test + public void computeIfAbsentNotExistParam1Test() { + Map map = new HashMap<>(); + map.put("abc", "123"); + BiFunction mappingFunction = (a, b) -> a + b; + try { + MapUtil.computeIfAbsent(map, "abc", mappingFunction, null, "param2"); + } catch (Exception e) { + if (e instanceof NullPointerException) { + Assert.isTrue(Objects.equals("param1", e.getMessage())); + } + } + } + + @Test + public void computeIfAbsentNotExistParam2Test() { + Map map = new HashMap<>(); + map.put("abc", "123"); + BiFunction mappingFunction = (a, b) -> a + b; + try { + MapUtil.computeIfAbsent(map, "abc", mappingFunction, "param1", null); + } catch (Exception e) { + if (e instanceof NullPointerException) { + Assert.isTrue(Objects.equals("param2", e.getMessage())); + } + } + } + + @Test + public void computeIfAbsentValNotNullTest() { + Map map = new HashMap<>(); + map.put("abc", "123"); + BiFunction mappingFunction = (a, b) -> a + b; + Object ret = MapUtil.computeIfAbsent(map, "abc", mappingFunction, "param1", "param2"); + Assert.isTrue(Objects.equals("123", String.valueOf(ret))); + } + + @Test + public void computeIfAbsentValIsNullTest() { + Map map = new HashMap<>(); + map.put("abc", "123"); + BiFunction mappingFunction = (a, b) -> a + b; + Object ret = MapUtil.computeIfAbsent(map, "xyz", mappingFunction, "param1", "param2"); + Assert.isTrue(Objects.equals("param1param2", String.valueOf(ret))); + } + } From 5e52212ffe7e715f896c7fb5aec155ed01711fc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=E5=93=A5?= Date: Wed, 14 Sep 2022 21:44:07 +0800 Subject: [PATCH 2/5] Update README.md --- README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7d31eea8..d6f141eb 100644 --- a/README.md +++ b/README.md @@ -62,12 +62,6 @@ Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池 - [[ toBeBetterJavaer ]](https://github.com/itwanger/toBeBetterJavaer):一份通俗易懂、风趣幽默的 Java 学习指南。 -## 荣誉墙 - -Hippo-4J 获得了一些宝贵的荣誉,肯定了 Hippo-4J 作为一款开源框架所带来的价值。 - -image - ## 开发者 Hippo-4J 获得的成就属于每一位贡献者!如果有意贡献,请参考 [good first issue](https://github.com/opengoofy/hippo4j/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) 或者 [good pro issue](https://github.com/opengoofy/hippo4j/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+pro+issue%22)。 @@ -76,8 +70,12 @@ Hippo-4J 获得的成就属于每一位贡献者!如果有意贡献,请参 + + ## 谁在使用 +Hippo-4J 共计 18+ 组织或公司部署并运用于生产环境。如果您正在使用这个项目,可以在 [此处](https://github.com/opengoofy/hippo4j/issues/13) 登记您所在的组织或公司,谢谢。 + ![身边云](https://user-images.githubusercontent.com/77398366/189787832-f51d475c-d758-40f2-9812-997637804e6f.png) ![Medbanks](https://user-images.githubusercontent.com/77398366/189787960-16f89af9-a615-4da3-8309-18d0793aed05.png) ![神州数码](https://user-images.githubusercontent.com/77398366/189786973-1a924f41-1558-4b03-acfd-49f279b99ce7.png) From 98c459aca9f98d28cd2e9ec45c9dc4a2e52dcd2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=E5=93=A5?= Date: Wed, 14 Sep 2022 21:45:20 +0800 Subject: [PATCH 3/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d6f141eb..6a706e74 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Hippo-4J 获得的成就属于每一位贡献者!如果有意贡献,请参 ## 谁在使用 -Hippo-4J 共计 18+ 组织或公司部署并运用于生产环境。如果您正在使用这个项目,可以在 [此处](https://github.com/opengoofy/hippo4j/issues/13) 登记您所在的组织或公司,谢谢。 +如果您正在使用这个项目,可以在 [此处](https://github.com/opengoofy/hippo4j/issues/13) 登记您所在的组织或公司,谢谢。 ![身边云](https://user-images.githubusercontent.com/77398366/189787832-f51d475c-d758-40f2-9812-997637804e6f.png) ![Medbanks](https://user-images.githubusercontent.com/77398366/189787960-16f89af9-a615-4da3-8309-18d0793aed05.png) From 6ea09962a1217ded2cf455af29b434eeb7793374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=E5=93=A5?= Date: Wed, 14 Sep 2022 21:50:45 +0800 Subject: [PATCH 4/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a706e74..0d481a3d 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池 - 功能扩展 - 支持线程池任务传递上下文;项目关闭时,支持等待线程池在指定时间内完成任务。 - 多种模式 - 内置两种使用模式:[依赖配置中心](https://hippo4j.cn/docs/user_docs/getting_started/config/hippo4j-config-start) 和 [无中间件依赖](https://hippo4j.cn/docs/user_docs/getting_started/server/hippo4j-server-start)。 - 容器管理 - Tomcat、Jetty、Undertow 容器线程池运行时查看和线程数变更。 -- 中间件适配 - Apache RocketMQ、Dubbo、RabbitMQ、Hystrix 消费线程池运行时数据查看和线程数变更。 +- 中间件适配 - Dubbo、Alibaba Dubbo、Hystrix、RocketMQ、RabbitMQ 等消费线程池运行时数据查看和线程数变更。 > 开源作者为爱发电不容易,看完有收获,右上角帮忙点个小星星 🤩 From c69e7b2226116cafa58619fb672ac83c9b51e32d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=E5=93=A5?= Date: Wed, 14 Sep 2022 21:51:15 +0800 Subject: [PATCH 5/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d481a3d..48aab413 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Hippo-4J 通过对 JDK 线程池增强,以及扩展三方框架底层线程池 - 功能扩展 - 支持线程池任务传递上下文;项目关闭时,支持等待线程池在指定时间内完成任务。 - 多种模式 - 内置两种使用模式:[依赖配置中心](https://hippo4j.cn/docs/user_docs/getting_started/config/hippo4j-config-start) 和 [无中间件依赖](https://hippo4j.cn/docs/user_docs/getting_started/server/hippo4j-server-start)。 - 容器管理 - Tomcat、Jetty、Undertow 容器线程池运行时查看和线程数变更。 -- 中间件适配 - Dubbo、Alibaba Dubbo、Hystrix、RocketMQ、RabbitMQ 等消费线程池运行时数据查看和线程数变更。 +- 中间件适配 - Dubbo、Hystrix、RocketMQ、RabbitMQ 等消费线程池运行时数据查看和线程数变更。 > 开源作者为爱发电不容易,看完有收获,右上角帮忙点个小星星 🤩