test(lastleg): isolate photo table DDL from subsequent rent migrations

This commit is contained in:
2026-10-26 17:25:26 +08:00
parent ca02ed0c17
commit 6577b2aa03
@@ -15,10 +15,15 @@ import static org.assertj.core.api.Assertions.*;
/** 使用真实建表定义与Mapper验证类型隔离、最新版本及不可变历史。 */
class FleetResourcePhotoPersistenceTest {
/** 仅装载照片表定义,避免执行同文件后续的其他业务迁移。 */
@Test void preservesHistoryAndRejectsTwoWritesToSameVersion() throws Exception {
var source=new JdbcDataSource();source.setURL("jdbc:h2:mem:photos_"+UUID.randomUUID()+";MODE=MySQL;DB_CLOSE_DELAY=-1");
var schema=Files.readString(Path.of("src/main/resources/db/lastleg.sql"));
var ddl=schema.substring(schema.indexOf("CREATE TABLE IF NOT EXISTS ll_fleet_resource_photo ("));
int start=schema.indexOf("CREATE TABLE IF NOT EXISTS ll_fleet_resource_photo (");
assertThat(start).isGreaterThanOrEqualTo(0);
int end=schema.indexOf(';',start);
assertThat(end).isGreaterThan(start);
var ddl=schema.substring(start,end+1);
try(var connection=source.getConnection();var statement=connection.createStatement()) { statement.execute(ddl); }
var config=new Configuration(new Environment("photos",new JdbcTransactionFactory(),source));
config.setMapUnderscoreToCamelCase(true);config.addMapper(FleetResourcePhotoMapper.class);