|
|
@@ -0,0 +1,101 @@
|
|
|
+package com.etotem.cfc.common;
|
|
|
+
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+
|
|
|
+import static org.junit.jupiter.api.Assertions.*;
|
|
|
+
|
|
|
+/**
|
|
|
+ * B-5 契约单测:Result 4xx 工厂方法(错误语义可判定)。
|
|
|
+ *
|
|
|
+ * 覆盖:
|
|
|
+ * - badRequest → 400
|
|
|
+ * - forbidden → 403
|
|
|
+ * - notFound → 404
|
|
|
+ * - conflict → 409
|
|
|
+ * - message 传入 / 默认两个分支
|
|
|
+ * - error(String) 保持 500 语义不变(防回归)
|
|
|
+ * - error(Integer,String) 保持透传不变(防回归)
|
|
|
+ */
|
|
|
+class ResultCodeFactoryTest {
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void badRequest_sets400_withMessage() {
|
|
|
+ Result<String> result = Result.badRequest("参数缺失");
|
|
|
+ assertEquals(400, result.getCode());
|
|
|
+ assertEquals("参数缺失", result.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void badRequest_sets400_withDefaultMessage_whenNull() {
|
|
|
+ Result<String> result = Result.badRequest(null);
|
|
|
+ assertEquals(400, result.getCode());
|
|
|
+ assertNotNull(result.getMessage(), "message 为空时应给默认文案");
|
|
|
+ assertFalse(result.getMessage().isEmpty());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void badRequest_sets400_withDefaultMessage_whenEmpty() {
|
|
|
+ Result<String> result = Result.badRequest("");
|
|
|
+ assertEquals(400, result.getCode());
|
|
|
+ assertFalse(result.getMessage().isEmpty(), "message 为空时应给默认文案");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void forbidden_sets403_withMessage() {
|
|
|
+ Result<String> result = Result.forbidden("无权限操作");
|
|
|
+ assertEquals(403, result.getCode());
|
|
|
+ assertEquals("无权限操作", result.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void forbidden_sets403_withDefaultMessage_whenNull() {
|
|
|
+ Result<String> result = Result.forbidden(null);
|
|
|
+ assertEquals(403, result.getCode());
|
|
|
+ assertNotNull(result.getMessage(), "message 为空时应给默认文案");
|
|
|
+ assertFalse(result.getMessage().isEmpty());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void notFound_sets404_withMessage() {
|
|
|
+ Result<String> result = Result.notFound("活动不存在");
|
|
|
+ assertEquals(404, result.getCode());
|
|
|
+ assertEquals("活动不存在", result.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void notFound_sets404_withDefaultMessage_whenNull() {
|
|
|
+ Result<String> result = Result.notFound(null);
|
|
|
+ assertEquals(404, result.getCode());
|
|
|
+ assertNotNull(result.getMessage(), "message 为空时应给默认文案");
|
|
|
+ assertFalse(result.getMessage().isEmpty());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void conflict_sets409_withMessage() {
|
|
|
+ Result<String> result = Result.conflict("仅草稿状态可发布");
|
|
|
+ assertEquals(409, result.getCode());
|
|
|
+ assertEquals("仅草稿状态可发布", result.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void conflict_sets409_withDefaultMessage_whenNull() {
|
|
|
+ Result<String> result = Result.conflict(null);
|
|
|
+ assertEquals(409, result.getCode());
|
|
|
+ assertNotNull(result.getMessage(), "message 为空时应给默认文案");
|
|
|
+ assertFalse(result.getMessage().isEmpty());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void error_keeps500_semantics() {
|
|
|
+ Result<String> result = Result.error("系统内部错误");
|
|
|
+ assertEquals(500, result.getCode());
|
|
|
+ assertEquals("系统内部错误", result.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void errorCodeMessage_passthrough() {
|
|
|
+ Result<String> result = Result.error(410, "该接口已废弃");
|
|
|
+ assertEquals(410, result.getCode());
|
|
|
+ assertEquals("该接口已废弃", result.getMessage());
|
|
|
+ }
|
|
|
+}
|