package com.ruoyi.config;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
import java.io.InputStream;
|
import java.nio.charset.StandardCharsets;
|
import org.junit.jupiter.api.Test;
|
|
/** 测试双设备绑定、字段快照和接收状态的 Mapper 契约。 */
|
class TestDeviceBindingMapperContractTest
|
{
|
@Test
|
void persistsAndReadsCollectorMappingsAndFieldSnapshots()
|
{
|
String mapper = resource("mapper/system/TTestMapper.xml");
|
String snapshotMapper = resource("mapper/system/TSharedFieldSnapshotMapper.xml");
|
|
assertTrue(mapper.contains("id=\"insertTestCollectorChannel\""));
|
assertTrue(mapper.contains("id=\"selectTestCollectorChannels\""));
|
assertTrue(snapshotMapper.contains("id=\"insert\""));
|
assertTrue(snapshotMapper.contains("id=\"selectByTestId\""));
|
assertTrue(mapper.contains("reception_status = 'NOT_STARTED'"));
|
assertTrue(mapper.contains("channel_count channelCount"));
|
assertTrue(mapper.contains("id=\"selectBatteryNosByTestIds\""));
|
assertTrue(mapper.contains("channel_fact.channel_id channelId"));
|
assertTrue(mapper.contains("id=\"selectReceptionChannelForUpdate\""));
|
assertTrue(mapper.contains("channel_fact.online_status onlineStatus"));
|
assertTrue(mapper.contains("channel_fact.last_seen_at_utc lastSeenAtUtc"));
|
assertTrue(mapper.contains("then 'RUNNING_ABNORMAL'"));
|
assertTrue(mapper.contains("exception_fact.interval_status = 'OPEN'"));
|
assertTrue(mapper.contains("set test_status = 'COMPLETED'"));
|
assertTrue(mapper.contains("#{testStatus} = 'COMPLETED' and t.test_status in ('COMPLETED', 'TERMINATED')"));
|
assertFalse(mapper.contains("group_concat"));
|
}
|
|
private static String resource(String path)
|
{
|
try (InputStream stream = TestDeviceBindingMapperContractTest.class.getClassLoader().getResourceAsStream(path))
|
{
|
if (stream == null) throw new AssertionError("缺少资源 " + path);
|
return new String(stream.readAllBytes(), StandardCharsets.UTF_8);
|
}
|
catch (Exception exception)
|
{
|
throw new AssertionError("无法读取资源 " + path, exception);
|
}
|
}
|
}
|