From 6814fbb36d80a8823b9553dd404682b4e301fa64 Mon Sep 17 00:00:00 2001 From: beiwei30 Date: Mon, 14 May 2018 16:51:51 +0800 Subject: [PATCH 1/6] unit test for Status --- .../dubbo/common/status/StatusTest.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 dubbo-common/src/test/java/com/alibaba/dubbo/common/status/StatusTest.java diff --git a/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/StatusTest.java b/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/StatusTest.java new file mode 100644 index 00000000000..bc8e5314834 --- /dev/null +++ b/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/StatusTest.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.dubbo.common.status; + +import org.junit.Test; + +import static com.alibaba.dubbo.common.status.Status.Level.OK; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.isEmptyOrNullString; +import static org.junit.Assert.assertThat; + +public class StatusTest { + @Test + public void testConstructor1() throws Exception { + Status status = new Status(OK, "message", "description"); + assertThat(status.getLevel(), is(OK)); + assertThat(status.getMessage(), equalTo("message")); + assertThat(status.getDescription(), equalTo("description")); + } + + @Test + public void testConstructor2() throws Exception { + Status status = new Status(OK, "message"); + assertThat(status.getLevel(), is(OK)); + assertThat(status.getMessage(), equalTo("message")); + assertThat(status.getDescription(), isEmptyOrNullString()); + } + + @Test + public void testConstructor3() throws Exception { + Status status = new Status(OK); + assertThat(status.getLevel(), is(OK)); + assertThat(status.getMessage(), isEmptyOrNullString()); + assertThat(status.getDescription(), isEmptyOrNullString()); + } +} From 161889a5d380bf218c34389adb7361cb6f1efd79 Mon Sep 17 00:00:00 2001 From: beiwei30 Date: Mon, 14 May 2018 16:53:28 +0800 Subject: [PATCH 2/6] remove unnecessary 'static' --- .../src/main/java/com/alibaba/dubbo/common/status/Status.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/Status.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/Status.java index 940e17f5707..ad598c94db4 100644 --- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/Status.java +++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/Status.java @@ -54,7 +54,7 @@ public String getDescription() { /** * Level */ - public static enum Level { + public enum Level { /** * OK */ From 09987cedc3f9821922b36804386579b027ece556 Mon Sep 17 00:00:00 2001 From: beiwei30 Date: Mon, 14 May 2018 17:04:24 +0800 Subject: [PATCH 3/6] unit test for StatusUtils --- .../status/support/StatusUtilsTest.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/StatusUtilsTest.java diff --git a/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/StatusUtilsTest.java b/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/StatusUtilsTest.java new file mode 100644 index 00000000000..83f5e4531c6 --- /dev/null +++ b/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/StatusUtilsTest.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.dubbo.common.status.support; + +import com.alibaba.dubbo.common.status.Status; +import org.junit.Test; + +import java.util.HashMap; +import java.util.Map; + +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.isEmptyOrNullString; +import static org.hamcrest.Matchers.not; +import static org.junit.Assert.assertThat; + +public class StatusUtilsTest { + @Test + public void testGetSummaryStatus1() throws Exception { + Status status1 = new Status(Status.Level.ERROR); + Status status2 = new Status(Status.Level.WARN); + Status status3 = new Status(Status.Level.OK); + Map statuses = new HashMap(); + statuses.put("status1", status1); + statuses.put("status2", status2); + statuses.put("status3", status3); + Status status = StatusUtils.getSummaryStatus(statuses); + assertThat(status.getLevel(), is(Status.Level.ERROR)); + assertThat(status.getMessage(), containsString("status1")); + assertThat(status.getMessage(), containsString("status2")); + assertThat(status.getMessage(), not(containsString("status3"))); + } + + @Test + public void testGetSummaryStatus2() throws Exception { + Status status1 = new Status(Status.Level.WARN); + Status status2 = new Status(Status.Level.OK); + Map statuses = new HashMap(); + statuses.put("status1", status1); + statuses.put("status2", status2); + Status status = StatusUtils.getSummaryStatus(statuses); + assertThat(status.getLevel(), is(Status.Level.WARN)); + assertThat(status.getMessage(), containsString("status1")); + assertThat(status.getMessage(), not(containsString("status2"))); + } + + @Test + public void testGetSummaryStatus3() throws Exception { + Status status1 = new Status(Status.Level.OK); + Map statuses = new HashMap(); + statuses.put("status1", status1); + Status status = StatusUtils.getSummaryStatus(statuses); + assertThat(status.getLevel(), is(Status.Level.OK)); + assertThat(status.getMessage(), isEmptyOrNullString()); + } +} From 82bf1f145db1746089f9fd16fd467dfb37b17f30 Mon Sep 17 00:00:00 2001 From: beiwei30 Date: Mon, 14 May 2018 17:08:27 +0800 Subject: [PATCH 4/6] unit test for LoadStatusChecker --- .../status/support/LoadStatusCheckerTest.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/LoadStatusCheckerTest.java diff --git a/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/LoadStatusCheckerTest.java b/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/LoadStatusCheckerTest.java new file mode 100644 index 00000000000..6ed6041356d --- /dev/null +++ b/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/LoadStatusCheckerTest.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.dubbo.common.status.support; + +import com.alibaba.dubbo.common.status.Status; +import org.junit.Test; + +import static org.hamcrest.Matchers.notNullValue; +import static org.junit.Assert.assertThat; + +public class LoadStatusCheckerTest { + @Test + public void test() throws Exception { + LoadStatusChecker statusChecker = new LoadStatusChecker(); + Status status = statusChecker.check(); + assertThat(status, notNullValue()); + } +} From 982367b91c24e6d8392b3a611bf3ad9ab3796c5f Mon Sep 17 00:00:00 2001 From: beiwei30 Date: Mon, 14 May 2018 17:09:13 +0800 Subject: [PATCH 5/6] reformat the code --- .../alibaba/dubbo/common/status/support/LoadStatusChecker.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java index 018bce7807e..20715c5d71b 100644 --- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java +++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java @@ -41,7 +41,8 @@ public Status check() { load = -1; } int cpu = operatingSystemMXBean.getAvailableProcessors(); - return new Status(load < 0 ? Status.Level.UNKNOWN : (load < cpu ? Status.Level.OK : Status.Level.WARN), (load < 0 ? "" : "load:" + load + ",") + "cpu:" + cpu); + return new Status(load < 0 ? Status.Level.UNKNOWN : (load < cpu ? Status.Level.OK : Status.Level.WARN), + (load < 0 ? "" : "load:" + load + ",") + "cpu:" + cpu); } } From 049941a0a03621d9e436afedb4ddcd9a8513a9b0 Mon Sep 17 00:00:00 2001 From: beiwei30 Date: Mon, 14 May 2018 17:26:33 +0800 Subject: [PATCH 6/6] unit test for MemoryStatusChecker --- .../status/support/LoadStatusCheckerTest.java | 6 +++ .../support/MemoryStatusCheckerTest.java | 42 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/MemoryStatusCheckerTest.java diff --git a/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/LoadStatusCheckerTest.java b/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/LoadStatusCheckerTest.java index 6ed6041356d..121da3bb3bb 100644 --- a/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/LoadStatusCheckerTest.java +++ b/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/LoadStatusCheckerTest.java @@ -17,6 +17,8 @@ package com.alibaba.dubbo.common.status.support; +import com.alibaba.dubbo.common.logger.Logger; +import com.alibaba.dubbo.common.logger.LoggerFactory; import com.alibaba.dubbo.common.status.Status; import org.junit.Test; @@ -24,10 +26,14 @@ import static org.junit.Assert.assertThat; public class LoadStatusCheckerTest { + private static Logger logger = LoggerFactory.getLogger(LoadStatusCheckerTest.class); + @Test public void test() throws Exception { LoadStatusChecker statusChecker = new LoadStatusChecker(); Status status = statusChecker.check(); assertThat(status, notNullValue()); + logger.info("load status level: " + status.getLevel()); + logger.info("load status message: " + status.getMessage()); } } diff --git a/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/MemoryStatusCheckerTest.java b/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/MemoryStatusCheckerTest.java new file mode 100644 index 00000000000..eb05b5cf941 --- /dev/null +++ b/dubbo-common/src/test/java/com/alibaba/dubbo/common/status/support/MemoryStatusCheckerTest.java @@ -0,0 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.dubbo.common.status.support; + +import com.alibaba.dubbo.common.logger.Logger; +import com.alibaba.dubbo.common.logger.LoggerFactory; +import com.alibaba.dubbo.common.status.Status; +import org.junit.Test; + +import static com.alibaba.dubbo.common.status.Status.Level.OK; +import static com.alibaba.dubbo.common.status.Status.Level.WARN; +import static org.hamcrest.CoreMatchers.anyOf; +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; + +public class MemoryStatusCheckerTest { + private static final Logger logger = LoggerFactory.getLogger(MemoryStatusCheckerTest.class); + + @Test + public void test() throws Exception { + MemoryStatusChecker statusChecker = new MemoryStatusChecker(); + Status status = statusChecker.check(); + assertThat(status.getLevel(), anyOf(is(OK), is(WARN))); + logger.info("memory status level: " + status.getLevel()); + logger.info("memory status message: " + status.getMessage()); + } +}