优化
This commit is contained in:
+12
-2
@@ -8,6 +8,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import com.baiyue.common.core.outbox.EventDeliveryJournal;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.datasource.DriverManagerDataSource;
|
||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
@@ -16,13 +21,18 @@ class OverseasFeeOutboxRetryTest {
|
||||
var repository = mock(OverseasFeeOutboxRepository.class);
|
||||
var client = mock(DirectEventClient.class);
|
||||
var relay = new OverseasFeeOutboxRelay();
|
||||
var dataSource = new DriverManagerDataSource("jdbc:h2:mem:" + UUID.randomUUID() + ";MODE=MySQL;DB_CLOSE_DELAY=-1", "sa", "");
|
||||
var jdbc = new JdbcTemplate(dataSource);
|
||||
jdbc.execute("CREATE TABLE event_delivery_attempt(attempt_id VARCHAR(36) PRIMARY KEY,service_name VARCHAR(32) NOT NULL,event_type VARCHAR(96) NOT NULL,entry_id VARCHAR(128) NOT NULL,event_id VARCHAR(128),target_name VARCHAR(64) NOT NULL,started_at TIMESTAMP(3) NOT NULL,finished_at TIMESTAMP(3),duration_ms BIGINT,outcome VARCHAR(24) NOT NULL,error_code VARCHAR(64),next_retry_at TIMESTAMP(3))");
|
||||
ReflectionTestUtils.setField(relay, "journal", new EventDeliveryJournal(jdbc, new DataSourceTransactionManager(dataSource)));
|
||||
when(repository.dead(anyLong(), anyString(), anyInt(), anyString())).thenReturn(1);
|
||||
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");
|
||||
row.setId(1L); row.setEventType("BusinessFeeSourceChanged"); 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.claim(eq(1L), anyString(), any())).thenReturn(true);
|
||||
when(repository.claimed(eq(1L), anyString())).thenReturn(row);
|
||||
relay.relay();
|
||||
row.setRetryCount(12);
|
||||
|
||||
Reference in New Issue
Block a user