优化
This commit is contained in:
+35
@@ -0,0 +1,35 @@
|
||||
package com.baiyue.lastleg.financefee;
|
||||
|
||||
import com.baiyue.lastleg.client.DirectEventClient;
|
||||
import com.baiyue.lastleg.entity.LastlegEventOutbox;
|
||||
import com.baiyue.lastleg.financefee.repository.OverseasFeeOutboxRepository;
|
||||
import com.baiyue.lastleg.financefee.service.OverseasFeeOutboxRelay;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import java.util.List;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
class OverseasFeeOutboxRetryTest {
|
||||
@Test void failedPayloadAtLimitGoesDeadAndExhaustedLeaseNeverCallsClient() {
|
||||
var repository = mock(OverseasFeeOutboxRepository.class);
|
||||
var client = mock(DirectEventClient.class);
|
||||
var relay = new OverseasFeeOutboxRelay();
|
||||
ReflectionTestUtils.setField(relay, "repository", repository);
|
||||
ReflectionTestUtils.setField(relay, "client", client);
|
||||
ReflectionTestUtils.setField(relay, "objectMapper", new ObjectMapper());
|
||||
var row = new LastlegEventOutbox();
|
||||
row.setId(1L); row.setRetryCount(11); row.setPayloadJson("invalid-json");
|
||||
when(repository.pending(eq(50), any(), any())).thenReturn(List.of(row));
|
||||
when(repository.claim(eq(1L), anyString(), any(), any())).thenReturn(true);
|
||||
when(repository.claimed(eq(1L), anyString())).thenReturn(row);
|
||||
relay.relay();
|
||||
row.setRetryCount(12);
|
||||
relay.relay();
|
||||
verify(repository, times(2)).dead(eq(1L), anyString(), eq(12), anyString());
|
||||
verify(repository, never()).retry(anyLong(), anyString(), anyInt(), any(), anyString());
|
||||
verify(repository, never()).published(anyLong(), anyString(), any());
|
||||
verifyNoInteractions(client);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user