暂存提交

This commit is contained in:
2026-07-31 16:53:07 +08:00
parent 45358ef40f
commit 704cb15ccf
98 changed files with 1944 additions and 134 deletions
@@ -6,6 +6,7 @@ import com.baiyue.common.event.EventPayloadHash;
import com.baiyue.common.event.RegionCode;
import com.baiyue.eventbridge.domain.BridgeInbox;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.dao.DuplicateKeyException;
@@ -20,13 +21,14 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@DisplayName("跨区域事件收件箱")
class EventInboxServiceTest {
private final ObjectMapper objectMapper = new ObjectMapper();
private final InboxStore store = mock(InboxStore.class);
private final EventInboxService service = new EventInboxService(store, objectMapper, "OVERSEAS");
@Test
void 首次事件落库并返回已接收() {
void firstEventPersistsAndReturnsReceived() {
EventEnvelope envelope = envelope("sha256:placeholder");
envelope = withHash(envelope);
@@ -35,7 +37,7 @@ class EventInboxServiceTest {
}
@Test
void 相同事件和摘要重复接收不再次写入() {
void identicalEventAndDigestDoesNotPersistAgain() {
EventEnvelope envelope = withHash(envelope("sha256:placeholder"));
BridgeInbox existing = existing(envelope.payloadHash());
when(store.findByEventId(envelope.eventId())).thenReturn(existing);
@@ -44,7 +46,7 @@ class EventInboxServiceTest {
}
@Test
void 相同事件但摘要不同时拒绝覆盖() {
void sameEventWithDifferentDigestRejectsOverwrite() {
EventEnvelope envelope = withHash(envelope("sha256:placeholder"));
when(store.findByEventId(envelope.eventId())).thenReturn(existing("sha256:" + "0".repeat(64)));
@@ -54,7 +56,7 @@ class EventInboxServiceTest {
}
@Test
void 并发插入冲突后按既有记录判定为重复() {
void duplicateInsertAfterRaceIsTreatedAsDuplicate() {
EventEnvelope envelope = withHash(envelope("sha256:placeholder"));
when(store.findByEventId(envelope.eventId())).thenReturn(null, existing(envelope.payloadHash()));
doThrow(new DuplicateKeyException("并发重复")).when(store).insert(any());
@@ -63,7 +65,7 @@ class EventInboxServiceTest {
}
@Test
void 目标区域与当前部署区域不一致时拒绝接收() {
void targetRegionDifferentFromCurrentDeploymentIsRejected() {
EventInboxService cnService = new EventInboxService(store, objectMapper, "CN");
EventEnvelope envelope = withHash(envelope("sha256:placeholder"));