Files
baiyue-firstleg/warehouse-overseas-service/src/test/java/com/baiyue/warehouse/mapper/WarehousePalletTransitionMapperContractTest.java
T

33 lines
1.3 KiB
Java

package com.baiyue.warehouse.mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Method;
import java.util.Arrays;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
class WarehousePalletTransitionMapperContractTest {
@Test
void annotationSqlUsesNativeComparisonOperatorsInsteadOfXmlEntities() throws Exception {
Method locationQuery = WarehousePalletTransitionMapper.class.getMethod(
"countActiveLocation", long.class, long.class);
String selectSql = String.join(" ", locationQuery.getAnnotation(Select.class).value());
Method transition = Arrays.stream(WarehousePalletTransitionMapper.class.getMethods())
.filter(method -> method.getName().equals("transition"))
.findFirst()
.orElseThrow();
String updateSql = String.join(" ", transition.getAnnotation(Update.class).value());
assertTrue(selectSql.contains("status<>'INACTIVE'"));
assertTrue(updateSql.contains("status<>'SCRAPPED'"));
assertFalse(selectSql.contains("&lt;") || selectSql.contains("&gt;"));
assertFalse(updateSql.contains("&lt;") || updateSql.contains("&gt;"));
}
}