package com.xly.erp.common.response; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; class ApiResponseTest { @Test void ok_setsCode200AndDataAndTimestamp() { long before = System.currentTimeMillis(); ApiResponse r = ApiResponse.ok("hello"); long after = System.currentTimeMillis(); assertThat(r.getCode()).isEqualTo(200); assertThat(r.getMessage()).isEqualTo("操作成功"); assertThat(r.getData()).isEqualTo("hello"); assertThat(r.getTimestamp()).isBetween(before, after); } @Test void okWithMessage_overridesDefaultMessage() { ApiResponse r = ApiResponse.ok("created", 42); assertThat(r.getCode()).isEqualTo(200); assertThat(r.getMessage()).isEqualTo("created"); assertThat(r.getData()).isEqualTo(42); } @Test void fail_mapsErrorCodeFields() { ApiResponse r = ApiResponse.fail(ErrorCode.PARAM_INVALID); assertThat(r.getCode()).isEqualTo(40010); assertThat(r.getMessage()).isEqualTo("参数错误"); assertThat(r.getData()).isNull(); } @Test void failWithDetail_overridesDefaultMessage() { ApiResponse r = ApiResponse.fail(ErrorCode.PARAM_INVALID, "sUserName: blank"); assertThat(r.getCode()).isEqualTo(40010); assertThat(r.getMessage()).isEqualTo("sUserName: blank"); } @Test void errorCode_constantsMatchDocs05Spec() { assertThat(ErrorCode.SUCCESS.getCode()).isEqualTo(200); assertThat(ErrorCode.PARAM_INVALID.getCode()).isEqualTo(40010); assertThat(ErrorCode.MOD_PARENT_NOT_FOUND.getCode()).isEqualTo(40411); assertThat(ErrorCode.MOD_PROC_NAME_DUP.getCode()).isEqualTo(40911); assertThat(ErrorCode.INTERNAL_ERROR.getCode()).isEqualTo(50000); assertThat(ErrorCode.MOD_NOT_FOUND.getCode()).isEqualTo(40421); assertThat(ErrorCode.MOD_PARENT_LOOP.getCode()).isEqualTo(40921); assertThat(ErrorCode.MOD_HAS_REFERENCES.getCode()).isEqualTo(40912); assertThat(ErrorCode.STAFF_NOT_FOUND.getCode()).isEqualTo(40421); assertThat(ErrorCode.PERM_CATEGORY_NOT_FOUND.getCode()).isEqualTo(40422); assertThat(ErrorCode.USR_USER_NAME_OR_NO_DUP.getCode()).isEqualTo(40921); assertThat(ErrorCode.USR_NOT_FOUND.getCode()).isEqualTo(40431); } }