ApiResponseTest.java 2.51 KB
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<String> 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<Integer> 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<Void> r = ApiResponse.fail(ErrorCode.PARAM_INVALID);
        assertThat(r.getCode()).isEqualTo(40010);
        assertThat(r.getMessage()).isEqualTo("参数错误");
        assertThat(r.getData()).isNull();
    }

    @Test
    void failWithDetail_overridesDefaultMessage() {
        ApiResponse<Void> 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);
        assertThat(ErrorCode.LOGIN_INVALID_CREDENTIALS.getCode()).isEqualTo(40101);
        assertThat(ErrorCode.LOGIN_ACCOUNT_LOCKED.getCode()).isEqualTo(40301);
    }
}