feat(fleet): integrate costs quotes operations and in-transit handovers
This commit is contained in:
@@ -34,6 +34,27 @@ class DirectEventClientTest {
|
||||
verifyNoInteractions(firstleg);
|
||||
}
|
||||
|
||||
@Test void companyVehicleCostsUseTheirOwnFinanceEndpoint() {
|
||||
var event = event(EventTypes.COMPANY_VEHICLE_COST_SUBMITTED);
|
||||
var ack = ApiResponse.success(DeliveryAck.of(event, DeliveryAck.Outcome.APPLIED));
|
||||
when(finance.vehicleCost("token", event)).thenReturn(ack);
|
||||
assertThat(client.receive("token", event)).isSameAs(ack);
|
||||
verify(finance).vehicleCost("token", event);
|
||||
verifyNoMoreInteractions(finance);
|
||||
verifyNoInteractions(firstleg);
|
||||
}
|
||||
|
||||
@Test void companyCostValidationConflictsArePermanentButDependencyFailuresRetry() {
|
||||
var event = event(EventTypes.COMPANY_VEHICLE_COST_SUBMITTED);
|
||||
for (String code : new String[]{"FIN_400", "FIN_404", "FIN_409", "FIN_503"}) {
|
||||
when(finance.vehicleCost("token", event)).thenReturn(new ApiResponse<>(code, "rejected", null, null, null, Instant.now()));
|
||||
assertThatThrownBy(() -> client.receive("token", event))
|
||||
.isInstanceOf(com.baiyue.common.web.EventDeliveryFailure.class)
|
||||
.satisfies(error -> assertThat(com.baiyue.common.web.EventDeliveryFailure.isPermanent((Exception) error)).isEqualTo(!"FIN_503".equals(code)));
|
||||
}
|
||||
verifyNoInteractions(firstleg);
|
||||
}
|
||||
|
||||
@Test void fulfillmentEventsAreSentOnlyToFirstleg() {
|
||||
for (String type : new String[]{EventTypes.OVERSEAS_CONTAINER_UNLOADED,
|
||||
EventTypes.OVERSEAS_INBOUND_ORDER_DETAINED_CHANGED, EventTypes.OVERSEAS_DELIVERY_COMPLETED}) {
|
||||
@@ -57,6 +78,8 @@ class DirectEventClientTest {
|
||||
EventTypes.WALLET_COMMAND_REQUESTED);
|
||||
assertEndpoint(FinanceBusinessEventClient.class, "fee", "FINANCE_SERVICE_URL", "finance",
|
||||
EventTypes.BUSINESS_FEE_SOURCE_CHANGED);
|
||||
assertEndpoint(FinanceBusinessEventClient.class, "vehicleCost", "FINANCE_SERVICE_URL", "finance",
|
||||
EventTypes.COMPANY_VEHICLE_COST_SUBMITTED);
|
||||
}
|
||||
|
||||
private void assertEndpoint(Class<?> type, String method, String env, String property, String eventType) throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user