37 lines
1.2 KiB
Java
37 lines
1.2 KiB
Java
package com.baiyue.eventbridge.service;
|
|
|
|
import com.baiyue.eventbridge.mapper.BridgeInboxMapper;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.springframework.test.util.ReflectionTestUtils;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
|
import static org.mockito.Mockito.*;
|
|
|
|
class EventReplayServiceTest {
|
|
private final BridgeInboxMapper mapper = mock(BridgeInboxMapper.class);
|
|
private final EventReplayService service = service();
|
|
|
|
@Test
|
|
void requeuesDeadEventWithAuditReason() {
|
|
when(mapper.replayDead(eq("event-1"), contains("incident-42"))).thenReturn(1);
|
|
|
|
service.replayDead("event-1", "operator-7", "incident-42 approved");
|
|
|
|
verify(mapper).replayDead(eq("event-1"), contains("operator-7"));
|
|
}
|
|
|
|
@Test
|
|
void rejectsEventThatIsNotDead() {
|
|
when(mapper.replayDead(anyString(), anyString())).thenReturn(0);
|
|
|
|
assertThatThrownBy(() -> service.replayDead("event-1", "operator-7", "retry"))
|
|
.isInstanceOf(IllegalStateException.class);
|
|
}
|
|
|
|
private EventReplayService service() {
|
|
EventReplayService service = new EventReplayService();
|
|
ReflectionTestUtils.setField(service, "inboxMapper", mapper);
|
|
return service;
|
|
}
|
|
}
|