yeg
2026-09-05 90882aca0b60a5b39e127d30438752a774b3a7ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.battery.business.runtime;
 
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.junit.jupiter.api.Test;
import tools.jackson.databind.json.JsonMapper;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.BaseEntity;
import com.battery.business.domain.TTest;
import com.battery.business.domain.TTestDataRevisionAction;
import com.battery.business.service.ITestLiveService.LiveState;
 
/** 控制台 REST/SSE 的业务时间统一为毫秒,平台响应保持原有格式。 */
class ConsoleTimeContractTest
{
    private final JsonMapper json = JsonMapper.builder().findAndAddModules().build();
    private final long time = 1788588000123L;
 
    @Test
    void testDetailAndRevisionExposeEpochMillis()
    {
        TTest test = new TTest();
        test.setCreateTime(new Date(time));
        test.setUpdateTime(new Date(time));
        test.setStartedAtUtc(new Date(time));
        test.setEndedAtUtc(new Date(time));
        var detail = json.readTree(json.writeValueAsString(AjaxResult.success(test))).get("data");
        for (String field : List.of("createTime", "updateTime", "startedAtUtc", "endedAtUtc"))
        {
            assertTrue(detail.get(field).isIntegralNumber(), field);
            assertEquals(time, detail.get(field).longValue());
        }
        TTestDataRevisionAction action = new TTestDataRevisionAction();
        action.setCreatedAtUtc(new Date(time));
        assertEquals(time, json.readTree(json.writeValueAsString(action)).get("createdAtUtc").longValue());
        BaseEntity platform = new BaseEntity();
        platform.setCreateTime(new Date(time));
        assertTrue(json.readTree(json.writeValueAsString(platform)).get("createTime").isString());
    }
 
    @Test
    void snapshotAndHeartbeatExposeTheSameMillis()
    {
        LiveState state = new LiveState(42L, "RUNNING", "RECEIVING", time, List.of(), List.of(), null);
        assertEquals(time, json.readTree(json.writeValueAsString(state)).get("updatedAt").longValue());
        assertEquals(time, json.readTree(json.writeValueAsString(Map.of("at", state.updatedAt()))).get("at").longValue());
    }
}