This commit is contained in:
2026-08-20 17:00:05 +08:00
parent 09f6e28c1f
commit 5b9ae25f29
6 changed files with 93 additions and 2 deletions
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.baiyue.firstleg.entity.ContainerBookingEntity;
import com.baiyue.firstleg.mapper.ContainerBookingMapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@@ -61,6 +62,23 @@ class ContainerBookingMapperContractTest {
assertThat(sql).contains("i.account_id<>#{customerId}").doesNotContain("&lt;&gt;");
}
@Test
@DisplayName("关联订舱 SQL 的预计到港参数与 Mapper 参数名一致")
void linkReleasedBookingUsesDeclaredEstimatedArrivalParameter() {
var method = Arrays.stream(ContainerBookingMapper.class.getDeclaredMethods())
.filter(candidate -> candidate.getName().equals("linkReleasedBooking"))
.findFirst().orElseThrow();
String sql = String.join("\n", method.getAnnotation(Update.class).value());
var parameterNames = Arrays.stream(method.getParameters())
.map(parameter -> parameter.getAnnotation(Param.class).value())
.toList();
assertThat(parameterNames).contains("estimatedPortArrivalAt");
assertThat(sql)
.contains("estimated_port_arrival_at=#{estimatedPortArrivalAt}")
.doesNotContain("#{estimatedArrivalAt}");
}
@Test
@DisplayName("草稿完整更新和预装运输白名单都带版本与状态门禁")
void guardsUpdatesInSql() {