优化
This commit is contained in:
+14
@@ -5,7 +5,9 @@ import com.baiyue.common.event.EventPayloadCanonicalizer;
|
||||
import com.baiyue.common.event.EventPayloadHash;
|
||||
import com.baiyue.common.event.RegionCode;
|
||||
import com.baiyue.eventbridge.domain.BridgeInbox;
|
||||
import com.baiyue.eventbridge.metrics.EventBridgeMetrics;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
@@ -24,6 +26,8 @@ import static org.mockito.Mockito.when;
|
||||
class EventInboxServiceTest {
|
||||
private final ObjectMapper objectMapper = new ObjectMapper();
|
||||
private final InboxStore store = mock(InboxStore.class);
|
||||
private final SimpleMeterRegistry registry = new SimpleMeterRegistry();
|
||||
private final EventBridgeMetrics metrics = new EventBridgeMetrics(registry);
|
||||
private final EventInboxService service = service("OVERSEAS");
|
||||
|
||||
@Test
|
||||
@@ -33,6 +37,7 @@ class EventInboxServiceTest {
|
||||
|
||||
assertThat(service.receive(envelope).result()).isEqualTo("已接收");
|
||||
verify(store).insert(any(BridgeInbox.class));
|
||||
assertThat(receiveCount("RECEIVED")).isEqualTo(1.0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -57,6 +62,7 @@ class EventInboxServiceTest {
|
||||
when(store.findByEventId(envelope.eventId())).thenReturn(existing);
|
||||
|
||||
assertThat(service.receive(envelope).result()).isEqualTo("重复");
|
||||
assertThat(receiveCount("DUPLICATE")).isEqualTo(1.0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -67,6 +73,7 @@ class EventInboxServiceTest {
|
||||
assertThatThrownBy(() -> service.receive(envelope))
|
||||
.isInstanceOf(IllegalArgumentException.class)
|
||||
.hasMessageContaining("拒绝覆盖");
|
||||
assertThat(receiveCount("CONFLICT")).isEqualTo(1.0);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -113,10 +120,17 @@ class EventInboxServiceTest {
|
||||
EventInboxService service = new EventInboxService();
|
||||
ReflectionTestUtils.setField(service, "inboxStore", store);
|
||||
ReflectionTestUtils.setField(service, "objectMapper", objectMapper);
|
||||
ReflectionTestUtils.setField(service, "metrics", metrics);
|
||||
ReflectionTestUtils.setField(service, "localRegion", region);
|
||||
return service;
|
||||
}
|
||||
|
||||
private double receiveCount(String result) {
|
||||
return registry.get(EventBridgeMetrics.RECEIVE_METRIC)
|
||||
.tags("target_region", "OVERSEAS", "event_type", "OrderApproved", "result", result)
|
||||
.counter().count();
|
||||
}
|
||||
|
||||
private EventEnvelope withHash(EventEnvelope source) {
|
||||
String hash = EventPayloadHash.sha256(EventPayloadCanonicalizer.canonicalize(source.payload()));
|
||||
return new EventEnvelope(source.eventId(), source.eventType(), source.eventVersion(), source.occurredAt(),
|
||||
|
||||
Reference in New Issue
Block a user