package com.ruoyi.system.mapper; import org.apache.ibatis.mapping.BoundSql; import org.apache.ibatis.builder.xml.XMLMapperBuilder; import org.apache.ibatis.session.Configuration; import org.junit.jupiter.api.Test; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; class PosFoodMapperSqlTest { @Test void storeCardFoodsExcludeOffShelfFoodsWithoutReducingAvailableLimit() { Configuration configuration = new Configuration(); configuration.addMapper(PosFoodMapper.class); Map parameters = new HashMap<>(); parameters.put("storeIds", List.of(10L)); parameters.put("language", "3"); parameters.put("limitPerStore", 6); BoundSql boundSql = configuration .getMappedStatement("com.ruoyi.system.mapper.PosFoodMapper.selectFoodsByStoreIdsWithLimit") .getBoundSql(parameters); String sql = boundSql.getSql().replaceAll("\\s+", " ").toUpperCase(Locale.ROOT); assertTrue(sql.contains("F.STACKING_UP <> '1'")); assertTrue(sql.contains("F2.STACKING_UP <> '1'")); } @Test void menuCopyUpdateOnlyChangesContentFields() throws IOException { Configuration configuration = new Configuration(); configuration.getTypeAliasRegistry().registerAlias("PosFood", com.ruoyi.system.domain.PosFood.class); String resource = "mapper/chanting/PosFoodMapper.xml"; try (InputStream input = getClass().getClassLoader().getResourceAsStream(resource)) { assertNotNull(input); new XMLMapperBuilder(input, configuration, resource, configuration.getSqlFragments()).parse(); } BoundSql boundSql = configuration .getMappedStatement("com.ruoyi.system.mapper.PosFoodMapper.updateMenuCopyContent") .getBoundSql(new com.ruoyi.system.domain.PosFood()); String sql = boundSql.getSql().replaceAll("\\s+", " ").trim().toUpperCase(Locale.ROOT); assertEquals("UPDATE POS_FOOD SET PRICE = ?, IMAGE = ?, INTRODUCE = ?, FOOD_SKU = ?, " + "RECOMMEND = ?, SORT = ? WHERE ID = ?", sql); } }