diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java index a4ac327..bd60a41 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponse.java @@ -22,10 +22,6 @@ import javax.annotation.Nullable; /** * 统一结果,对返回给前端的数据进行封装。 * - *

- * SUCCESS: 2000000 - *

- * * @author ZhouXY */ public class UnifiedResponse { @@ -39,11 +35,11 @@ public class UnifiedResponse { // #region - Constructors // ================================ - private UnifiedResponse(String code, @Nullable String message) { + UnifiedResponse(String code, @Nullable String message) { this(code, message, null); } - private UnifiedResponse(String code, @Nullable String message, @Nullable T data) { + UnifiedResponse(String code, @Nullable String message, @Nullable T data) { this.code = Objects.requireNonNull(code); this.message = message == null ? "" : message; this.data = data; @@ -53,65 +49,6 @@ public class UnifiedResponse { // #endregion - Constructors // ================================ - public static final String SUCCESS_CODE = "2000000"; - private static final String DEFAULT_SUCCESS_MSG = "SUCCESS"; - - // ================================ - // #region - success - // ================================ - - public static UnifiedResponse success() { - return new UnifiedResponse<>(SUCCESS_CODE, DEFAULT_SUCCESS_MSG); - } - - public static UnifiedResponse success(@Nullable String message) { - return new UnifiedResponse<>(SUCCESS_CODE, message); - } - - public static UnifiedResponse success(@Nullable String message, @Nullable T data) { - return new UnifiedResponse<>(SUCCESS_CODE, message, data); - } - - // ================================ - // #endregion - success - // ================================ - - // ================================ - // #region - error - // ================================ - - public static UnifiedResponse error(String code, @Nullable String message) { - return new UnifiedResponse<>(code, message); - } - - public static UnifiedResponse error(String code, @Nullable String message, @Nullable T data) { - return new UnifiedResponse<>(code, message, data); - } - - public static UnifiedResponse error(String code, Throwable e) { - return new UnifiedResponse<>(code, e.getMessage()); - } - - // ================================ - // #endregion - error - // ================================ - - // ================================ - // #region - of - // ================================ - - public static UnifiedResponse of(String code, @Nullable String message) { - return new UnifiedResponse<>(code, message); - } - - public static UnifiedResponse of(String code, @Nullable String message, @Nullable T data) { - return new UnifiedResponse<>(code, message, data); - } - - // ================================ - // #endregion - of - // ================================ - // ================================ // #region - Getters // ================================ diff --git a/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponses.java b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponses.java new file mode 100644 index 0000000..33aeaea --- /dev/null +++ b/src/main/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponses.java @@ -0,0 +1,91 @@ +/* + * Copyright 2023-2025 the original author or authors. + * + * Licensed 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 + * + * https://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 xyz.zhouxy.plusone.commons.model.dto; + +import javax.annotation.Nullable; + +/** + * UnifiedResponse 工厂 + * + * @author ZhouXY + * @since 1.0.0 + * @see UnifiedResponse + */ +public class UnifiedResponses { + + public static final String SUCCESS_CODE = "2000000"; + public static final String DEFAULT_SUCCESS_MSG = "SUCCESS"; + + // ================================ + // #region - success + // ================================ + + public static UnifiedResponse success() { + return new UnifiedResponse<>(SUCCESS_CODE, DEFAULT_SUCCESS_MSG); + } + + public static UnifiedResponse success(@Nullable String message) { + return new UnifiedResponse<>(SUCCESS_CODE, message); + } + + public static UnifiedResponse success(@Nullable String message, @Nullable T data) { + return new UnifiedResponse<>(SUCCESS_CODE, message, data); + } + + // ================================ + // #endregion - success + // ================================ + + // ================================ + // #region - error + // ================================ + + public static UnifiedResponse error(String code, @Nullable String message) { + return new UnifiedResponse<>(code, message); + } + + public static UnifiedResponse error(String code, @Nullable String message, @Nullable T data) { + return new UnifiedResponse<>(code, message, data); + } + + public static UnifiedResponse error(String code, Throwable e) { + return new UnifiedResponse<>(code, e.getMessage()); + } + + // ================================ + // #endregion - error + // ================================ + + // ================================ + // #region - of + // ================================ + + public static UnifiedResponse of(String code, @Nullable String message) { + return new UnifiedResponse<>(code, message); + } + + public static UnifiedResponse of(String code, @Nullable String message, @Nullable T data) { + return new UnifiedResponse<>(code, message, data); + } + + // ================================ + // #endregion - of + // ================================ + + protected UnifiedResponses() { + } +} diff --git a/src/test/java/xyz/zhouxy/plusone/commons/model/dto/CustomUnifiedResponseFactoryTests.java b/src/test/java/xyz/zhouxy/plusone/commons/model/dto/CustomUnifiedResponseFactoryTests.java new file mode 100644 index 0000000..c747cc1 --- /dev/null +++ b/src/test/java/xyz/zhouxy/plusone/commons/model/dto/CustomUnifiedResponseFactoryTests.java @@ -0,0 +1,577 @@ +/* + * Copyright 2024-2025 the original author or authors. + * + * Licensed 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 + * + * https://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 xyz.zhouxy.plusone.commons.model.dto; + +import static org.junit.jupiter.api.Assertions.*; + +import javax.annotation.Nullable; + +import org.junit.jupiter.api.Test; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; +import com.google.gson.Gson; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import xyz.zhouxy.plusone.commons.exception.business.BizException; + +@Slf4j +public +class CustomUnifiedResponseFactoryTests { + + static final ObjectMapper jackson = new ObjectMapper(); + + static final Gson gson = new Gson(); + + static final PageResult pageResult = PageResult.of(Lists.newArrayList( + new User("zhouxy1", "zhouxy1@gmail.com"), + new User("zhouxy2", "zhouxy2@gmail.com") + ), 108); + + static { + jackson.setSerializationInclusion(Include.NON_NULL); + } + + @Test + void testSuccess_WithoutArgument() throws Exception { + // 1. success without argument + UnifiedResponse success = CustomUnifiedResponses.success(); + assertEquals("0000000", success.getCode()); + assertEquals("成功", success.getMessage()); + assertNull(success.getData()); + String jacksonSuccess = jackson.writeValueAsString(success); + log.info("jacksonSuccess: {}", jacksonSuccess); + assertEquals("{\"code\":\"0000000\",\"message\":\"成功\"}", jacksonSuccess); + } + + @Test + void testSuccess_WithMessage() throws Exception { + // 2. success with message + UnifiedResponse successWithMessage = CustomUnifiedResponses.success("成功"); + assertEquals("0000000", successWithMessage.getCode()); + assertEquals("成功", successWithMessage.getMessage()); + assertNull(successWithMessage.getData()); + String jacksonSuccessWithMessage = jackson.writeValueAsString(successWithMessage); + log.info("jacksonSuccessWithMessage: {}", jacksonSuccessWithMessage); + assertEquals("{\"code\":\"0000000\",\"message\":\"成功\"}", jacksonSuccessWithMessage); + } + + @Test + void testSuccess_WithMessageAndNullData() throws Exception { + // success with message and null data + final UnifiedResponse successWithMessageAndNullData = CustomUnifiedResponses.success("查询成功", null); + assertEquals("0000000", successWithMessageAndNullData.getCode()); + assertEquals("查询成功", successWithMessageAndNullData.getMessage()); + assertNull(successWithMessageAndNullData.getData()); + final String jacksonSuccessWithMessageAndNullData = jackson.writeValueAsString(successWithMessageAndNullData); + log.info("jacksonSuccessWithMessageAndNullData: {}", jacksonSuccessWithMessageAndNullData); + assertEquals("{\"code\":\"0000000\",\"message\":\"查询成功\"}", jacksonSuccessWithMessageAndNullData); + + assertEquals("{code: \"0000000\", message: \"查询成功\", data: null}", successWithMessageAndNullData.toString()); + } + + @Test + void testSuccess_WithMessageAndStringData() throws Exception { + UnifiedResponse successWithStringData = CustomUnifiedResponses.success("查询成功", "zhouxy"); + assertEquals("0000000", successWithStringData.getCode()); + assertEquals("查询成功", successWithStringData.getMessage()); + assertEquals("zhouxy", successWithStringData.getData()); + String jacksonSuccessWithStringData = jackson.writeValueAsString(successWithStringData); + log.info("jacksonSuccessWithStringData: {}", jacksonSuccessWithStringData); + assertEquals("{\"code\":\"0000000\",\"message\":\"查询成功\",\"data\":\"zhouxy\"}", jacksonSuccessWithStringData); + + assertEquals("{code: \"0000000\", message: \"查询成功\", data: \"zhouxy\"}", successWithStringData.toString()); + } + + @Test + void testSuccess_WithMessageAndIntegerData() throws Exception { + final UnifiedResponse successWithIntegerData = CustomUnifiedResponses.success("查询成功", 1); + assertEquals("0000000", successWithIntegerData.getCode()); + assertEquals("查询成功", successWithIntegerData.getMessage()); + assertEquals(1, successWithIntegerData.getData()); + final String jacksonSuccessWithIntegerData = jackson.writeValueAsString(successWithIntegerData); + log.info("jacksonSuccessWithIntegerData: {}", jacksonSuccessWithIntegerData); + assertEquals("{\"code\":\"0000000\",\"message\":\"查询成功\",\"data\":1}", jacksonSuccessWithIntegerData); + + assertEquals("{code: \"0000000\", message: \"查询成功\", data: 1}", successWithIntegerData.toString()); + } + + @Test + void testSuccess_WithMessageAndData() throws Exception { + UnifiedResponse> successWithData = CustomUnifiedResponses.success("查询成功", pageResult); + assertEquals("0000000", successWithData.getCode()); + assertEquals("查询成功", successWithData.getMessage()); + assertNotNull(successWithData.getData()); + assertEquals(pageResult, successWithData.getData()); + String jacksonSuccessWithData = jackson.writeValueAsString(successWithData); + log.info("jacksonSuccessWithData: {}", jacksonSuccessWithData); + assertEquals("{\"code\":\"0000000\",\"message\":\"查询成功\",\"data\":{\"total\":108,\"content\":[{\"username\":\"zhouxy1\",\"email\":\"zhouxy1@gmail.com\"},{\"username\":\"zhouxy2\",\"email\":\"zhouxy2@gmail.com\"}]}}", jacksonSuccessWithData); + } + + @Test + void testSuccess_WithNullMessage() throws Exception { + // 3. success with null message + UnifiedResponse successWithNullMessage = CustomUnifiedResponses.success(null); + assertEquals("0000000", successWithNullMessage.getCode()); + assertEquals("", successWithNullMessage.getMessage()); + assertNull(successWithNullMessage.getData()); + String jacksonSuccessWithNullMessage = jackson.writeValueAsString(successWithNullMessage); + log.info("jacksonSuccessWithNullMessage: {}", jacksonSuccessWithNullMessage); + assertEquals("{\"code\":\"0000000\",\"message\":\"\"}", jacksonSuccessWithNullMessage); + } + + // success with null message and null data + @Test + void testSuccess_WithNullMessageAndNullData() throws Exception { + final UnifiedResponse successWithNullMessageAndNullData = CustomUnifiedResponses.success(null, null); + assertEquals("0000000", successWithNullMessageAndNullData.getCode()); + assertEquals("", successWithNullMessageAndNullData.getMessage()); + assertNull(successWithNullMessageAndNullData.getData()); + + final String jacksonSuccessWithNullMessageAndNullData = jackson.writeValueAsString(successWithNullMessageAndNullData); + log.info("jacksonSuccessWithNullMessageAndNullData: {}", jacksonSuccessWithNullMessageAndNullData); + assertEquals("{\"code\":\"0000000\",\"message\":\"\"}", jacksonSuccessWithNullMessageAndNullData); + + assertEquals("{code: \"0000000\", message: \"\", data: null}", successWithNullMessageAndNullData.toString()); + } + + @Test + void testSuccess_WithNullMessageAndData() throws Exception { + // success with null message and data + final User user = new User("zhouxy", "zhouxy@code108.cn"); + final UnifiedResponse successWithNullMessageAndData = CustomUnifiedResponses.success(null, user); + assertEquals("0000000", successWithNullMessageAndData.getCode()); + assertEquals("", successWithNullMessageAndData.getMessage()); + assertEquals(user, successWithNullMessageAndData.getData()); + final String jacksonSuccessWithNullMessageAndData = jackson.writeValueAsString(successWithNullMessageAndData); + log.info("jacksonSuccessWithNullMessageAndData: {}", jacksonSuccessWithNullMessageAndData); + assertEquals("{\"code\":\"0000000\",\"message\":\"\",\"data\":{\"username\":\"zhouxy\",\"email\":\"zhouxy@code108.cn\"}}", + jacksonSuccessWithNullMessageAndData); + } + + @Test + void testSuccess_WithEmptyMessage() throws Exception { + // 4. success with empty message + UnifiedResponse successWithEmptyMessage = CustomUnifiedResponses.success(""); + assertEquals("0000000", successWithEmptyMessage.getCode()); + assertEquals("", successWithEmptyMessage.getMessage()); + assertNull(successWithEmptyMessage.getData()); + String jacksonSuccessWithEmptyMessage = jackson.writeValueAsString(successWithEmptyMessage); + log.info("jacksonSuccessWithEmptyMessage: {}", jacksonSuccessWithEmptyMessage); + assertEquals("{\"code\":\"0000000\",\"message\":\"\"}", jacksonSuccessWithEmptyMessage); + } + + // success with empty message and null data + @Test + void testSuccess_WithEmptyMessageAndNullData() throws Exception { + final UnifiedResponse successWithEmptyMessageAndNullData = CustomUnifiedResponses.success("", null); + assertEquals("0000000", successWithEmptyMessageAndNullData.getCode()); + assertEquals("", successWithEmptyMessageAndNullData.getMessage()); + assertNull(successWithEmptyMessageAndNullData.getData()); + + final String jacksonSuccessWithEmptyMessageAndNullData = jackson.writeValueAsString(successWithEmptyMessageAndNullData); + log.info("jacksonSuccessWithEmptyMessageAndNullData: {}", jacksonSuccessWithEmptyMessageAndNullData); + assertEquals("{\"code\":\"0000000\",\"message\":\"\"}", jacksonSuccessWithEmptyMessageAndNullData); + + assertEquals("{code: \"0000000\", message: \"\", data: null}", successWithEmptyMessageAndNullData.toString()); + } + + // success with empty message and data + @Test + void testSuccess_WithEmptyMessageAndData() throws Exception { + final User user = new User("zhouxy", "zhouxy@gmail.com"); + final UnifiedResponse successWithEmptyMessageAndData = CustomUnifiedResponses.success("", user); + assertEquals("0000000", successWithEmptyMessageAndData.getCode()); + assertEquals("", successWithEmptyMessageAndData.getMessage()); + assertEquals(user, successWithEmptyMessageAndData.getData()); + + final String jacksonSuccessWithEmptyMessageAndData = jackson.writeValueAsString(successWithEmptyMessageAndData); + log.info("jacksonSuccessWithEmptyMessageAndData: {}", jacksonSuccessWithEmptyMessageAndData); + assertEquals("{\"code\":\"0000000\",\"message\":\"\",\"data\":{\"username\":\"zhouxy\",\"email\":\"zhouxy@gmail.com\"}}", jacksonSuccessWithEmptyMessageAndData); + } + + @Test + void testError_WithStatusAndMessage() throws Exception { + final UnifiedResponse errorWithStatusAndMessage = CustomUnifiedResponses.error("108", "查询失败"); + assertEquals("108", errorWithStatusAndMessage.getCode()); + assertEquals("查询失败", errorWithStatusAndMessage.getMessage()); + assertNull(errorWithStatusAndMessage.getData()); + assertEquals("{code: \"108\", message: \"查询失败\", data: null}", errorWithStatusAndMessage.toString()); + + final String jacksonErrorWithStatusAndMessage = jackson.writeValueAsString(errorWithStatusAndMessage); + log.info("jacksonErrorWithStatusAndMessage: {}", jacksonErrorWithStatusAndMessage); + assertEquals("{\"code\":\"108\",\"message\":\"查询失败\"}", jacksonErrorWithStatusAndMessage); + + final String gsonErrorWithStatusAndMessage = gson.toJson(errorWithStatusAndMessage); + assertEquals("{\"code\":\"108\",\"message\":\"查询失败\"}", gsonErrorWithStatusAndMessage); + } + + @Test + void testError_WithStatusAndMessage_AndNullData() throws Exception { + final UnifiedResponse errorWithStatusAndMessageAndNullData = CustomUnifiedResponses.error("108", "查询失败", null); + assertEquals("108", errorWithStatusAndMessageAndNullData.getCode()); + assertEquals("查询失败", errorWithStatusAndMessageAndNullData.getMessage()); + assertNull(errorWithStatusAndMessageAndNullData.getData()); + assertEquals("{code: \"108\", message: \"查询失败\", data: null}", errorWithStatusAndMessageAndNullData.toString()); + + final String jacksonErrorWithStatusAndMessageAndNullData = jackson.writeValueAsString(errorWithStatusAndMessageAndNullData); + log.info("jacksonErrorWithStatusAndMessage: {}", jacksonErrorWithStatusAndMessageAndNullData); + assertEquals("{\"code\":\"108\",\"message\":\"查询失败\"}", jacksonErrorWithStatusAndMessageAndNullData); + + final String gsonErrorWithStatusAndMessageAndNullData = gson.toJson(errorWithStatusAndMessageAndNullData); + assertEquals("{\"code\":\"108\",\"message\":\"查询失败\"}", gsonErrorWithStatusAndMessageAndNullData); + } + + @Test + void testError_WithStatusAndMessage_AndData() throws Exception { + final PageResult emptyPageResult = PageResult.empty(); + final UnifiedResponse> errorWithStatusAndMessageAndData = CustomUnifiedResponses.error("108", "查询失败", emptyPageResult); + assertEquals("108", errorWithStatusAndMessageAndData.getCode()); + assertEquals("查询失败", errorWithStatusAndMessageAndData.getMessage()); + assertEquals(emptyPageResult, errorWithStatusAndMessageAndData.getData()); + assertEquals("{code: \"108\", message: \"查询失败\", data: PageResult [total=0, content=[]]}", errorWithStatusAndMessageAndData.toString()); + + final String jacksonErrorWithStatusAndMessageAndData = jackson.writeValueAsString(errorWithStatusAndMessageAndData); + assertEquals("{\"code\":\"108\",\"message\":\"查询失败\",\"data\":{\"total\":0,\"content\":[]}}", + jacksonErrorWithStatusAndMessageAndData); + + final String gsonErrorWithStatusAndMessageAndData = gson.toJson(errorWithStatusAndMessageAndData); + assertEquals("{\"code\":\"108\",\"message\":\"查询失败\",\"data\":{\"total\":0,\"content\":[]}}", + gsonErrorWithStatusAndMessageAndData); + } + + @Test + void testError_WithStatusAndNullMessage() throws Exception { + UnifiedResponse errorWithStatusAndNullMessage = CustomUnifiedResponses.error("500", (String) null); + assertEquals("500", errorWithStatusAndNullMessage.getCode()); + assertEquals("", errorWithStatusAndNullMessage.getMessage()); + assertNull(errorWithStatusAndNullMessage.getData()); + + final String jacksonErrorWithStatusAndNullMessage = jackson.writeValueAsString(errorWithStatusAndNullMessage); + assertEquals("{\"code\":\"500\",\"message\":\"\"}", jacksonErrorWithStatusAndNullMessage); + + final String gsonErrorWithStatusAndNullMessage = gson.toJson(errorWithStatusAndNullMessage); + assertEquals("{\"code\":\"500\",\"message\":\"\"}", gsonErrorWithStatusAndNullMessage); + } + + @Test + void testError_WithStatusAndNullMessage_AndNullData() throws Exception { + UnifiedResponse errorWithStatusAndNullMessageAndNullData = CustomUnifiedResponses.error("500", (String) null, null); + + assertEquals("500", errorWithStatusAndNullMessageAndNullData.getCode()); + assertEquals("", errorWithStatusAndNullMessageAndNullData.getMessage()); + assertNull(errorWithStatusAndNullMessageAndNullData.getData()); + + final String jacksonErrorWithStatusAndNullMessageAndNullData = jackson.writeValueAsString(errorWithStatusAndNullMessageAndNullData); + assertEquals("{\"code\":\"500\",\"message\":\"\"}", jacksonErrorWithStatusAndNullMessageAndNullData); + + final String gsonErrorWithStatusAndNullMessageAndNullData = gson.toJson(errorWithStatusAndNullMessageAndNullData); + assertEquals("{\"code\":\"500\",\"message\":\"\"}", gsonErrorWithStatusAndNullMessageAndNullData); + } + + @Test + void testError_WithStatusAndNullMessage_AndData() throws Exception { + PageResult emptyPageResult = PageResult.empty(); + UnifiedResponse> errorWithStatusAndNullMessageAndData = CustomUnifiedResponses.error("500", (String) null, emptyPageResult); + assertEquals("500", errorWithStatusAndNullMessageAndData.getCode()); + assertEquals("", errorWithStatusAndNullMessageAndData.getMessage()); + assertEquals(emptyPageResult, errorWithStatusAndNullMessageAndData.getData()); + final String jacksonErrorWithStatusAndNullMessageAndData = jackson.writeValueAsString(errorWithStatusAndNullMessageAndData); + assertEquals("{\"code\":\"500\",\"message\":\"\",\"data\":{\"total\":0,\"content\":[]}}", jacksonErrorWithStatusAndNullMessageAndData); + final String gsonErrorWithStatusAndNullMessageAndData = gson.toJson(errorWithStatusAndNullMessageAndData); + assertEquals("{\"code\":\"500\",\"message\":\"\",\"data\":{\"total\":0,\"content\":[]}}", gsonErrorWithStatusAndNullMessageAndData); + } + + @Test + void testError_WithStatusAndEmptyMessage() throws Exception { + UnifiedResponse errorWithStatusAndEmptyMessage = CustomUnifiedResponses.error("500", ""); + assertEquals("500", errorWithStatusAndEmptyMessage.getCode()); + assertEquals("", errorWithStatusAndEmptyMessage.getMessage()); + assertNull(errorWithStatusAndEmptyMessage.getData()); + + final String jacksonErrorWithStatusAndEmptyMessage = jackson.writeValueAsString(errorWithStatusAndEmptyMessage); + assertEquals("{\"code\":\"500\",\"message\":\"\"}", jacksonErrorWithStatusAndEmptyMessage); + + final String gsonErrorWithStatusAndEmptyMessage = gson.toJson(errorWithStatusAndEmptyMessage); + assertEquals("{\"code\":\"500\",\"message\":\"\"}", gsonErrorWithStatusAndEmptyMessage); + } + + @Test + void testError_WithStatusAndEmptyMessage_AndNullData() throws Exception { + UnifiedResponse errorWithStatusAndEmptyMessageAndNullData = CustomUnifiedResponses.error("500", "", null); + + assertEquals("500", errorWithStatusAndEmptyMessageAndNullData.getCode()); + assertEquals("", errorWithStatusAndEmptyMessageAndNullData.getMessage()); + assertNull(errorWithStatusAndEmptyMessageAndNullData.getData()); + + final String jacksonErrorWithStatusAndEmptyMessageAndNullData = jackson.writeValueAsString(errorWithStatusAndEmptyMessageAndNullData); + assertEquals("{\"code\":\"500\",\"message\":\"\"}", jacksonErrorWithStatusAndEmptyMessageAndNullData); + + final String gsonErrorWithStatusAndEmptyMessageAndNullData = gson.toJson(errorWithStatusAndEmptyMessageAndNullData); + assertEquals("{\"code\":\"500\",\"message\":\"\"}", gsonErrorWithStatusAndEmptyMessageAndNullData); + } + + @Test + void testError_WithStatusAndEmptyMessage_AndData() throws Exception { + PageResult emptyPageResult = PageResult.empty(); + UnifiedResponse> errorWithStatusAndEmptyMessageAndData = CustomUnifiedResponses.error("500", "", emptyPageResult); + assertEquals("500", errorWithStatusAndEmptyMessageAndData.getCode()); + assertEquals("", errorWithStatusAndEmptyMessageAndData.getMessage()); + assertEquals(emptyPageResult, errorWithStatusAndEmptyMessageAndData.getData()); + final String jacksonErrorWithStatusAndEmptyMessageAndData = jackson.writeValueAsString(errorWithStatusAndEmptyMessageAndData); + assertEquals("{\"code\":\"500\",\"message\":\"\",\"data\":{\"total\":0,\"content\":[]}}", jacksonErrorWithStatusAndEmptyMessageAndData); + final String gsonErrorWithStatusAndEmptyMessageAndData = gson.toJson(errorWithStatusAndEmptyMessageAndData); + assertEquals("{\"code\":\"500\",\"message\":\"\",\"data\":{\"total\":0,\"content\":[]}}", gsonErrorWithStatusAndEmptyMessageAndData); + } + + @Test + void testError_WithStatusAndThrowable() throws Exception { + final IllegalArgumentException e = new IllegalArgumentException("ID cannot be null"); + final UnifiedResponse errorWithStatusThrowable = CustomUnifiedResponses.error("500", e); + assertEquals("500", errorWithStatusThrowable.getCode()); + assertEquals("ID cannot be null", errorWithStatusThrowable.getMessage()); + assertNull(errorWithStatusThrowable.getData()); + assertEquals("{\"code\":\"500\",\"message\":\"ID cannot be null\"}", jackson.writeValueAsString(errorWithStatusThrowable)); + assertEquals("{\"code\":\"500\",\"message\":\"ID cannot be null\"}", gson.toJson(errorWithStatusThrowable)); + } + + @Test + void testError_WithStatusAndNullThrowable() { + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error("500", (Throwable) null)); + } + + @Test + void testError_WithNullStatus() { + final String nullStatus = null; + final String nullMessage = null; + final User user = new User("zhouxy", "zhouxy@gmail.com"); + + // message + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, "查询失败")); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, "查询失败", null)); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, "查询失败", user)); + + // empty message + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, "")); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, "", null)); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, "", user)); + + // null message + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, nullMessage)); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, "查询失败", null)); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, "查询失败", user)); + + // Throwable + BizException bizException = new BizException("业务异常"); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, bizException)); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.error(nullStatus, (Throwable) null)); + } + + + @Test + void testOf_WithStatusAndMessage() throws Exception { + final UnifiedResponse ofWithStatusAndMessage = CustomUnifiedResponses.of("108", "This is a message."); + assertEquals("108", ofWithStatusAndMessage.getCode()); + assertEquals("This is a message.", ofWithStatusAndMessage.getMessage()); + assertNull(ofWithStatusAndMessage.getData()); + + final String jacksonOfWithStatusAndMessage = jackson.writeValueAsString(ofWithStatusAndMessage); + log.info("jacksonOfWithStatusAndMessage: {}", jacksonOfWithStatusAndMessage); + assertEquals("{\"code\":\"108\",\"message\":\"This is a message.\"}", jacksonOfWithStatusAndMessage); + + assertEquals("{code: \"108\", message: \"This is a message.\", data: null}", ofWithStatusAndMessage.toString()); + + final String gsonOfWithStatusAndMessage = gson.toJson(ofWithStatusAndMessage); + assertEquals("{\"code\":\"108\",\"message\":\"This is a message.\"}", gsonOfWithStatusAndMessage); + } + + @Test + void testOf_WithStatusAndMessage_AndNullData() throws Exception { + final UnifiedResponse ofWithStatusAndMessageAndNullData = CustomUnifiedResponses.of("108", "This is a message.", null); + assertEquals("108", ofWithStatusAndMessageAndNullData.getCode()); + assertEquals("This is a message.", ofWithStatusAndMessageAndNullData.getMessage()); + assertNull(ofWithStatusAndMessageAndNullData.getData()); + + final String jacksonOfWithStatusAndMessageAndNullData = jackson.writeValueAsString(ofWithStatusAndMessageAndNullData); + log.info("jacksonOfWithStatusAndMessage: {}", jacksonOfWithStatusAndMessageAndNullData); + assertEquals("{\"code\":\"108\",\"message\":\"This is a message.\"}", jacksonOfWithStatusAndMessageAndNullData); + + assertEquals("{code: \"108\", message: \"This is a message.\", data: null}", ofWithStatusAndMessageAndNullData.toString()); + + final String gsonOfWithStatusAndMessageAndNullData = gson.toJson(ofWithStatusAndMessageAndNullData); + assertEquals("{\"code\":\"108\",\"message\":\"This is a message.\"}", gsonOfWithStatusAndMessageAndNullData); + } + + @Test + void testOf_WithStatusAndMessage_AndData() throws Exception { + final PageResult emptyPageResult = PageResult.empty(); + final UnifiedResponse> ofWithStatusAndMessageAndData + = CustomUnifiedResponses.of("108", "This is a message.", emptyPageResult); + assertEquals("{code: \"108\", message: \"This is a message.\", data: PageResult [total=0, content=[]]}", + ofWithStatusAndMessageAndData.toString()); + assertEquals("108", ofWithStatusAndMessageAndData.getCode()); + assertEquals("This is a message.", ofWithStatusAndMessageAndData.getMessage()); + assertEquals(emptyPageResult, ofWithStatusAndMessageAndData.getData()); + final String jacksonOfWithStatusAndMessageAndData = jackson.writeValueAsString(ofWithStatusAndMessageAndData); + assertEquals("{\"code\":\"108\",\"message\":\"This is a message.\",\"data\":{\"total\":0,\"content\":[]}}", + jacksonOfWithStatusAndMessageAndData); + final String gsonOfWithStatusAndMessageAndData = gson.toJson(ofWithStatusAndMessageAndData); + assertEquals("{\"code\":\"108\",\"message\":\"This is a message.\",\"data\":{\"total\":0,\"content\":[]}}", + gsonOfWithStatusAndMessageAndData); + } + + @Test + void testOf_WithStatusAndNullMessage() throws Exception { + UnifiedResponse ofWithStatusAndNullMessage = CustomUnifiedResponses.of("108", (String) null); + assertEquals("108", ofWithStatusAndNullMessage.getCode()); + assertEquals("", ofWithStatusAndNullMessage.getMessage()); + assertNull(ofWithStatusAndNullMessage.getData()); + + final String jacksonOfWithStatusAndNullMessage = jackson.writeValueAsString(ofWithStatusAndNullMessage); + assertEquals("{\"code\":\"108\",\"message\":\"\"}", jacksonOfWithStatusAndNullMessage); + + final String gsonOfWithStatusAndNullMessage = gson.toJson(ofWithStatusAndNullMessage); + assertEquals("{\"code\":\"108\",\"message\":\"\"}", gsonOfWithStatusAndNullMessage); + } + + @Test + void testOf_WithStatusAndNullMessage_AndNullData() throws Exception { + UnifiedResponse ofWithStatusAndNullMessageAndNullData = CustomUnifiedResponses.of("108", (String) null, null); + + assertEquals("108", ofWithStatusAndNullMessageAndNullData.getCode()); + assertEquals("", ofWithStatusAndNullMessageAndNullData.getMessage()); + assertNull(ofWithStatusAndNullMessageAndNullData.getData()); + + final String jacksonOfWithStatusAndNullMessageAndNullData = jackson.writeValueAsString(ofWithStatusAndNullMessageAndNullData); + assertEquals("{\"code\":\"108\",\"message\":\"\"}", jacksonOfWithStatusAndNullMessageAndNullData); + + final String gsonOfWithStatusAndNullMessageAndNullData = gson.toJson(ofWithStatusAndNullMessageAndNullData); + assertEquals("{\"code\":\"108\",\"message\":\"\"}", gsonOfWithStatusAndNullMessageAndNullData); + } + + @Test + void testOf_WithStatusAndNullMessage_AndData() throws Exception { + PageResult emptyPageResult = PageResult.empty(); + UnifiedResponse> ofWithStatusAndNullMessageAndData = CustomUnifiedResponses.of("108", (String) null, emptyPageResult); + assertEquals("108", ofWithStatusAndNullMessageAndData.getCode()); + assertEquals("", ofWithStatusAndNullMessageAndData.getMessage()); + assertEquals(emptyPageResult, ofWithStatusAndNullMessageAndData.getData()); + final String jacksonOfWithStatusAndNullMessageAndData = jackson.writeValueAsString(ofWithStatusAndNullMessageAndData); + assertEquals("{\"code\":\"108\",\"message\":\"\",\"data\":{\"total\":0,\"content\":[]}}", jacksonOfWithStatusAndNullMessageAndData); + final String gsonOfWithStatusAndNullMessageAndData = gson.toJson(ofWithStatusAndNullMessageAndData); + assertEquals("{\"code\":\"108\",\"message\":\"\",\"data\":{\"total\":0,\"content\":[]}}", gsonOfWithStatusAndNullMessageAndData); + } + + @Test + void testOf_WithStatusAndEmptyMessage() throws Exception { + UnifiedResponse ofWithStatusAndEmptyMessage = CustomUnifiedResponses.of("108", ""); + assertEquals("108", ofWithStatusAndEmptyMessage.getCode()); + assertEquals("", ofWithStatusAndEmptyMessage.getMessage()); + assertNull(ofWithStatusAndEmptyMessage.getData()); + + final String jacksonOfWithStatusAndEmptyMessage = jackson.writeValueAsString(ofWithStatusAndEmptyMessage); + assertEquals("{\"code\":\"108\",\"message\":\"\"}", jacksonOfWithStatusAndEmptyMessage); + + final String gsonOfWithStatusAndEmptyMessage = gson.toJson(ofWithStatusAndEmptyMessage); + assertEquals("{\"code\":\"108\",\"message\":\"\"}", gsonOfWithStatusAndEmptyMessage); + } + + @Test + void testOf_WithStatusAndEmptyMessage_AndNullData() throws Exception { + UnifiedResponse ofWithStatusAndEmptyMessageAndNullData = CustomUnifiedResponses.of("108", "", null); + + assertEquals("108", ofWithStatusAndEmptyMessageAndNullData.getCode()); + assertEquals("", ofWithStatusAndEmptyMessageAndNullData.getMessage()); + assertNull(ofWithStatusAndEmptyMessageAndNullData.getData()); + + final String jacksonOfWithStatusAndEmptyMessageAndNullData = jackson.writeValueAsString(ofWithStatusAndEmptyMessageAndNullData); + assertEquals("{\"code\":\"108\",\"message\":\"\"}", jacksonOfWithStatusAndEmptyMessageAndNullData); + + final String gsonOfWithStatusAndEmptyMessageAndNullData = gson.toJson(ofWithStatusAndEmptyMessageAndNullData); + assertEquals("{\"code\":\"108\",\"message\":\"\"}", gsonOfWithStatusAndEmptyMessageAndNullData); + } + + @Test + void testOf_WithStatusAndEmptyMessage_AndData() throws Exception { + PageResult emptyPageResult = PageResult.empty(); + UnifiedResponse> ofWithStatusAndEmptyMessageAndData = CustomUnifiedResponses.of("108", "", emptyPageResult); + assertEquals("108", ofWithStatusAndEmptyMessageAndData.getCode()); + assertEquals("", ofWithStatusAndEmptyMessageAndData.getMessage()); + assertEquals(emptyPageResult, ofWithStatusAndEmptyMessageAndData.getData()); + final String jacksonOfWithStatusAndEmptyMessageAndData = jackson.writeValueAsString(ofWithStatusAndEmptyMessageAndData); + assertEquals("{\"code\":\"108\",\"message\":\"\",\"data\":{\"total\":0,\"content\":[]}}", jacksonOfWithStatusAndEmptyMessageAndData); + final String gsonOfWithStatusAndEmptyMessageAndData = gson.toJson(ofWithStatusAndEmptyMessageAndData); + assertEquals("{\"code\":\"108\",\"message\":\"\",\"data\":{\"total\":0,\"content\":[]}}", gsonOfWithStatusAndEmptyMessageAndData); + } + + @Test + void testOf_WithNullStatus() { + final String nullStatus = null; + final String nullMessage = null; + final User user = new User("zhouxy", "zhouxy@gmail.com"); + + // message + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.of(nullStatus, "查询失败")); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.of(nullStatus, "查询失败", null)); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.of(nullStatus, "查询失败", user)); + + // empty message + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.of(nullStatus, "")); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.of(nullStatus, "", null)); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.of(nullStatus, "", user)); + + // null message + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.of(nullStatus, nullMessage)); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.of(nullStatus, "查询失败", null)); + assertThrows(NullPointerException.class, () -> CustomUnifiedResponses.of(nullStatus, "查询失败", user)); + } + + @Data + @NoArgsConstructor + @AllArgsConstructor + private static class User { + private String username; + private String email; + } + + public static class CustomUnifiedResponses extends UnifiedResponses { + + public static final String SUCCESS_CODE = "0000000"; + public static final String DEFAULT_SUCCESS_MSG = "成功"; + + public static UnifiedResponse success() { + return of(SUCCESS_CODE, DEFAULT_SUCCESS_MSG); + } + + public static UnifiedResponse success(@Nullable String message) { + return of(SUCCESS_CODE, message); + } + + public static UnifiedResponse success(@Nullable String message, @Nullable T data) { + return of(SUCCESS_CODE, message, data); + } + + private CustomUnifiedResponses() { + super(); + } + } + +} diff --git a/src/test/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponseTests.java b/src/test/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponseTests.java index 8595ccc..55938f8 100644 --- a/src/test/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponseTests.java +++ b/src/test/java/xyz/zhouxy/plusone/commons/model/dto/UnifiedResponseTests.java @@ -51,7 +51,7 @@ class UnifiedResponseTests { @Test void testSuccess_WithoutArgument() throws Exception { // 1. success without argument - UnifiedResponse success = UnifiedResponse.success(); + UnifiedResponse success = UnifiedResponses.success(); assertEquals("2000000", success.getCode()); assertEquals("SUCCESS", success.getMessage()); assertNull(success.getData()); @@ -63,7 +63,7 @@ class UnifiedResponseTests { @Test void testSuccess_WithMessage() throws Exception { // 2. success with message - UnifiedResponse successWithMessage = UnifiedResponse.success("成功"); + UnifiedResponse successWithMessage = UnifiedResponses.success("成功"); assertEquals("2000000", successWithMessage.getCode()); assertEquals("成功", successWithMessage.getMessage()); assertNull(successWithMessage.getData()); @@ -75,7 +75,7 @@ class UnifiedResponseTests { @Test void testSuccess_WithMessageAndNullData() throws Exception { // success with message and null data - final UnifiedResponse successWithMessageAndNullData = UnifiedResponse.success("查询成功", null); + final UnifiedResponse successWithMessageAndNullData = UnifiedResponses.success("查询成功", null); assertEquals("2000000", successWithMessageAndNullData.getCode()); assertEquals("查询成功", successWithMessageAndNullData.getMessage()); assertNull(successWithMessageAndNullData.getData()); @@ -88,7 +88,7 @@ class UnifiedResponseTests { @Test void testSuccess_WithMessageAndStringData() throws Exception { - UnifiedResponse successWithStringData = UnifiedResponse.success("查询成功", "zhouxy"); + UnifiedResponse successWithStringData = UnifiedResponses.success("查询成功", "zhouxy"); assertEquals("2000000", successWithStringData.getCode()); assertEquals("查询成功", successWithStringData.getMessage()); assertEquals("zhouxy", successWithStringData.getData()); @@ -101,7 +101,7 @@ class UnifiedResponseTests { @Test void testSuccess_WithMessageAndIntegerData() throws Exception { - final UnifiedResponse successWithIntegerData = UnifiedResponse.success("查询成功", 1); + final UnifiedResponse successWithIntegerData = UnifiedResponses.success("查询成功", 1); assertEquals("2000000", successWithIntegerData.getCode()); assertEquals("查询成功", successWithIntegerData.getMessage()); assertEquals(1, successWithIntegerData.getData()); @@ -114,7 +114,7 @@ class UnifiedResponseTests { @Test void testSuccess_WithMessageAndData() throws Exception { - UnifiedResponse> successWithData = UnifiedResponse.success("查询成功", pageResult); + UnifiedResponse> successWithData = UnifiedResponses.success("查询成功", pageResult); assertEquals("2000000", successWithData.getCode()); assertEquals("查询成功", successWithData.getMessage()); assertNotNull(successWithData.getData()); @@ -127,7 +127,7 @@ class UnifiedResponseTests { @Test void testSuccess_WithNullMessage() throws Exception { // 3. success with null message - UnifiedResponse successWithNullMessage = UnifiedResponse.success(null); + UnifiedResponse successWithNullMessage = UnifiedResponses.success(null); assertEquals("2000000", successWithNullMessage.getCode()); assertEquals("", successWithNullMessage.getMessage()); assertNull(successWithNullMessage.getData()); @@ -139,7 +139,7 @@ class UnifiedResponseTests { // success with null message and null data @Test void testSuccess_WithNullMessageAndNullData() throws Exception { - final UnifiedResponse successWithNullMessageAndNullData = UnifiedResponse.success(null, null); + final UnifiedResponse successWithNullMessageAndNullData = UnifiedResponses.success(null, null); assertEquals("2000000", successWithNullMessageAndNullData.getCode()); assertEquals("", successWithNullMessageAndNullData.getMessage()); assertNull(successWithNullMessageAndNullData.getData()); @@ -155,7 +155,7 @@ class UnifiedResponseTests { void testSuccess_WithNullMessageAndData() throws Exception { // success with null message and data final User user = new User("zhouxy", "zhouxy@code108.cn"); - final UnifiedResponse successWithNullMessageAndData = UnifiedResponse.success(null, user); + final UnifiedResponse successWithNullMessageAndData = UnifiedResponses.success(null, user); assertEquals("2000000", successWithNullMessageAndData.getCode()); assertEquals("", successWithNullMessageAndData.getMessage()); assertEquals(user, successWithNullMessageAndData.getData()); @@ -168,7 +168,7 @@ class UnifiedResponseTests { @Test void testSuccess_WithEmptyMessage() throws Exception { // 4. success with empty message - UnifiedResponse successWithEmptyMessage = UnifiedResponse.success(""); + UnifiedResponse successWithEmptyMessage = UnifiedResponses.success(""); assertEquals("2000000", successWithEmptyMessage.getCode()); assertEquals("", successWithEmptyMessage.getMessage()); assertNull(successWithEmptyMessage.getData()); @@ -180,7 +180,7 @@ class UnifiedResponseTests { // success with empty message and null data @Test void testSuccess_WithEmptyMessageAndNullData() throws Exception { - final UnifiedResponse successWithEmptyMessageAndNullData = UnifiedResponse.success("", null); + final UnifiedResponse successWithEmptyMessageAndNullData = UnifiedResponses.success("", null); assertEquals("2000000", successWithEmptyMessageAndNullData.getCode()); assertEquals("", successWithEmptyMessageAndNullData.getMessage()); assertNull(successWithEmptyMessageAndNullData.getData()); @@ -196,7 +196,7 @@ class UnifiedResponseTests { @Test void testSuccess_WithEmptyMessageAndData() throws Exception { final User user = new User("zhouxy", "zhouxy@gmail.com"); - final UnifiedResponse successWithEmptyMessageAndData = UnifiedResponse.success("", user); + final UnifiedResponse successWithEmptyMessageAndData = UnifiedResponses.success("", user); assertEquals("2000000", successWithEmptyMessageAndData.getCode()); assertEquals("", successWithEmptyMessageAndData.getMessage()); assertEquals(user, successWithEmptyMessageAndData.getData()); @@ -208,7 +208,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndMessage() throws Exception { - final UnifiedResponse errorWithStatusAndMessage = UnifiedResponse.error("108", "查询失败"); + final UnifiedResponse errorWithStatusAndMessage = UnifiedResponses.error("108", "查询失败"); assertEquals("108", errorWithStatusAndMessage.getCode()); assertEquals("查询失败", errorWithStatusAndMessage.getMessage()); assertNull(errorWithStatusAndMessage.getData()); @@ -224,7 +224,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndMessage_AndNullData() throws Exception { - final UnifiedResponse errorWithStatusAndMessageAndNullData = UnifiedResponse.error("108", "查询失败", null); + final UnifiedResponse errorWithStatusAndMessageAndNullData = UnifiedResponses.error("108", "查询失败", null); assertEquals("108", errorWithStatusAndMessageAndNullData.getCode()); assertEquals("查询失败", errorWithStatusAndMessageAndNullData.getMessage()); assertNull(errorWithStatusAndMessageAndNullData.getData()); @@ -241,7 +241,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndMessage_AndData() throws Exception { final PageResult emptyPageResult = PageResult.empty(); - final UnifiedResponse> errorWithStatusAndMessageAndData = UnifiedResponse.error("108", "查询失败", emptyPageResult); + final UnifiedResponse> errorWithStatusAndMessageAndData = UnifiedResponses.error("108", "查询失败", emptyPageResult); assertEquals("108", errorWithStatusAndMessageAndData.getCode()); assertEquals("查询失败", errorWithStatusAndMessageAndData.getMessage()); assertEquals(emptyPageResult, errorWithStatusAndMessageAndData.getData()); @@ -258,7 +258,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndNullMessage() throws Exception { - UnifiedResponse errorWithStatusAndNullMessage = UnifiedResponse.error("500", (String) null); + UnifiedResponse errorWithStatusAndNullMessage = UnifiedResponses.error("500", (String) null); assertEquals("500", errorWithStatusAndNullMessage.getCode()); assertEquals("", errorWithStatusAndNullMessage.getMessage()); assertNull(errorWithStatusAndNullMessage.getData()); @@ -272,7 +272,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndNullMessage_AndNullData() throws Exception { - UnifiedResponse errorWithStatusAndNullMessageAndNullData = UnifiedResponse.error("500", (String) null, null); + UnifiedResponse errorWithStatusAndNullMessageAndNullData = UnifiedResponses.error("500", (String) null, null); assertEquals("500", errorWithStatusAndNullMessageAndNullData.getCode()); assertEquals("", errorWithStatusAndNullMessageAndNullData.getMessage()); @@ -288,7 +288,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndNullMessage_AndData() throws Exception { PageResult emptyPageResult = PageResult.empty(); - UnifiedResponse> errorWithStatusAndNullMessageAndData = UnifiedResponse.error("500", (String) null, emptyPageResult); + UnifiedResponse> errorWithStatusAndNullMessageAndData = UnifiedResponses.error("500", (String) null, emptyPageResult); assertEquals("500", errorWithStatusAndNullMessageAndData.getCode()); assertEquals("", errorWithStatusAndNullMessageAndData.getMessage()); assertEquals(emptyPageResult, errorWithStatusAndNullMessageAndData.getData()); @@ -300,7 +300,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndEmptyMessage() throws Exception { - UnifiedResponse errorWithStatusAndEmptyMessage = UnifiedResponse.error("500", ""); + UnifiedResponse errorWithStatusAndEmptyMessage = UnifiedResponses.error("500", ""); assertEquals("500", errorWithStatusAndEmptyMessage.getCode()); assertEquals("", errorWithStatusAndEmptyMessage.getMessage()); assertNull(errorWithStatusAndEmptyMessage.getData()); @@ -314,7 +314,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndEmptyMessage_AndNullData() throws Exception { - UnifiedResponse errorWithStatusAndEmptyMessageAndNullData = UnifiedResponse.error("500", "", null); + UnifiedResponse errorWithStatusAndEmptyMessageAndNullData = UnifiedResponses.error("500", "", null); assertEquals("500", errorWithStatusAndEmptyMessageAndNullData.getCode()); assertEquals("", errorWithStatusAndEmptyMessageAndNullData.getMessage()); @@ -330,7 +330,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndEmptyMessage_AndData() throws Exception { PageResult emptyPageResult = PageResult.empty(); - UnifiedResponse> errorWithStatusAndEmptyMessageAndData = UnifiedResponse.error("500", "", emptyPageResult); + UnifiedResponse> errorWithStatusAndEmptyMessageAndData = UnifiedResponses.error("500", "", emptyPageResult); assertEquals("500", errorWithStatusAndEmptyMessageAndData.getCode()); assertEquals("", errorWithStatusAndEmptyMessageAndData.getMessage()); assertEquals(emptyPageResult, errorWithStatusAndEmptyMessageAndData.getData()); @@ -343,7 +343,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndThrowable() throws Exception { final IllegalArgumentException e = new IllegalArgumentException("ID cannot be null"); - final UnifiedResponse errorWithStatusThrowable = UnifiedResponse.error("500", e); + final UnifiedResponse errorWithStatusThrowable = UnifiedResponses.error("500", e); assertEquals("500", errorWithStatusThrowable.getCode()); assertEquals("ID cannot be null", errorWithStatusThrowable.getMessage()); assertNull(errorWithStatusThrowable.getData()); @@ -353,7 +353,7 @@ class UnifiedResponseTests { @Test void testError_WithStatusAndNullThrowable() { - assertThrows(NullPointerException.class, () -> UnifiedResponse.error("500", (Throwable) null)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error("500", (Throwable) null)); } @Test @@ -363,30 +363,30 @@ class UnifiedResponseTests { final User user = new User("zhouxy", "zhouxy@gmail.com"); // message - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, "查询失败")); - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, "查询失败", null)); - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, "查询失败", user)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, "查询失败")); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, "查询失败", null)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, "查询失败", user)); // empty message - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, "")); - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, "", null)); - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, "", user)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, "")); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, "", null)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, "", user)); // null message - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, nullMessage)); - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, "查询失败", null)); - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, "查询失败", user)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, nullMessage)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, "查询失败", null)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, "查询失败", user)); // Throwable BizException bizException = new BizException("业务异常"); - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, bizException)); - assertThrows(NullPointerException.class, () -> UnifiedResponse.error(nullStatus, (Throwable) null)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, bizException)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.error(nullStatus, (Throwable) null)); } @Test void testOf_WithStatusAndMessage() throws Exception { - final UnifiedResponse ofWithStatusAndMessage = UnifiedResponse.of("108", "This is a message."); + final UnifiedResponse ofWithStatusAndMessage = UnifiedResponses.of("108", "This is a message."); assertEquals("108", ofWithStatusAndMessage.getCode()); assertEquals("This is a message.", ofWithStatusAndMessage.getMessage()); assertNull(ofWithStatusAndMessage.getData()); @@ -403,7 +403,7 @@ class UnifiedResponseTests { @Test void testOf_WithStatusAndMessage_AndNullData() throws Exception { - final UnifiedResponse ofWithStatusAndMessageAndNullData = UnifiedResponse.of("108", "This is a message.", null); + final UnifiedResponse ofWithStatusAndMessageAndNullData = UnifiedResponses.of("108", "This is a message.", null); assertEquals("108", ofWithStatusAndMessageAndNullData.getCode()); assertEquals("This is a message.", ofWithStatusAndMessageAndNullData.getMessage()); assertNull(ofWithStatusAndMessageAndNullData.getData()); @@ -422,7 +422,7 @@ class UnifiedResponseTests { void testOf_WithStatusAndMessage_AndData() throws Exception { final PageResult emptyPageResult = PageResult.empty(); final UnifiedResponse> ofWithStatusAndMessageAndData - = UnifiedResponse.of("108", "This is a message.", emptyPageResult); + = UnifiedResponses.of("108", "This is a message.", emptyPageResult); assertEquals("{code: \"108\", message: \"This is a message.\", data: PageResult [total=0, content=[]]}", ofWithStatusAndMessageAndData.toString()); assertEquals("108", ofWithStatusAndMessageAndData.getCode()); @@ -438,7 +438,7 @@ class UnifiedResponseTests { @Test void testOf_WithStatusAndNullMessage() throws Exception { - UnifiedResponse ofWithStatusAndNullMessage = UnifiedResponse.of("108", (String) null); + UnifiedResponse ofWithStatusAndNullMessage = UnifiedResponses.of("108", (String) null); assertEquals("108", ofWithStatusAndNullMessage.getCode()); assertEquals("", ofWithStatusAndNullMessage.getMessage()); assertNull(ofWithStatusAndNullMessage.getData()); @@ -452,7 +452,7 @@ class UnifiedResponseTests { @Test void testOf_WithStatusAndNullMessage_AndNullData() throws Exception { - UnifiedResponse ofWithStatusAndNullMessageAndNullData = UnifiedResponse.of("108", (String) null, null); + UnifiedResponse ofWithStatusAndNullMessageAndNullData = UnifiedResponses.of("108", (String) null, null); assertEquals("108", ofWithStatusAndNullMessageAndNullData.getCode()); assertEquals("", ofWithStatusAndNullMessageAndNullData.getMessage()); @@ -468,7 +468,7 @@ class UnifiedResponseTests { @Test void testOf_WithStatusAndNullMessage_AndData() throws Exception { PageResult emptyPageResult = PageResult.empty(); - UnifiedResponse> ofWithStatusAndNullMessageAndData = UnifiedResponse.of("108", (String) null, emptyPageResult); + UnifiedResponse> ofWithStatusAndNullMessageAndData = UnifiedResponses.of("108", (String) null, emptyPageResult); assertEquals("108", ofWithStatusAndNullMessageAndData.getCode()); assertEquals("", ofWithStatusAndNullMessageAndData.getMessage()); assertEquals(emptyPageResult, ofWithStatusAndNullMessageAndData.getData()); @@ -480,7 +480,7 @@ class UnifiedResponseTests { @Test void testOf_WithStatusAndEmptyMessage() throws Exception { - UnifiedResponse ofWithStatusAndEmptyMessage = UnifiedResponse.of("108", ""); + UnifiedResponse ofWithStatusAndEmptyMessage = UnifiedResponses.of("108", ""); assertEquals("108", ofWithStatusAndEmptyMessage.getCode()); assertEquals("", ofWithStatusAndEmptyMessage.getMessage()); assertNull(ofWithStatusAndEmptyMessage.getData()); @@ -494,7 +494,7 @@ class UnifiedResponseTests { @Test void testOf_WithStatusAndEmptyMessage_AndNullData() throws Exception { - UnifiedResponse ofWithStatusAndEmptyMessageAndNullData = UnifiedResponse.of("108", "", null); + UnifiedResponse ofWithStatusAndEmptyMessageAndNullData = UnifiedResponses.of("108", "", null); assertEquals("108", ofWithStatusAndEmptyMessageAndNullData.getCode()); assertEquals("", ofWithStatusAndEmptyMessageAndNullData.getMessage()); @@ -510,7 +510,7 @@ class UnifiedResponseTests { @Test void testOf_WithStatusAndEmptyMessage_AndData() throws Exception { PageResult emptyPageResult = PageResult.empty(); - UnifiedResponse> ofWithStatusAndEmptyMessageAndData = UnifiedResponse.of("108", "", emptyPageResult); + UnifiedResponse> ofWithStatusAndEmptyMessageAndData = UnifiedResponses.of("108", "", emptyPageResult); assertEquals("108", ofWithStatusAndEmptyMessageAndData.getCode()); assertEquals("", ofWithStatusAndEmptyMessageAndData.getMessage()); assertEquals(emptyPageResult, ofWithStatusAndEmptyMessageAndData.getData()); @@ -527,19 +527,19 @@ class UnifiedResponseTests { final User user = new User("zhouxy", "zhouxy@gmail.com"); // message - assertThrows(NullPointerException.class, () -> UnifiedResponse.of(nullStatus, "查询失败")); - assertThrows(NullPointerException.class, () -> UnifiedResponse.of(nullStatus, "查询失败", null)); - assertThrows(NullPointerException.class, () -> UnifiedResponse.of(nullStatus, "查询失败", user)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.of(nullStatus, "查询失败")); + assertThrows(NullPointerException.class, () -> UnifiedResponses.of(nullStatus, "查询失败", null)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.of(nullStatus, "查询失败", user)); // empty message - assertThrows(NullPointerException.class, () -> UnifiedResponse.of(nullStatus, "")); - assertThrows(NullPointerException.class, () -> UnifiedResponse.of(nullStatus, "", null)); - assertThrows(NullPointerException.class, () -> UnifiedResponse.of(nullStatus, "", user)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.of(nullStatus, "")); + assertThrows(NullPointerException.class, () -> UnifiedResponses.of(nullStatus, "", null)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.of(nullStatus, "", user)); // null message - assertThrows(NullPointerException.class, () -> UnifiedResponse.of(nullStatus, nullMessage)); - assertThrows(NullPointerException.class, () -> UnifiedResponse.of(nullStatus, "查询失败", null)); - assertThrows(NullPointerException.class, () -> UnifiedResponse.of(nullStatus, "查询失败", user)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.of(nullStatus, nullMessage)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.of(nullStatus, "查询失败", null)); + assertThrows(NullPointerException.class, () -> UnifiedResponses.of(nullStatus, "查询失败", user)); } @Data