package com.baiyue.eventbridge.service; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; class HttpFirstlegEventClientTest { private final ObjectMapper objectMapper = new ObjectMapper(); @Test void businessFailureIsDiagnosableAndMustNotBeTreatedAsAcknowledged() throws Exception { var body = objectMapper.readTree(""" {"code":"A0409","message":"事件摘要冲突","requestId":"request-cn-1","traceId":"trace-cn-1"} """); assertThat(HttpFirstlegEventClient.failureMessage(200, body)) .isEqualTo("头程消费失败: HTTP 200, code=A0409, message=事件摘要冲突, requestId=request-cn-1, traceId=trace-cn-1"); } @Test void nonJsonFailureIsStillDiagnosableWithoutRawBody() { assertThat(HttpFirstlegEventClient.failureMessage(503, null)) .isEqualTo("头程消费失败: HTTP 503, code=missing, message=non-json response, requestId=missing, traceId=missing"); } }