package com.battery.business.runtime;
|
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import java.io.InputStream;
|
import java.nio.charset.StandardCharsets;
|
import org.junit.jupiter.api.Test;
|
|
/** Ticket26 迁移只增加行为查询索引,不建立按行或按格修订表。 */
|
class Ticket26MigrationContractTest
|
{
|
@Test
|
void addsActionQueryIndexWithoutReplacingAuditFacts() throws Exception
|
{
|
try (InputStream stream = getClass().getClassLoader().getResourceAsStream(
|
"db/migration/V26__data_revision_action_query_contract.sql"))
|
{
|
if (stream == null) throw new AssertionError("缺少 Ticket26 迁移");
|
String sql = new String(stream.readAllBytes(), StandardCharsets.UTF_8);
|
assertTrue(sql.contains("idx_data_revision_query_time"));
|
assertTrue(sql.contains("t_test_data_revision_action"));
|
assertFalse(sql.matches("(?s).*\\b(DROP|DELETE|UPDATE)\\b.*"));
|
}
|
}
|
}
|