暂存提交

This commit is contained in:
2026-07-30 18:01:36 +08:00
commit 2f4e159356
368 changed files with 20370 additions and 0 deletions
@@ -0,0 +1,37 @@
package com.baiyue.common.web;
import org.junit.jupiter.api.Test;
import org.springframework.mock.web.MockFilterChain;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import static org.assertj.core.api.Assertions.assertThat;
class CorrelationIdFilterTest {
private final CorrelationIdFilter filter = new CorrelationIdFilter();
@Test
void preservesSafeIncomingIds() throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest();
request.addHeader(CorrelationContext.REQUEST_ID_HEADER, "req-123");
request.addHeader(CorrelationContext.TRACE_ID_HEADER, "trace-123");
MockHttpServletResponse response = new MockHttpServletResponse();
filter.doFilter(request, response, new MockFilterChain());
assertThat(response.getHeader(CorrelationContext.REQUEST_ID_HEADER)).isEqualTo("req-123");
assertThat(request.getAttribute(CorrelationContext.TRACE_ID)).isEqualTo("trace-123");
}
@Test
void replacesUnsafeIncomingIds() throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest();
request.addHeader(CorrelationContext.REQUEST_ID_HEADER, "invalid value\n");
MockHttpServletResponse response = new MockHttpServletResponse();
filter.doFilter(request, response, new MockFilterChain());
assertThat(response.getHeader(CorrelationContext.REQUEST_ID_HEADER))
.matches("[0-9a-f-]{36}");
assertThat(response.getHeader(CorrelationContext.TRACE_ID_HEADER))
.matches("[0-9a-f]{32}");
}
}
@@ -0,0 +1,23 @@
package com.baiyue.common.web;
import com.baiyue.common.core.api.ResultCode;
import com.baiyue.common.core.exception.BizException;
import org.junit.jupiter.api.Test;
import org.springframework.mock.web.MockHttpServletRequest;
import static org.assertj.core.api.Assertions.assertThat;
class GlobalExceptionHandlerTest {
private final GlobalExceptionHandler handler = new GlobalExceptionHandler();
@Test
void businessExceptionKeepsBusinessCodeAndCorrelation() {
MockHttpServletRequest request = new MockHttpServletRequest();
request.setAttribute(CorrelationContext.REQUEST_ID, "r1");
request.setAttribute(CorrelationContext.TRACE_ID, "t1");
var response = handler.handleBusiness(new BizException("inventory is locked"), request);
assertThat(response.getStatusCode().value()).isEqualTo(400);
assertThat(response.getBody().code()).isEqualTo(ResultCode.BUSINESS_ERROR.code());
assertThat(response.getBody().requestId()).isEqualTo("r1");
}
}