发布采购、拼车、预约及匹配端侧修复至灰度 #26

Merged
admin merged 45 commits from test into main 2026-10-12 10:19:14 +08:00
Showing only changes of commit 373f1b2c18 - Show all commits
@@ -129,6 +129,24 @@ class ProcurementFinancePersistenceTest {
assertThat(fees.selectById(fee.getId()).getWalletStatus()).isEqualTo("SETTLE_PENDING");
assertThat(jdbc.queryForObject("SELECT status FROM ll_procurement_wallet_attempt WHERE command_event_id=?",String.class,result.commandEventId())).isEqualTo("PENDING");
verify(commands,times(2)).publish(anyString(),anyLong(),anyString(),anyString(),any(),anyString(),anyLong());
var recoveredSource=new OverseasFeeSource();recoveredSource.setSourceFeeId(901L);
doReturn(recoveredSource).when(sources).publishSettled(anyString(),anyString(),any(),any(),any());
handle(result);handle(result);
var recovered=fees.selectById(fee.getId());
assertThat(recovered.getWalletStatus()).isEqualTo("SETTLED");
assertThat(recovered.getSourceFeeId()).isEqualTo(901L);
assertThat(recovered.getSettledCommandEventId()).isEqualTo(result.commandEventId());
assertThat(recovered.getWalletLedgerId()).isEqualTo(result.walletLedgerId());
assertThat(jdbc.queryForObject("SELECT status FROM ll_procurement_wallet_attempt WHERE command_event_id=?",String.class,result.commandEventId())).isEqualTo("SUCCEEDED");
assertThat(jdbc.queryForObject("SELECT COUNT(*) FROM ll_procurement_wallet_attempt WHERE fee_id=?",Integer.class,fee.getId())).isEqualTo(2);
verify(sources,times(2)).publishSettled(anyString(),anyString(),any(),any(),argThat(ref->ref.commandEventId().equals(result.commandEventId())));
verify(commands,times(2)).publish(anyString(),anyLong(),anyString(),anyString(),any(),anyString(),anyLong());
assertThat(service.sourceLinked(recovered)).isFalse();
assertThatThrownBy(()->service.requireShipmentReady(11)).hasMessageContaining("来源关联");
jdbc.update("INSERT INTO ll_event_outbox VALUES('OVERSEAS_PROCUREMENT_FEE','901','PUBLISHED')");
assertThat(service.sourceLinked(recovered)).isTrue();
service.requireShipmentReady(11);
}
@Test void freeSampleDoesNotPublishZeroMoneyAndCannotBeChangedByReplay() {